diff options
-rw-r--r-- | src/extensions/Markdown.js | 4 | ||||
-rw-r--r-- | src/extensions/RichText.js | 2 | ||||
-rw-r--r-- | src/nodes/CodeBlock.js | 14 | ||||
-rw-r--r-- | src/tests/markdown.spec.js | 2 |
4 files changed, 19 insertions, 3 deletions
diff --git a/src/extensions/Markdown.js b/src/extensions/Markdown.js index 8b742fa88..687e9b75a 100644 --- a/src/extensions/Markdown.js +++ b/src/extensions/Markdown.js @@ -1,9 +1,9 @@ -/* +/** * @copyright Copyright (c) 2022 Max <max@nextcloud.com> * * @author Max <max@nextcloud.com> * - * @license GNU AGPL version 3 or any later version + * @license AGPL-3.0-or-later * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as diff --git a/src/extensions/RichText.js b/src/extensions/RichText.js index 12454be39..c19d09bc8 100644 --- a/src/extensions/RichText.js +++ b/src/extensions/RichText.js @@ -28,7 +28,7 @@ import BulletList from './../nodes/BulletList.js' import Callout from './../nodes/Callouts.js' import CharacterCount from '@tiptap/extension-character-count' import Code from '@tiptap/extension-code' -import CodeBlock from '@tiptap/extension-code-block' +import CodeBlock from './../nodes/CodeBlock.js' import Document from '@tiptap/extension-document' import Dropcursor from '@tiptap/extension-dropcursor' import FrontMatter from './../nodes/FrontMatter.js' diff --git a/src/nodes/CodeBlock.js b/src/nodes/CodeBlock.js new file mode 100644 index 000000000..f6d79c68b --- /dev/null +++ b/src/nodes/CodeBlock.js @@ -0,0 +1,14 @@ +import TiptapCodeBlock from '@tiptap/extension-code-block' +import { defaultMarkdownSerializer } from 'prosemirror-markdown' + +const CodeBlock = TiptapCodeBlock.extend({ + + toMarkdown(state, node, parent, index) { + // prosemirror-markdown uses `params` instead of `language` attribute + node.attrs.params = node.attrs.language + return defaultMarkdownSerializer.nodes.code_block(state, node, parent, index) + }, + +}) + +export default CodeBlock diff --git a/src/tests/markdown.spec.js b/src/tests/markdown.spec.js index ec8a30e55..0194ea739 100644 --- a/src/tests/markdown.spec.js +++ b/src/tests/markdown.spec.js @@ -101,6 +101,8 @@ describe('Markdown though editor', () => { }) test('code block', () => { expect(markdownThroughEditor('```\n<?php echo "Hello World";\n```')).toBe('```\n<?php echo "Hello World";\n```') + // Issue #3328 + expect(markdownThroughEditor('```python\nprint("Hello World")\n```')).toBe('```python\nprint("Hello World")\n```') }) test('markdown untouched', () => { // Issue #2703 |