diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 18:40:28 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 18:40:28 +0300 |
commit | b595cb0c1dec83de5bdee18284abe86614bed33b (patch) | |
tree | 8c3d4540f193c5ff98019352f554e921b3a41a72 /app/assets/javascripts/content_editor/extensions | |
parent | 2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff) |
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'app/assets/javascripts/content_editor/extensions')
4 files changed, 39 insertions, 32 deletions
diff --git a/app/assets/javascripts/content_editor/extensions/code_block_highlight.js b/app/assets/javascripts/content_editor/extensions/code_block_highlight.js index 61f6a233694..edf8b3d3a0b 100644 --- a/app/assets/javascripts/content_editor/extensions/code_block_highlight.js +++ b/app/assets/javascripts/content_editor/extensions/code_block_highlight.js @@ -42,11 +42,14 @@ export default CodeBlockLowlight.extend({ }, parseHTML() { return [ - ...(this.parent?.() || []), { tag: 'div.markdown-code-block', skip: true, }, + { + tag: 'pre.js-syntax-highlight', + preserveWhitespace: 'full', + }, ]; }, renderHTML({ HTMLAttributes }) { diff --git a/app/assets/javascripts/content_editor/extensions/division.js b/app/assets/javascripts/content_editor/extensions/division.js deleted file mode 100644 index 566ed85acf3..00000000000 --- a/app/assets/javascripts/content_editor/extensions/division.js +++ /dev/null @@ -1,31 +0,0 @@ -import { Node } from '@tiptap/core'; -import { PARSE_HTML_PRIORITY_LOWEST } from '../constants'; - -const getDiv = (element) => { - if (element.nodeName === 'DIV') return element; - return element.querySelector('div'); -}; - -export default Node.create({ - name: 'division', - content: 'block*', - group: 'block', - defining: true, - - addAttributes() { - return { - className: { - default: null, - parseHTML: (element) => getDiv(element).className || null, - }, - }; - }, - - parseHTML() { - return [{ tag: 'div', priority: PARSE_HTML_PRIORITY_LOWEST }]; - }, - - renderHTML({ HTMLAttributes }) { - return ['div', HTMLAttributes, 0]; - }, -}); diff --git a/app/assets/javascripts/content_editor/extensions/html_nodes.js b/app/assets/javascripts/content_editor/extensions/html_nodes.js new file mode 100644 index 00000000000..23409354814 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/html_nodes.js @@ -0,0 +1,25 @@ +import { Node } from '@tiptap/core'; +import { PARSE_HTML_PRIORITY_LOWEST } from '../constants'; + +const tags = ['div', 'pre']; + +const createHtmlNodeExtension = (tagName) => + Node.create({ + name: tagName, + content: 'block*', + group: 'block', + defining: true, + addOptions() { + return { + tagName, + }; + }, + parseHTML() { + return [{ tag: tagName, priority: PARSE_HTML_PRIORITY_LOWEST }]; + }, + renderHTML({ HTMLAttributes }) { + return [tagName, HTMLAttributes, 0]; + }, + }); + +export default tags.map(createHtmlNodeExtension); diff --git a/app/assets/javascripts/content_editor/extensions/sourcemap.js b/app/assets/javascripts/content_editor/extensions/sourcemap.js index 87118074462..618f17b1c5e 100644 --- a/app/assets/javascripts/content_editor/extensions/sourcemap.js +++ b/app/assets/javascripts/content_editor/extensions/sourcemap.js @@ -9,6 +9,7 @@ import FootnoteDefinition from './footnote_definition'; import Heading from './heading'; import HardBreak from './hard_break'; import HorizontalRule from './horizontal_rule'; +import HTMLNodes from './html_nodes'; import Image from './image'; import Italic from './italic'; import Link from './link'; @@ -51,13 +52,22 @@ export default Extension.create({ TableCell.name, TableHeader.name, TableRow.name, + ...HTMLNodes.map((htmlNode) => htmlNode.name), ], attributes: { + /** + * The reason to add a function that returns an empty + * string in these attributes is indicate that these + * attributes shouldn’t be rendered in the ProseMirror + * view. + */ sourceMarkdown: { default: null, + renderHTML: () => '', }, sourceMapKey: { default: null, + renderHTML: () => '', }, }, }, |