diff options
Diffstat (limited to 'app/assets/javascripts/content_editor/services/create_content_editor.js')
-rw-r--r-- | app/assets/javascripts/content_editor/services/create_content_editor.js | 139 |
1 files changed, 14 insertions, 125 deletions
diff --git a/app/assets/javascripts/content_editor/services/create_content_editor.js b/app/assets/javascripts/content_editor/services/create_content_editor.js index 5c48c0b1d43..b7082910161 100644 --- a/app/assets/javascripts/content_editor/services/create_content_editor.js +++ b/app/assets/javascripts/content_editor/services/create_content_editor.js @@ -1,69 +1,8 @@ import { Editor } from '@tiptap/vue-2'; -import { isFunction } from 'lodash'; +import { isFunction, flatMap } from 'lodash'; import eventHubFactory from '~/helpers/event_hub_factory'; import { PROVIDE_SERIALIZER_OR_RENDERER_ERROR } from '../constants'; -import Attachment from '../extensions/attachment'; -import Audio from '../extensions/audio'; -import Blockquote from '../extensions/blockquote'; -import Bold from '../extensions/bold'; -import BulletList from '../extensions/bullet_list'; -import Code from '../extensions/code'; -import CodeBlockHighlight from '../extensions/code_block_highlight'; -import CodeSuggestion from '../extensions/code_suggestion'; -import ColorChip from '../extensions/color_chip'; -import CopyPaste from '../extensions/copy_paste'; -import DescriptionItem from '../extensions/description_item'; -import DescriptionList from '../extensions/description_list'; -import Details from '../extensions/details'; -import DetailsContent from '../extensions/details_content'; -import Diagram from '../extensions/diagram'; -import DrawioDiagram from '../extensions/drawio_diagram'; -import Document from '../extensions/document'; -import Dropcursor from '../extensions/dropcursor'; -import Emoji from '../extensions/emoji'; -import ExternalKeydownHandler from '../extensions/external_keydown_handler'; -import Figure from '../extensions/figure'; -import FigureCaption from '../extensions/figure_caption'; -import FootnoteDefinition from '../extensions/footnote_definition'; -import FootnoteReference from '../extensions/footnote_reference'; -import FootnotesSection from '../extensions/footnotes_section'; -import Frontmatter from '../extensions/frontmatter'; -import Gapcursor from '../extensions/gapcursor'; -import HardBreak from '../extensions/hard_break'; -import Heading from '../extensions/heading'; -import History from '../extensions/history'; -import Highlight from '../extensions/highlight'; -import HorizontalRule from '../extensions/horizontal_rule'; -import HTMLMarks from '../extensions/html_marks'; -import HTMLNodes from '../extensions/html_nodes'; -import Image from '../extensions/image'; -import InlineDiff from '../extensions/inline_diff'; -import Italic from '../extensions/italic'; -import Link from '../extensions/link'; -import ListItem from '../extensions/list_item'; -import Loading from '../extensions/loading'; -import MathInline from '../extensions/math_inline'; -import OrderedList from '../extensions/ordered_list'; -import Paragraph from '../extensions/paragraph'; -import Reference from '../extensions/reference'; -import ReferenceLabel from '../extensions/reference_label'; -import ReferenceDefinition from '../extensions/reference_definition'; -import Selection from '../extensions/selection'; -import Sourcemap from '../extensions/sourcemap'; -import Strike from '../extensions/strike'; -import Subscript from '../extensions/subscript'; -import Suggestions from '../extensions/suggestions'; -import Superscript from '../extensions/superscript'; -import Table from '../extensions/table'; -import TableCell from '../extensions/table_cell'; -import TableHeader from '../extensions/table_header'; -import TableOfContents from '../extensions/table_of_contents'; -import TableRow from '../extensions/table_row'; -import TaskItem from '../extensions/task_item'; -import TaskList from '../extensions/task_list'; -import Text from '../extensions/text'; -import Video from '../extensions/video'; -import WordBreak from '../extensions/word_break'; +import * as builtInExtensions from '../extensions'; import { ContentEditor } from './content_editor'; import MarkdownSerializer from './markdown_serializer'; import createGlApiMarkdownDeserializer from './gl_api_markdown_deserializer'; @@ -107,68 +46,18 @@ export const createContentEditor = ({ render: renderMarkdown, }); - const builtInContentEditorExtensions = [ - Attachment.configure({ uploadsPath, renderMarkdown, eventHub }), - Audio, - Blockquote, - Bold, - BulletList, - Code, - ColorChip, - CodeBlockHighlight, - CodeSuggestion.configure({ config: codeSuggestionsConfig }), - DescriptionItem, - DescriptionList, - Details, - DetailsContent, - Document, - Diagram, - Dropcursor, - Emoji, - Figure, - FigureCaption, - FootnoteDefinition, - FootnoteReference, - FootnotesSection, - Frontmatter, - Gapcursor, - HardBreak, - Heading, - History, - Highlight, - HorizontalRule, - ...HTMLMarks, - ...HTMLNodes, - Image, - InlineDiff, - Italic, - ExternalKeydownHandler.configure({ eventHub }), - Link, - ListItem, - Loading, - MathInline, - OrderedList, - Paragraph, - CopyPaste.configure({ eventHub, renderMarkdown, serializer }), - Reference.configure({ assetResolver }), - ReferenceLabel, - ReferenceDefinition, - Selection, - Sourcemap, - Strike, - Subscript, - Superscript, - TableCell, - TableHeader, - TableOfContents, - TableRow, - Table, - TaskItem, - TaskList, - Text, - Video, - WordBreak, - ]; + const { Suggestions, DrawioDiagram, ...otherExtensions } = builtInExtensions; + + const builtInContentEditorExtensions = flatMap(otherExtensions).map((ext) => + ext.configure({ + uploadsPath, + renderMarkdown, + eventHub, + codeSuggestionsConfig, + serializer, + assetResolver, + }), + ); const allExtensions = [...builtInContentEditorExtensions, ...extensions]; |