diff options
Diffstat (limited to 'app/assets/javascripts/content_editor/extensions/description_list.js')
-rw-r--r-- | app/assets/javascripts/content_editor/extensions/description_list.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/assets/javascripts/content_editor/extensions/description_list.js b/app/assets/javascripts/content_editor/extensions/description_list.js new file mode 100644 index 00000000000..a516dfad2b8 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/description_list.js @@ -0,0 +1,23 @@ +import { Node, mergeAttributes } from '@tiptap/core'; +import { wrappingInputRule } from 'prosemirror-inputrules'; + +export const inputRegex = /^\s*(<dl>)$/; + +export default Node.create({ + name: 'descriptionList', + // eslint-disable-next-line @gitlab/require-i18n-strings + group: 'block list', + content: 'descriptionItem+', + + parseHTML() { + return [{ tag: 'dl' }]; + }, + + renderHTML({ HTMLAttributes }) { + return ['ul', mergeAttributes(HTMLAttributes, { class: 'dl-content' }), 0]; + }, + + addInputRules() { + return [wrappingInputRule(inputRegex, this.type)]; + }, +}); |