diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 14:10:13 +0300 |
commit | 0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch) | |
tree | 7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /app/assets/javascripts/content_editor/services/markdown_serializer.js | |
parent | 72123183a20411a36d607d70b12d57c484394c8e (diff) |
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'app/assets/javascripts/content_editor/services/markdown_serializer.js')
-rw-r--r-- | app/assets/javascripts/content_editor/services/markdown_serializer.js | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/app/assets/javascripts/content_editor/services/markdown_serializer.js b/app/assets/javascripts/content_editor/services/markdown_serializer.js index d665f24bba1..2d33a16f1a5 100644 --- a/app/assets/javascripts/content_editor/services/markdown_serializer.js +++ b/app/assets/javascripts/content_editor/services/markdown_serializer.js @@ -17,7 +17,6 @@ import Diagram from '../extensions/diagram'; import Emoji from '../extensions/emoji'; import Figure from '../extensions/figure'; import FigureCaption from '../extensions/figure_caption'; -import FootnotesSection from '../extensions/footnotes_section'; import FootnoteDefinition from '../extensions/footnote_definition'; import FootnoteReference from '../extensions/footnote_reference'; import Frontmatter from '../extensions/frontmatter'; @@ -60,11 +59,13 @@ import { renderPlayable, renderHTMLNode, renderContent, + renderBulletList, preserveUnchanged, bold, italic, link, code, + strike, } from './serialization_helpers'; const defaultSerializerConfig = { @@ -89,12 +90,7 @@ const defaultSerializerConfig = { close: (...args) => `${defaultMarkdownSerializer.marks.code.close(...args)}$`, escape: false, }, - [Strike.name]: { - open: '~~', - close: '~~', - mixable: true, - expelEnclosingWhitespace: true, - }, + [Strike.name]: strike, ...HTMLMarks.reduce( (acc, { name }) => ({ ...acc, @@ -124,7 +120,7 @@ const defaultSerializerConfig = { state.wrapBlock('> ', null, node, () => state.renderContent(node)); } }), - [BulletList.name]: preserveUnchanged(defaultMarkdownSerializer.nodes.bullet_list), + [BulletList.name]: preserveUnchanged(renderBulletList), [CodeBlockHighlight.name]: preserveUnchanged(renderCodeBlock), [Diagram.name]: renderCodeBlock, [Division.name]: (state, node) => { @@ -157,15 +153,14 @@ const defaultSerializerConfig = { state.write(`:${name}:`); }, - [FootnoteDefinition.name]: (state, node) => { + [FootnoteDefinition.name]: preserveUnchanged((state, node) => { + state.write(`[^${node.attrs.identifier}]: `); state.renderInline(node); - }, - [FootnoteReference.name]: (state, node) => { - state.write(`[^${node.attrs.footnoteNumber}]`); - }, - [FootnotesSection.name]: (state, node) => { - state.renderList(node, '', (index) => `[^${index + 1}]: `); - }, + state.ensureNewLine(); + }), + [FootnoteReference.name]: preserveUnchanged((state, node) => { + state.write(`[^${node.attrs.identifier}]`); + }), [Frontmatter.name]: (state, node) => { const { language } = node.attrs; const syntax = { @@ -196,18 +191,18 @@ const defaultSerializerConfig = { state.write('[[_TOC_]]'); state.closeBlock(node); }, - [Table.name]: renderTable, + [Table.name]: preserveUnchanged(renderTable), [TableCell.name]: renderTableCell, [TableHeader.name]: renderTableCell, [TableRow.name]: renderTableRow, - [TaskItem.name]: (state, node) => { + [TaskItem.name]: preserveUnchanged((state, node) => { state.write(`[${node.attrs.checked ? 'x' : ' '}] `); state.renderContent(node); - }, - [TaskList.name]: (state, node) => { + }), + [TaskList.name]: preserveUnchanged((state, node) => { if (node.attrs.numeric) renderOrderedList(state, node); - else defaultMarkdownSerializer.nodes.bullet_list(state, node); - }, + else renderBulletList(state, node); + }), [Text.name]: defaultMarkdownSerializer.nodes.text, [Video.name]: renderPlayable, [WordBreak.name]: (state) => state.write('<wbr>'), |