From 47a7c77e201019388bb95b97ca7ceebcfabcd68f Mon Sep 17 00:00:00 2001 From: purocean Date: Mon, 13 Jan 2020 17:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=8D=E5=88=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/Preview.vue | 2 ++ frontend/src/plugins/CodePlugin.js | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 frontend/src/plugins/CodePlugin.js diff --git a/frontend/src/components/Preview.vue b/frontend/src/components/Preview.vue index 3c8d8d41..db583f7c 100644 --- a/frontend/src/components/Preview.vue +++ b/frontend/src/components/Preview.vue @@ -58,6 +58,7 @@ import LinkTargetPlugin from '../plugins/LinkTargetPlugin' import DrawioPlugin from '../plugins/DrawioPlugin' import PlantumlPlugin from '../plugins/PlantumlPlugin' import MermaidPlugin from '../plugins/MermaidPlugin' +import CodePlugin from '../plugins/CodePlugin' import file from '@/lib/file' import env from '@/lib/env' import { encodeMarkdownLink } from '@/lib/utils' @@ -94,6 +95,7 @@ const markdown = Markdown({ .use(MarkdownItToc) .use(MarkdownItECharts) .use(MermaidPlugin) + .use(CodePlugin) export default { name: 'xview', diff --git a/frontend/src/plugins/CodePlugin.js b/frontend/src/plugins/CodePlugin.js new file mode 100644 index 00000000..754f9ad8 --- /dev/null +++ b/frontend/src/plugins/CodePlugin.js @@ -0,0 +1,12 @@ +export default (md) => { + const Fun = fn => (tokens, idx, options, env, slf) => { + if (tokens[idx].attrIndex('title') < 0) { + tokens[idx].attrPush(['title', 'Ctrl + 单击复制代码']) + tokens[idx].attrPush(['onclick', `event.ctrlKey && window.appVm.$bus.emit('copy-text', this.innerText)`]) + } + + return (fn)(tokens, idx, options, env, slf) + } + + md.renderer.rules.code_inline = Fun(md.renderer.rules.code_inline.bind(md.renderer.rules)) +}