diff --git a/package.json b/package.json
index f07a39c..00688f7 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"@milkdown/plugin-slash": "^7.1.0",
"@milkdown/plugin-tooltip": "^7.1.0",
"@milkdown/preset-commonmark": "^7.1.0",
+ "@milkdown/preset-gfm": "^7.1.0",
"@milkdown/prose": "^7.1.0",
"@milkdown/theme-nord": "^7.1.0",
"@milkdown/transformer": "^7.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4540aea..5b8d77a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,6 +12,7 @@ specifiers:
'@milkdown/plugin-slash': ^7.1.0
'@milkdown/plugin-tooltip': ^7.1.0
'@milkdown/preset-commonmark': ^7.1.0
+ '@milkdown/preset-gfm': ^7.1.0
'@milkdown/prose': ^7.1.0
'@milkdown/theme-nord': ^7.1.0
'@milkdown/transformer': ^7.1.0
@@ -39,6 +40,7 @@ dependencies:
'@milkdown/plugin-slash': 7.1.0_732s7te4rg2orop6g3xf7k4a4q
'@milkdown/plugin-tooltip': 7.1.0_732s7te4rg2orop6g3xf7k4a4q
'@milkdown/preset-commonmark': 7.1.0_732s7te4rg2orop6g3xf7k4a4q
+ '@milkdown/preset-gfm': 7.1.0_s4gkqlm2kzzymfckug7bkebyd4
'@milkdown/prose': 7.1.0
'@milkdown/theme-nord': 7.1.0_fnri332nzjq6erd5dndce6khhq
'@milkdown/transformer': 7.1.0_@milkdown+prose@7.1.0
@@ -631,6 +633,28 @@ packages:
- '@milkdown/transformer'
dev: false
+ /@milkdown/preset-gfm/7.1.0_s4gkqlm2kzzymfckug7bkebyd4:
+ resolution: {integrity: sha512-ggqdItgW6N2r4SWabyurgKiRUAsgcBLaVBLQUSSAz9VHh5lTVOr/ZzHrzFASU3+4l+G4xSHAL4/pFJw3NUNpiQ==}
+ peerDependencies:
+ '@milkdown/core': ^7.0.0-next.0
+ '@milkdown/ctx': ^7.0.0-next.0
+ '@milkdown/preset-commonmark': ^7.0.0-next.0
+ '@milkdown/prose': ^7.0.0-next.0
+ '@milkdown/transformer': ^7.0.0-next.0
+ dependencies:
+ '@milkdown/core': 7.1.0_c3r5dnopq2fkbj274fowd6pqe4
+ '@milkdown/ctx': 7.1.0
+ '@milkdown/exception': 7.1.0
+ '@milkdown/preset-commonmark': 7.1.0_732s7te4rg2orop6g3xf7k4a4q
+ '@milkdown/prose': 7.1.0
+ '@milkdown/transformer': 7.1.0_@milkdown+prose@7.1.0
+ '@milkdown/utils': 7.1.0_732s7te4rg2orop6g3xf7k4a4q
+ remark-gfm: 3.0.1
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/@milkdown/prose/7.1.0:
resolution: {integrity: sha512-hEXTNh90cNIQw9LUt1uiNSKxqRtUb9G/X+YyndxOtBgLjmLAqNVvIPITbCoGNonbYA6CXQz7aWmry/vZfOhgaw==}
dependencies:
@@ -1295,6 +1319,10 @@ packages:
upper-case-first: 2.0.2
dev: false
+ /ccount/2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+ dev: false
+
/chalk/2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
@@ -1694,6 +1722,11 @@ packages:
engines: {node: '>=10'}
dev: true
+ /escape-string-regexp/5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+ dev: false
+
/eslint-import-resolver-node/0.3.7:
resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
dependencies:
@@ -2747,6 +2780,10 @@ packages:
dependencies:
sourcemap-codec: 1.4.8
+ /markdown-table/3.0.3:
+ resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
+ dev: false
+
/masto/5.10.0:
resolution: {integrity: sha512-RlTw3X2b2ipkcgsgoKEWKKFNYkpAlUtJhNOFKwBKWEBv+we/ZupQbnerGOJssB5rs7ig4HWWsZZHLtNeFdYQTQ==}
dependencies:
@@ -2771,6 +2808,15 @@ packages:
unist-util-visit: 4.1.2
dev: false
+ /mdast-util-find-and-replace/2.2.2:
+ resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ escape-string-regexp: 5.0.0
+ unist-util-is: 5.2.1
+ unist-util-visit-parents: 5.1.3
+ dev: false
+
/mdast-util-from-markdown/0.8.5:
resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
dependencies:
@@ -2802,6 +2848,62 @@ packages:
- supports-color
dev: false
+ /mdast-util-gfm-autolink-literal/1.0.3:
+ resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ ccount: 2.0.1
+ mdast-util-find-and-replace: 2.2.2
+ micromark-util-character: 1.1.0
+ dev: false
+
+ /mdast-util-gfm-footnote/1.0.2:
+ resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ micromark-util-normalize-identifier: 1.0.0
+ dev: false
+
+ /mdast-util-gfm-strikethrough/1.0.3:
+ resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ dev: false
+
+ /mdast-util-gfm-table/1.0.7:
+ resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ markdown-table: 3.0.3
+ mdast-util-from-markdown: 1.3.0
+ mdast-util-to-markdown: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /mdast-util-gfm-task-list-item/1.0.2:
+ resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ dev: false
+
+ /mdast-util-gfm/2.0.2:
+ resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==}
+ dependencies:
+ mdast-util-from-markdown: 1.3.0
+ mdast-util-gfm-autolink-literal: 1.0.3
+ mdast-util-gfm-footnote: 1.0.2
+ mdast-util-gfm-strikethrough: 1.0.3
+ mdast-util-gfm-table: 1.0.7
+ mdast-util-gfm-task-list-item: 1.0.2
+ mdast-util-to-markdown: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/mdast-util-math/2.0.2:
resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==}
dependencies:
@@ -2866,6 +2968,79 @@ packages:
uvu: 0.5.6
dev: false
+ /micromark-extension-gfm-autolink-literal/1.0.3:
+ resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-sanitize-uri: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-footnote/1.0.4:
+ resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==}
+ dependencies:
+ micromark-core-commonmark: 1.0.6
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-normalize-identifier: 1.0.0
+ micromark-util-sanitize-uri: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-strikethrough/1.0.4:
+ resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==}
+ dependencies:
+ micromark-util-chunked: 1.0.0
+ micromark-util-classify-character: 1.0.0
+ micromark-util-resolve-all: 1.0.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-table/1.0.5:
+ resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-tagfilter/1.0.1:
+ resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==}
+ dependencies:
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-extension-gfm-task-list-item/1.0.3:
+ resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm/2.0.1:
+ resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==}
+ dependencies:
+ micromark-extension-gfm-autolink-literal: 1.0.3
+ micromark-extension-gfm-footnote: 1.0.4
+ micromark-extension-gfm-strikethrough: 1.0.4
+ micromark-extension-gfm-table: 1.0.5
+ micromark-extension-gfm-tagfilter: 1.0.1
+ micromark-extension-gfm-task-list-item: 1.0.3
+ micromark-util-combine-extensions: 1.0.0
+ micromark-util-types: 1.0.2
+ dev: false
+
/micromark-extension-math/2.0.2:
resolution: {integrity: sha512-cFv2B/E4pFPBBFuGgLHkkNiFAIQv08iDgPH2HCuR2z3AUgMLecES5Cq7AVtwOtZeRrbA80QgMUk8VVW0Z+D2FA==}
dependencies:
@@ -3592,6 +3767,17 @@ packages:
jsesc: 0.5.0
dev: true
+ /remark-gfm/3.0.1:
+ resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-gfm: 2.0.2
+ micromark-extension-gfm: 2.0.1
+ unified: 10.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/remark-inline-links/6.0.1:
resolution: {integrity: sha512-etdk1A0kRs+bXtT41XEFfyePOu583cmuHDF8bhAUfHJeCAPbPZpqmqZHD/wLhijIJV3ldjIvO4irM0jRGb1Dhg==}
dependencies:
diff --git a/src/components/Milkdown/Editor.vue b/src/components/Milkdown/Editor.vue
index c5668b5..a0b1780 100644
--- a/src/components/Milkdown/Editor.vue
+++ b/src/components/Milkdown/Editor.vue
@@ -2,13 +2,17 @@
import { Editor, defaultValueCtx, rootCtx } from '@milkdown/core'
import { commonmark } from '@milkdown/preset-commonmark'
import { nord } from '@milkdown/theme-nord'
-// import { history } from '@milkdown/plugin-history'
-// import { math } from '@milkdown/plugin-math'
+import { history } from '@milkdown/plugin-history'
+import { math } from '@milkdown/plugin-math'
import { Milkdown, useEditor } from '@milkdown/vue'
import { tooltipFactory } from '@milkdown/plugin-tooltip'
import { usePluginViewFactory } from '@prosemirror-adapter/vue'
+import { gfm } from '@milkdown/preset-gfm'
import Tooltip from './Tooltip.vue'
+import Slash from './Slash.vue'
+
const tooltip = tooltipFactory('Text')
+const slash = tooltipFactory('Text')
const markdown = `# Milkdown Vue Commonmark
@@ -29,9 +33,18 @@ useEditor((root) => {
component: Tooltip,
}),
})
+ ctx.set(slash.key, {
+ view: pluginViewFactory({
+ component: Slash,
+ }),
+ })
})
.use(commonmark)
.use(tooltip)
+ .use(slash)
+ .use(history)
+ .use(math)
+ .use(gfm)
})
diff --git a/src/components/Milkdown/Slash.vue b/src/components/Milkdown/Slash.vue
new file mode 100644
index 0000000..2ea523a
--- /dev/null
+++ b/src/components/Milkdown/Slash.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+