mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-07-03 10:00:41 +00:00
Merge pull request #11 from Brecert/markdown-it-cleanup
moved markdown-it formatters to their own plugins
This commit is contained in:
commit
0d63363853
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 config from "@/config.js";
|
||||||
|
|
||||||
import customEmoji from './markdown-it-plugins/customEmoji'
|
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'
|
import hljs from 'highlight.js'
|
||||||
|
|
||||||
|
|
@ -24,37 +26,9 @@ const markdown = new MarkdownIt({
|
||||||
return '<div class="codeblock"><code>' + markdown.utils.escapeHtml(str) + '</code></div>';
|
return '<div class="codeblock"><code>' + markdown.utils.escapeHtml(str) + '</code></div>';
|
||||||
}
|
}
|
||||||
}).use(chatPlugin)
|
}).use(chatPlugin)
|
||||||
.use(customEmoji);
|
.use(customEmoji)
|
||||||
|
.use(formatLink)
|
||||||
|
.use(formatCode);
|
||||||
//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)
|
|
||||||
|
|
||||||
|
|
||||||
export default (message) => {
|
export default (message) => {
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue