From 4555e1b21c365ed8303ffb7a3325d773c9b8bf31 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 19 May 2021 15:44:42 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-12-stable-ee --- .../content_editor/extensions/blockquote.js | 5 ++ .../javascripts/content_editor/extensions/bold.js | 5 ++ .../content_editor/extensions/bullet_list.js | 5 ++ .../javascripts/content_editor/extensions/code.js | 5 ++ .../extensions/code_block_highlight.js | 53 +++++++++------------- .../content_editor/extensions/document.js | 3 ++ .../content_editor/extensions/dropcursor.js | 3 ++ .../content_editor/extensions/gapcursor.js | 3 ++ .../content_editor/extensions/hard_break.js | 5 ++ .../content_editor/extensions/heading.js | 5 ++ .../content_editor/extensions/history.js | 3 ++ .../content_editor/extensions/horizontal_rule.js | 5 ++ .../javascripts/content_editor/extensions/image.js | 9 ++++ .../content_editor/extensions/italic.js | 4 ++ .../javascripts/content_editor/extensions/link.js | 5 ++ .../content_editor/extensions/list_item.js | 5 ++ .../content_editor/extensions/ordered_list.js | 5 ++ .../content_editor/extensions/paragraph.js | 5 ++ .../javascripts/content_editor/extensions/text.js | 5 ++ 19 files changed, 106 insertions(+), 32 deletions(-) create mode 100644 app/assets/javascripts/content_editor/extensions/blockquote.js create mode 100644 app/assets/javascripts/content_editor/extensions/bold.js create mode 100644 app/assets/javascripts/content_editor/extensions/bullet_list.js create mode 100644 app/assets/javascripts/content_editor/extensions/code.js create mode 100644 app/assets/javascripts/content_editor/extensions/document.js create mode 100644 app/assets/javascripts/content_editor/extensions/dropcursor.js create mode 100644 app/assets/javascripts/content_editor/extensions/gapcursor.js create mode 100644 app/assets/javascripts/content_editor/extensions/hard_break.js create mode 100644 app/assets/javascripts/content_editor/extensions/heading.js create mode 100644 app/assets/javascripts/content_editor/extensions/history.js create mode 100644 app/assets/javascripts/content_editor/extensions/horizontal_rule.js create mode 100644 app/assets/javascripts/content_editor/extensions/image.js create mode 100644 app/assets/javascripts/content_editor/extensions/italic.js create mode 100644 app/assets/javascripts/content_editor/extensions/link.js create mode 100644 app/assets/javascripts/content_editor/extensions/list_item.js create mode 100644 app/assets/javascripts/content_editor/extensions/ordered_list.js create mode 100644 app/assets/javascripts/content_editor/extensions/paragraph.js create mode 100644 app/assets/javascripts/content_editor/extensions/text.js (limited to 'app/assets/javascripts/content_editor/extensions') diff --git a/app/assets/javascripts/content_editor/extensions/blockquote.js b/app/assets/javascripts/content_editor/extensions/blockquote.js new file mode 100644 index 00000000000..a4297b4550c --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/blockquote.js @@ -0,0 +1,5 @@ +import { Blockquote } from '@tiptap/extension-blockquote'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Blockquote; +export const serializer = defaultMarkdownSerializer.nodes.blockquote; diff --git a/app/assets/javascripts/content_editor/extensions/bold.js b/app/assets/javascripts/content_editor/extensions/bold.js new file mode 100644 index 00000000000..e90e7b59da0 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/bold.js @@ -0,0 +1,5 @@ +import { Bold } from '@tiptap/extension-bold'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Bold; +export const serializer = defaultMarkdownSerializer.marks.strong; diff --git a/app/assets/javascripts/content_editor/extensions/bullet_list.js b/app/assets/javascripts/content_editor/extensions/bullet_list.js new file mode 100644 index 00000000000..178b798e2d4 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/bullet_list.js @@ -0,0 +1,5 @@ +import { BulletList } from '@tiptap/extension-bullet-list'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = BulletList; +export const serializer = defaultMarkdownSerializer.nodes.bullet_list; diff --git a/app/assets/javascripts/content_editor/extensions/code.js b/app/assets/javascripts/content_editor/extensions/code.js new file mode 100644 index 00000000000..8be50dc39c5 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/code.js @@ -0,0 +1,5 @@ +import { Code } from '@tiptap/extension-code'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Code; +export const serializer = defaultMarkdownSerializer.marks.code; 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 1d050ed208b..ce8bd57c7e3 100644 --- a/app/assets/javascripts/content_editor/extensions/code_block_highlight.js +++ b/app/assets/javascripts/content_editor/extensions/code_block_highlight.js @@ -1,38 +1,27 @@ -import { CodeBlockHighlight as BaseCodeBlockHighlight } from 'tiptap-extensions'; +import { CodeBlockLowlight } from '@tiptap/extension-code-block-lowlight'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; -export default class GlCodeBlockHighlight extends BaseCodeBlockHighlight { - get schema() { - const baseSchema = super.schema; +const extractLanguage = (element) => element.firstElementChild?.getAttribute('lang'); +const ExtendedCodeBlockLowlight = CodeBlockLowlight.extend({ + addAttributes() { return { - ...baseSchema, - attrs: { - params: { - default: null, + ...this.parent(), + /* `params` is the name of the attribute that + prosemirror-markdown uses to extract the language + of a codeblock. + https://github.com/ProseMirror/prosemirror-markdown/blob/master/src/to_markdown.js#L62 + */ + params: { + parseHTML: (element) => { + return { + params: extractLanguage(element), + }; }, }, - parseDOM: [ - { - tag: 'pre', - preserveWhitespace: 'full', - getAttrs: (node) => { - const code = node.querySelector('code'); - - if (!code) { - return null; - } - - return { - /* `params` is the name of the attribute that - prosemirror-markdown uses to extract the language - of a codeblock. - https://github.com/ProseMirror/prosemirror-markdown/blob/master/src/to_markdown.js#L62 - */ - params: code.getAttribute('lang'), - }; - }, - }, - ], }; - } -} + }, +}); + +export const tiptapExtension = ExtendedCodeBlockLowlight; +export const serializer = defaultMarkdownSerializer.nodes.code_block; diff --git a/app/assets/javascripts/content_editor/extensions/document.js b/app/assets/javascripts/content_editor/extensions/document.js new file mode 100644 index 00000000000..99aa8d6235a --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/document.js @@ -0,0 +1,3 @@ +import Document from '@tiptap/extension-document'; + +export const tiptapExtension = Document; diff --git a/app/assets/javascripts/content_editor/extensions/dropcursor.js b/app/assets/javascripts/content_editor/extensions/dropcursor.js new file mode 100644 index 00000000000..44c378ac7db --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/dropcursor.js @@ -0,0 +1,3 @@ +import Dropcursor from '@tiptap/extension-dropcursor'; + +export const tiptapExtension = Dropcursor; diff --git a/app/assets/javascripts/content_editor/extensions/gapcursor.js b/app/assets/javascripts/content_editor/extensions/gapcursor.js new file mode 100644 index 00000000000..2db862e4580 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/gapcursor.js @@ -0,0 +1,3 @@ +import Gapcursor from '@tiptap/extension-gapcursor'; + +export const tiptapExtension = Gapcursor; diff --git a/app/assets/javascripts/content_editor/extensions/hard_break.js b/app/assets/javascripts/content_editor/extensions/hard_break.js new file mode 100644 index 00000000000..dc1ba431151 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/hard_break.js @@ -0,0 +1,5 @@ +import { HardBreak } from '@tiptap/extension-hard-break'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = HardBreak; +export const serializer = defaultMarkdownSerializer.nodes.hard_break; diff --git a/app/assets/javascripts/content_editor/extensions/heading.js b/app/assets/javascripts/content_editor/extensions/heading.js new file mode 100644 index 00000000000..f69869d1e09 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/heading.js @@ -0,0 +1,5 @@ +import { Heading } from '@tiptap/extension-heading'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Heading; +export const serializer = defaultMarkdownSerializer.nodes.heading; diff --git a/app/assets/javascripts/content_editor/extensions/history.js b/app/assets/javascripts/content_editor/extensions/history.js new file mode 100644 index 00000000000..554d797d30a --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/history.js @@ -0,0 +1,3 @@ +import History from '@tiptap/extension-history'; + +export const tiptapExtension = History; diff --git a/app/assets/javascripts/content_editor/extensions/horizontal_rule.js b/app/assets/javascripts/content_editor/extensions/horizontal_rule.js new file mode 100644 index 00000000000..dcc59476518 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/horizontal_rule.js @@ -0,0 +1,5 @@ +import { HorizontalRule } from '@tiptap/extension-horizontal-rule'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = HorizontalRule; +export const serializer = defaultMarkdownSerializer.nodes.horizontal_rule; diff --git a/app/assets/javascripts/content_editor/extensions/image.js b/app/assets/javascripts/content_editor/extensions/image.js new file mode 100644 index 00000000000..4f0109fd751 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/image.js @@ -0,0 +1,9 @@ +import { Image } from '@tiptap/extension-image'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +const ExtendedImage = Image.extend({ + defaultOptions: { inline: true }, +}); + +export const tiptapExtension = ExtendedImage; +export const serializer = defaultMarkdownSerializer.nodes.image; diff --git a/app/assets/javascripts/content_editor/extensions/italic.js b/app/assets/javascripts/content_editor/extensions/italic.js new file mode 100644 index 00000000000..b8a7c4aba3e --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/italic.js @@ -0,0 +1,4 @@ +import { Italic } from '@tiptap/extension-italic'; + +export const tiptapExtension = Italic; +export const serializer = { open: '_', close: '_', mixable: true, expelEnclosingWhitespace: true }; diff --git a/app/assets/javascripts/content_editor/extensions/link.js b/app/assets/javascripts/content_editor/extensions/link.js new file mode 100644 index 00000000000..9a2fa7a5c98 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/link.js @@ -0,0 +1,5 @@ +import { Link } from '@tiptap/extension-link'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Link; +export const serializer = defaultMarkdownSerializer.marks.link; diff --git a/app/assets/javascripts/content_editor/extensions/list_item.js b/app/assets/javascripts/content_editor/extensions/list_item.js new file mode 100644 index 00000000000..86da98f6df7 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/list_item.js @@ -0,0 +1,5 @@ +import { ListItem } from '@tiptap/extension-list-item'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = ListItem; +export const serializer = defaultMarkdownSerializer.nodes.list_item; diff --git a/app/assets/javascripts/content_editor/extensions/ordered_list.js b/app/assets/javascripts/content_editor/extensions/ordered_list.js new file mode 100644 index 00000000000..d980ab8bf10 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/ordered_list.js @@ -0,0 +1,5 @@ +import { OrderedList } from '@tiptap/extension-ordered-list'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = OrderedList; +export const serializer = defaultMarkdownSerializer.nodes.ordered_list; diff --git a/app/assets/javascripts/content_editor/extensions/paragraph.js b/app/assets/javascripts/content_editor/extensions/paragraph.js new file mode 100644 index 00000000000..6c9f204b8ac --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/paragraph.js @@ -0,0 +1,5 @@ +import { Paragraph } from '@tiptap/extension-paragraph'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Paragraph; +export const serializer = defaultMarkdownSerializer.nodes.paragraph; diff --git a/app/assets/javascripts/content_editor/extensions/text.js b/app/assets/javascripts/content_editor/extensions/text.js new file mode 100644 index 00000000000..0d76aa1f1a7 --- /dev/null +++ b/app/assets/javascripts/content_editor/extensions/text.js @@ -0,0 +1,5 @@ +import { Text } from '@tiptap/extension-text'; +import { defaultMarkdownSerializer } from 'prosemirror-markdown/src/to_markdown'; + +export const tiptapExtension = Text; +export const serializer = defaultMarkdownSerializer.nodes.text; -- cgit v1.2.3