Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/content_editor/services/markdown_serializer.js')
-rw-r--r--app/assets/javascripts/content_editor/services/markdown_serializer.js23
1 files changed, 22 insertions, 1 deletions
diff --git a/app/assets/javascripts/content_editor/services/markdown_serializer.js b/app/assets/javascripts/content_editor/services/markdown_serializer.js
index 0dd3cb5b73f..278ef326c7a 100644
--- a/app/assets/javascripts/content_editor/services/markdown_serializer.js
+++ b/app/assets/javascripts/content_editor/services/markdown_serializer.js
@@ -17,6 +17,9 @@ import Division from '../extensions/division';
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';
import HardBreak from '../extensions/hard_break';
import Heading from '../extensions/heading';
@@ -135,7 +138,16 @@ const defaultSerializerConfig = {
state.write('```');
state.closeBlock(node);
},
- [Division.name]: renderHTMLNode('div'),
+ [Division.name]: (state, node) => {
+ if (node.attrs.className?.includes('js-markdown-code')) {
+ state.renderInline(node);
+ } else {
+ const newNode = node;
+ delete newNode.attrs.className;
+
+ renderHTMLNode('div')(state, newNode);
+ }
+ },
[DescriptionList.name]: renderHTMLNode('dl', true),
[DescriptionItem.name]: (state, node, parent, index) => {
if (index === 1) state.ensureNewLine();
@@ -156,6 +168,15 @@ const defaultSerializerConfig = {
state.write(`:${name}:`);
},
+ [FootnoteDefinition.name]: (state, node) => {
+ state.renderInline(node);
+ },
+ [FootnoteReference.name]: (state, node) => {
+ state.write(`[^${node.attrs.footnoteNumber}]`);
+ },
+ [FootnotesSection.name]: (state, node) => {
+ state.renderList(node, '', (index) => `[^${index + 1}]: `);
+ },
[Frontmatter.name]: (state, node) => {
const { language } = node.attrs;
const syntax = {