diff options
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers')
7 files changed, 22 insertions, 19 deletions
diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token.js index d96cadafdbb..1dcecd5fb8c 100644 --- a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token.js +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/build_uneditable_token.js @@ -34,7 +34,7 @@ export const buildUneditableCloseTokens = (token, tagType = TAG_TYPES.block) => export const buildTextToken = content => buildToken('text', null, { content }); -export const buildUneditableTokens = token => { +export const buildUneditableBlockTokens = token => { return [...buildUneditableOpenTokens(token), buildUneditableCloseToken()]; }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_text.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_text.js index 494057fc75b..0e122f598e5 100644 --- a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_text.js +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_embedded_ruby_text.js @@ -1,4 +1,4 @@ -import { buildUneditableTokens } from './build_uneditable_token'; +import { renderUneditableLeaf as render } from './render_utils'; const embeddedRubyRegex = /(^<%.+%>$)/; @@ -6,8 +6,4 @@ const canRender = ({ literal }) => { return embeddedRubyRegex.test(literal); }; -const render = (_, { origin }) => { - return buildUneditableTokens(origin()); -}; - export default { canRender, render }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph.js index f5b4502ea3c..4ec45ecd3a7 100644 --- a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph.js +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_identifier_paragraph.js @@ -1,4 +1,4 @@ -import { buildUneditableOpenTokens, buildUneditableCloseToken } from './build_uneditable_token'; +import { renderUneditableBranch as render } from './render_utils'; const identifierRegex = /(^\[.+\]: .+)/; @@ -10,7 +10,4 @@ const canRender = (node, context) => { return isIdentifier(context.getChildrenText(node)); }; -const render = (_, { entering, origin }) => - entering ? buildUneditableOpenTokens(origin()) : buildUneditableCloseToken(); - export default { canRender, render }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_list.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_list.js index 491a26c81d0..949ca0e5c2a 100644 --- a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_list.js +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_list.js @@ -1,4 +1,4 @@ -import { buildUneditableOpenTokens, buildUneditableCloseToken } from './build_uneditable_token'; +import { renderUneditableBranch as render } from './render_utils'; const isKramdownTOC = ({ type, literal }) => type === 'text' && literal === 'TOC'; @@ -21,7 +21,4 @@ const canRender = node => { return false; }; -const render = (_, { entering, origin }) => - entering ? buildUneditableOpenTokens(origin()) : buildUneditableCloseToken(); - export default { canRender, render }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_text.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_text.js index 01384699e4f..0551894918c 100644 --- a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_text.js +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_kramdown_text.js @@ -1,4 +1,4 @@ -import { buildUneditableTokens } from './build_uneditable_token'; +import { renderUneditableLeaf as render } from './render_utils'; const kramdownRegex = /(^{:.+}$)/; @@ -6,8 +6,4 @@ const canRender = ({ literal }) => { return kramdownRegex.test(literal); }; -const render = (_, { origin }) => { - return buildUneditableTokens(origin()); -}; - export default { canRender, render }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_softbreak.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_softbreak.js new file mode 100644 index 00000000000..389ade5f27a --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_softbreak.js @@ -0,0 +1,7 @@ +const canRender = node => ['emph', 'strong'].includes(node.parent?.type); +const render = () => ({ + type: 'text', + content: ' ', +}); + +export default { canRender, render }; diff --git a/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_utils.js b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_utils.js new file mode 100644 index 00000000000..cec6491557b --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/rich_content_editor/services/renderers/render_utils.js @@ -0,0 +1,10 @@ +import { + buildUneditableBlockTokens, + buildUneditableOpenTokens, + buildUneditableCloseToken, +} from './build_uneditable_token'; + +export const renderUneditableLeaf = (_, { origin }) => buildUneditableBlockTokens(origin()); + +export const renderUneditableBranch = (_, { entering, origin }) => + entering ? buildUneditableOpenTokens(origin()) : buildUneditableCloseToken(); |