@nolebase/integrations
Version:
A unconfig (unified configurations) for both VitePress and VitePress theme. Supporting all Nólëbase Integrations with default theme.
37 lines (34 loc) • 1.06 kB
JavaScript
import { cwd } from 'node:process';
import defu from 'defu';
function presetMarkdownIt(options) {
const opts = defu(options, {
bidirectionalLinks: {
options: {
dir: cwd()
}
},
unlazyImages: {
options: {
imgElementTag: "NolebaseUnlazyImg"
}
},
inlineLinkPreview: true
});
return {
async install(md) {
if (opts.bidirectionalLinks) {
const { BiDirectionalLinks } = await import('@nolebase/markdown-it-bi-directional-links');
md.use(BiDirectionalLinks(opts.bidirectionalLinks.options));
}
if (opts.unlazyImages) {
const { UnlazyImages } = await import('@nolebase/markdown-it-unlazy-img');
md.use(UnlazyImages(), opts.unlazyImages.options);
}
if (opts.inlineLinkPreview) {
const { InlineLinkPreviewElementTransform } = await import('@nolebase/vitepress-plugin-inline-link-preview/markdown-it');
md.use(InlineLinkPreviewElementTransform, opts.inlineLinkPreview.options);
}
}
};
}
export { presetMarkdownIt };