personal-site/assets/markdown_conf.ts
2024-12-22 12:22:47 -08:00

36 lines
No EOL
1.1 KiB
TypeScript

import hljs from 'highlight.js';
import MarkdownIt from 'markdown-it';
export default function configured_markdown(): MarkdownIt {
const md: MarkdownIt = MarkdownIt({
breaks: true,
typographer: true,
html: true,
highlight: function (str, lang) {
if (lang && hljs.getLanguage(lang)) {
try {
return '<pre><code class="hljs">' +
hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
'</code></pre>';
} catch (__) { }
}
return '<pre><code class="hljs">' + md.utils.escapeHtml(str) + '</code></pre>';
}
})
md.renderer.rules.hr = function (tokens, idx, options, env, self) {
return '<div class="rounded-full h-0.5 bg-purple-500 my-3"></div>'
}
md.renderer.rules.softbreak = function (tokens, idx, options, env, self) {
return '<br>'
}
md.renderer.rules.hardbreak = function (tokens, idx, options, env, self) {
return '<br><br>'
}
return md;
}