WebIndex/plugins/markdown-it.ts
2025-01-13 21:51:37 +08:00

50 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import md, { type Options } from 'markdown-it'
// @ts-ignore
import mm from 'markdown-it-mathjax3'
const options: Options = {
// Enable HTML tags in source
html: true,
// Use '/' to close single tags (<br />).
// This is only for full CommonMark compatibility.
xhtmlOut: true,
// Convert '\n' in paragraphs into <br>
breaks: true,
// CSS language prefix for fenced blocks. Can be
// Useful for external highlighters.
langPrefix: 'language-',
// Autoconvert URL-like text to links
linkify: true,
// Enable some language-neutral replacement + quotes beautification
// For the full list of replacements, see https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs
typographer: true,
// Double + single quotes replacement pairs, when typographer enabled,
// And smartquotes on. Could be either a String or an Array.
//
// For example, you can use '«»„“' for Russian, '„“‚‘' for German,
// And ['«\xA0', '\xA0»', '\xA0', '\xA0'] for French (including nbsp).
quotes: '“”‘’',
// Highlighter function. Should return escaped HTML,
// Or '' if the source string is not changed and should be escaped externally.
// If result starts with <pre... internal wrapper is skipped.
highlight(/* Str, lang */) { return '' },
}
export default defineNuxtPlugin(() => {
const render = md(options)
.use(mm, {
})
return {
provide: {
mdRender: render,
},
}
})