toshiki-notebook/docs/.vitepress/config/markdown.ts

62 lines
2.6 KiB
TypeScript

import process from 'node:process'
// import { BiDirectionalLinks } from '@nolebase/markdown-it-bi-directional-links'
// import { ElementTransform } from '@nolebase/markdown-it-element-transform'
import type { MarkdownOptions } from 'vitepress'
import mdkatex from '@andatoshiki/markdown-it-katex'
import mdTasklist from 'markdown-it-task-lists'
import mdCaption from '@andatoshiki/markdown-it-image-caption'
// import mdLink from 'markdown-it-link-preview'
export const markdown: MarkdownOptions = {
html: true,
theme: {
light: 'github-light',
dark: 'github-dark-dimmed',
},
lineNumbers: true,
config: md => {
// use more markdown-it plugins!
md.use(mdkatex),
md.use(mdTasklist),
md.use(mdCaption)
// md.use(mdLink),
// md.use(
// BiDirectionalLinks({
// dir: 'docs/',
// })
// ),
// md.use(
// ElementTransform,
// (() => {
// let transformNextLinkCloseToken = false
// return {
// transform(token) {
// switch (token.type) {
// case 'link_open':
// if (token.attrGet('class') !== 'header-anchor') {
// token.tag = 'VPNolebaseInlineLinkPreview'
// transformNextLinkCloseToken = true
// }
// break
// case 'link_close':
// if (transformNextLinkCloseToken) {
// token.tag = 'VPNolebaseInlineLinkPreview'
// transformNextLinkCloseToken = false
// }
// break
// }
// },
// }
// })()
// )
// insert specific custom vue layout template slots under a markdown tag attributes (currenlty disabled and unncessary because applied via markdowntransform component)
// md.renderer.rules.heading_close = (tokens, idx, options, env, slf) => {
// let htmlResult = slf.renderToken(tokens, idx, options);
// if (tokens[idx].tag === 'h1') htmlResult += `\n<ClientOnly><PageInfo /></ClientOnly>`;
// return htmlResult;
// }
},
}