mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-06-13 11:31:41 +00:00
moved markdown-it formatters to their own plugins
This commit is contained in:
parent
90b59a3aa7
commit
43968b2f8b
3 changed files with 27 additions and 31 deletions
10
src/utils/markdown-it-plugins/formatCode.js
Normal file
10
src/utils/markdown-it-plugins/formatCode.js
Normal file
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
12
src/utils/markdown-it-plugins/formatLink.js
Normal file
12
src/utils/markdown-it-plugins/formatLink.js
Normal file
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
|
@ -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 '<div class="codeblock"><code>' + markdown.utils.escapeHtml(str) + '</code></div>';
|
||||
}
|
||||
}).use(chatPlugin)
|
||||
.use(customEmoji);
|
||||
|
||||
|
||||
//add attributes to link tag
|
||||
(function() {
|
||||
const defaultRender = markdown.renderer.rules.link_open || function(tokens, idx, options, env, self) {
|
||||
return self.renderToken(tokens, idx, options);
|
||||
};
|
||||
|
||||
markdown.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);
|
||||
};
|
||||
})();
|
||||
|
||||
// add addribute to code
|
||||
(function() {
|
||||
const defaultRender = markdown.renderer.rules.code_inline || function(tokens, idx, options, env, self) {
|
||||
return self.renderToken(tokens, idx, options);
|
||||
};
|
||||
|
||||
markdown.renderer.rules.code_inline = function (tokens, idx, options, env, self) {
|
||||
tokens[idx].attrPush(['class', 'code-inline']);
|
||||
// pass token to default renderer.
|
||||
return defaultRender(tokens, idx, options, env, self);
|
||||
};
|
||||
})();
|
||||
console.log(markdown.renderer.rules)
|
||||
|
||||
.use(customEmoji)
|
||||
.use(formatLink)
|
||||
.use(formatCode);
|
||||
|
||||
export default (message) => {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue