diff --git a/src/extensions/RichText.js b/src/extensions/RichText.js index e1763c62edb..bb390c126a2 100644 --- a/src/extensions/RichText.js +++ b/src/extensions/RichText.js @@ -7,7 +7,6 @@ import { t } from '@nextcloud/l10n' import { Extension } from '@tiptap/core' /* eslint-disable import/no-named-as-default */ import Blockquote from '@tiptap/extension-blockquote' -import Code from '@tiptap/extension-code' import Document from '@tiptap/extension-document' import HorizontalRule from '@tiptap/extension-horizontal-rule' import { ListItem } from '@tiptap/extension-list' @@ -26,7 +25,7 @@ import Mention from './../extensions/Mention.js' import Search from './../extensions/Search.ts' import TextDirection from './../extensions/TextDirection.ts' import Typography from './../extensions/Typography.ts' -import { Italic, Link, Strike, Strong, Underline } from './../marks/index.js' +import { Code, Italic, Link, Strike, Strong, Underline } from './../marks/index.js' import BulletList from './../nodes/BulletList.js' import Callouts from './../nodes/Callouts.js' import CodeBlock from './../nodes/CodeBlock.js' diff --git a/src/marks/Code.ts b/src/marks/Code.ts new file mode 100644 index 00000000000..58c85b33651 --- /dev/null +++ b/src/marks/Code.ts @@ -0,0 +1,13 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import TipTapCode from '@tiptap/extension-code' + +const Code = TipTapCode.extend({ + // List all enabled marks except 'code' and 'link' (issue #4900) + excludes: 'em strike strong underline', +}) + +export default Code diff --git a/src/marks/index.js b/src/marks/index.js index 20a8b7c151c..de6cab1a2b2 100644 --- a/src/marks/index.js +++ b/src/marks/index.js @@ -4,6 +4,7 @@ */ import TipTapItalic from '@tiptap/extension-italic' +import Code from './Code.ts' import Link from './Link.js' import Strike from './Strike.js' import Strong from './Strong.js' @@ -13,4 +14,4 @@ const Italic = TipTapItalic.extend({ name: 'em', }) -export { Italic, Link, Strike, Strong, Underline } +export { Code, Italic, Link, Strike, Strong, Underline } diff --git a/src/tests/markdown.spec.js b/src/tests/markdown.spec.js index 615a4738eec..6d8840503c9 100644 --- a/src/tests/markdown.spec.js +++ b/src/tests/markdown.spec.js @@ -69,6 +69,11 @@ describe('Markdown though editor', () => { expect(markdownThroughEditor('[bar\\\\]: /uri\n\n[bar\\\\]')).toBe( '[bar\\\\](/uri)', ) + // Issue #4900 + expect(markdownThroughEditor('[`code`](foo)')).toBe('[`code`](foo)') + expect(markdownThroughEditor('[text with `code` inside](foo)')).toBe( + '[text with `code` inside](foo)', + ) }) test('images', () => { // Inline images