diff options
Diffstat (limited to 'app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js')
-rw-r--r-- | app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js b/app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js index 4c1542d14ea..f2f3eff266a 100644 --- a/app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js +++ b/app/assets/javascripts/behaviors/markdown/nodes/ordered_list.js @@ -1,10 +1,25 @@ -/* eslint-disable class-methods-use-this */ - -import { OrderedList as BaseOrderedList } from 'tiptap-extensions'; - // Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter -export default class OrderedList extends BaseOrderedList { +export default () => ({ + name: 'ordered_list', + schema: { + attrs: { + order: { + default: 1, + }, + }, + content: 'list_item+', + group: 'block', + parseDOM: [ + { + tag: 'ol', + getAttrs: (dom) => ({ + order: dom.hasAttribute('start') ? dom.getAttribute('start') + 1 : 1, + }), + }, + ], + toDOM: (node) => (node.attrs.order === 1 ? ['ol', 0] : ['ol', { start: node.attrs.order }, 0]), + }, toMarkdown(state, node) { state.renderList(node, ' ', () => '1. '); - } -} + }, +}); |