diff --git a/src/utils/markdown-it-plugins/formatCode.js b/src/utils/markdown-it-plugins/formatCode.js new file mode 100644 index 0000000..565b9db --- /dev/null +++ b/src/utils/markdown-it-plugins/formatCode.js @@ -0,0 +1,10 @@ +export default function formatCode(md, opts) { + const defaultRender = md.renderer.rules.code_inline || function(tokens, idx, options, env, self) { + return self.renderToken(tokens, idx, options); + }; + + md.renderer.rules.code_inline = function (tokens, idx, options, env, self) { + tokens[idx].attrPush(['class', 'code-inline']); + return defaultRender(tokens, idx, options, env, self); + }; +} \ No newline at end of file diff --git a/src/utils/markdown-it-plugins/formatLink.js b/src/utils/markdown-it-plugins/formatLink.js new file mode 100644 index 0000000..78495b9 --- /dev/null +++ b/src/utils/markdown-it-plugins/formatLink.js @@ -0,0 +1,12 @@ +export default function formatLink(md, opts) { + const defaultRender = md.renderer.rules.link_open || function(tokens, idx, options, env, self) { + return self.renderToken(tokens, idx, options); + }; + + md.renderer.rules.link_open = function (tokens, idx, options, env, self) { + tokens[idx].attrPush(['target', '_blank']); // add new attribute + tokens[idx].attrPush(['class', 'msg-link']); + // pass token to default renderer. + return defaultRender(tokens, idx, options, env, self); + }; +} \ No newline at end of file diff --git a/src/utils/messageFormatter.js b/src/utils/messageFormatter.js index 8c4c524..0694d54 100644 --- a/src/utils/messageFormatter.js +++ b/src/utils/messageFormatter.js @@ -3,6 +3,8 @@ import emojiParser from '@/utils/emojiParser'; import config from "@/config.js"; import customEmoji from './markdown-it-plugins/customEmoji' +import formatLink from './markdown-it-plugins/formatLink' +import formatCode from './markdown-it-plugins/formatCode' import hljs from 'highlight.js' @@ -24,37 +26,9 @@ const markdown = new MarkdownIt({ return '
' + markdown.utils.escapeHtml(str) + '