Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax <max@nextcloud.com>2022-03-22 15:52:36 +0300
committerMax <max@nextcloud.com>2022-03-22 16:16:21 +0300
commited35c50e8df35160ff32ec296ba2617d08a119b0 (patch)
tree39a3930c25744954c18f972b8fa5024eb01eaf78 /src
parent889836a8691cb85b7969558cd9e6d7521e074707 (diff)
fix: detect callouts pasted from handbook
Signed-off-by: Max <max@nextcloud.com>
Diffstat (limited to 'src')
-rw-r--r--src/nodes/Callouts.js12
-rw-r--r--src/tests/markdown.spec.js8
2 files changed, 18 insertions, 2 deletions
diff --git a/src/nodes/Callouts.js b/src/nodes/Callouts.js
index f1ffe8482..0f2b2e8de 100644
--- a/src/nodes/Callouts.js
+++ b/src/nodes/Callouts.js
@@ -47,7 +47,11 @@ export default Node.create({
type: {
default: 'info',
rendered: false,
- parseHTML: element => element.getAttribute('data-callout'),
+ parseHTML: element => {
+ return element.getAttribute('data-callout')
+ || typesAvailable.find((type) => element.classList.contains(type))
+ || (element.classList.contains('warning') && 'warn')
+ },
renderHTML: attributes => {
return {
'data-callout': attributes.type,
@@ -61,7 +65,11 @@ export default Node.create({
parseHTML() {
return [
{
- tag: 'div',
+ tag: 'div.callout',
+ },
+ {
+ tag: 'p.callout',
+ priority: 1001,
},
]
},
diff --git a/src/tests/markdown.spec.js b/src/tests/markdown.spec.js
index 1bb86ac39..2e862c13b 100644
--- a/src/tests/markdown.spec.js
+++ b/src/tests/markdown.spec.js
@@ -150,6 +150,14 @@ describe('Markdown serializer from html', () => {
expect(markdownThroughEditorHtml(
`<div data-callout="${type}" class="callout callout-${type}"><p>!${type}!</p>just do it<p></p></div>`
)).toBe(`::: ${type}\n!${type}!\n\njust do it\n\n:::`)
+ expect(markdownThroughEditorHtml(
+ `<p class="callout ${type}">!${type}!</p>`
+ )).toBe(`::: ${type}\n!${type}!\n\n:::`)
})
})
+ test('callouts with handbook classes', () => {
+ expect(markdownThroughEditorHtml(
+ `<p class="callout warning">!warning!</p>`
+ )).toBe(`::: warn\n!warning!\n\n:::`)
+ })
})