From 5fb069f432799e0d17a7102fae70757e320dc0c5 Mon Sep 17 00:00:00 2001 From: vben Date: Mon, 19 Oct 2020 22:09:03 +0800 Subject: [PATCH] feat: add markdown component --- package.json | 1 + src/components/Markdown/index.ts | 3 + src/components/Markdown/src/index.vue | 82 ++++++++++++++++++++++++ src/components/Markdown/src/types.ts | 4 ++ src/router/menus/modules/demo/editor.ts | 15 +++++ src/router/routes/modules/demo/editor.ts | 27 ++++++++ src/views/demo/editor/Markdown.vue | 33 ++++++++++ yarn.lock | 12 ++++ 8 files changed, 177 insertions(+) create mode 100644 src/components/Markdown/index.ts create mode 100644 src/components/Markdown/src/index.vue create mode 100644 src/components/Markdown/src/types.ts create mode 100644 src/router/menus/modules/demo/editor.ts create mode 100644 src/router/routes/modules/demo/editor.ts create mode 100644 src/views/demo/editor/Markdown.vue diff --git a/package.json b/package.json index f29e62ad..ca016ffb 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "nprogress": "^0.2.0", "path-to-regexp": "^6.2.0", "qrcode": "^1.4.4", + "vditor": "^3.5.5", "vue": "^3.0.1", "vue-i18n": "^9.0.0-beta.4", "vue-router": "^4.0.0-beta.13", diff --git a/src/components/Markdown/index.ts b/src/components/Markdown/index.ts new file mode 100644 index 00000000..b668eb9c --- /dev/null +++ b/src/components/Markdown/index.ts @@ -0,0 +1,3 @@ +export { default as MarkDown } from './src/index.vue'; + +export * from './src/types'; diff --git a/src/components/Markdown/src/index.vue b/src/components/Markdown/src/index.vue new file mode 100644 index 00000000..b9023444 --- /dev/null +++ b/src/components/Markdown/src/index.vue @@ -0,0 +1,82 @@ + + diff --git a/src/components/Markdown/src/types.ts b/src/components/Markdown/src/types.ts new file mode 100644 index 00000000..b4bb4658 --- /dev/null +++ b/src/components/Markdown/src/types.ts @@ -0,0 +1,4 @@ +import Vditor from 'vditor'; +export interface MarkDownActionType { + getVditor: () => Vditor; +} diff --git a/src/router/menus/modules/demo/editor.ts b/src/router/menus/modules/demo/editor.ts new file mode 100644 index 00000000..0fbdaa2f --- /dev/null +++ b/src/router/menus/modules/demo/editor.ts @@ -0,0 +1,15 @@ +import type { MenuModule } from '/@/router/types.d'; +const menu: MenuModule = { + orderNo: 500, + menu: { + name: '编辑器', + path: '/editor', + children: [ + { + path: '/markdown', + name: 'markdown编辑器', + }, + ], + }, +}; +export default menu; diff --git a/src/router/routes/modules/demo/editor.ts b/src/router/routes/modules/demo/editor.ts new file mode 100644 index 00000000..482a0bd3 --- /dev/null +++ b/src/router/routes/modules/demo/editor.ts @@ -0,0 +1,27 @@ +import type { AppRouteModule } from '/@/router/types'; + +import { PAGE_LAYOUT_COMPONENT } from '/@/router/constant'; + +export default { + layout: { + path: '/editor', + name: 'Editor', + component: PAGE_LAYOUT_COMPONENT, + redirect: '/editor/markdown', + meta: { + icon: 'ant-design:table-outlined', + title: '编辑器', + }, + }, + + routes: [ + { + path: '/markdown', + name: 'MarkdownDemo', + component: () => import('/@/views/demo/editor/Markdown.vue'), + meta: { + title: 'markdown编辑器', + }, + }, + ], +} as AppRouteModule; diff --git a/src/views/demo/editor/Markdown.vue b/src/views/demo/editor/Markdown.vue new file mode 100644 index 00000000..dd20ec24 --- /dev/null +++ b/src/views/demo/editor/Markdown.vue @@ -0,0 +1,33 @@ + + diff --git a/yarn.lock b/yarn.lock index 6321bde6..017ed74c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2346,6 +2346,11 @@ detect-indent@6.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== +diff-match-patch@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== + diff@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -6980,6 +6985,13 @@ vary@^1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vditor@^3.5.5: + version "3.5.5" + resolved "https://registry.npmjs.org/vditor/-/vditor-3.5.5.tgz#03b7c965470fd434cd098e3f6ac6c7e65ca5a52a" + integrity sha512-NpBa0c1tK3jnH/E+rWkDO2x/bDx33KIWuThjF70gING58zuluxicGczuVb2KvdLxWoozJ6MaH5DQjj66Jct1QA== + dependencies: + diff-match-patch "^1.0.5" + vfile-location@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz#81cd8a04b0ac935185f4fce16f270503fc2f692f" -- GitLab