27 lines
682 B
JavaScript
27 lines
682 B
JavaScript
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
|
|
|
|
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
|
|
export default ({ levels = [1, 2, 3, 4, 5, 6] } = {}) => ({
|
|
name: 'heading',
|
|
schema: {
|
|
attrs: {
|
|
level: {
|
|
default: 1,
|
|
},
|
|
},
|
|
content: 'inline*',
|
|
group: 'block',
|
|
defining: true,
|
|
draggable: false,
|
|
parseDOM: levels.map((level) => ({
|
|
tag: `h${level}`,
|
|
attrs: { level },
|
|
})),
|
|
toDOM: (node) => [`h${node.attrs.level}`, 0],
|
|
},
|
|
toMarkdown(state, node) {
|
|
if (!node.childCount) return;
|
|
|
|
defaultMarkdownSerializer.nodes.heading(state, node);
|
|
},
|
|
});
|