summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/content_editor/extensions/description_list.js
blob: a516dfad2b86d4b3e3d9a58ab9978786de09bb5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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)];
  },
});