summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/markdown/nodes/task_list.js
blob: 3c3812ad8f72308b1b3d1dcc8203956efc172d48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { HIGHER_PARSE_RULE_PRIORITY } from '../constants';

// Transforms generated HTML back to GFM for Banzai::Filter::TaskListFilter
export default () => ({
  name: 'task_list',
  schema: {
    group: 'block',
    content: '(task_list_item|list_item)+',
    parseDOM: [
      {
        priority: HIGHER_PARSE_RULE_PRIORITY,
        tag: 'ul.task-list',
      },
    ],
    toDOM: () => ['ul', { class: 'task-list' }, 0],
  },
  toMarkdown(state, node) {
    state.renderList(node, '  ', () => '* ');
  },
});