37 lines
989 B
TypeScript

import type { Markdown } from 'vuepress/markdown'
import type { MarkdownPowerPluginOptions } from '../../shared/index.js'
import { attrs } from '@mdit/plugin-attrs'
import { footnote } from '@mdit/plugin-footnote'
import { mark } from '@mdit/plugin-mark'
import { sub } from '@mdit/plugin-sub'
import { sup } from '@mdit/plugin-sup'
import { tasklist } from '@mdit/plugin-tasklist'
import { isPlainObject } from '@vuepress/helper'
import { iconsPlugin } from './icons.js'
import { plotPlugin } from './plot.js'
export function inlineSyntaxPlugin(
md: Markdown,
options: MarkdownPowerPluginOptions,
): void {
md.use(attrs)
md.use(mark)
md.use(sub)
md.use(sup)
md.use(footnote)
md.use(tasklist)
if (options.icons) {
// :[collect:name]:
md.use(iconsPlugin, isPlainObject(options.icons) ? options.icons : {})
}
if (
options.plot === true
|| (isPlainObject(options.plot) && options.plot.tag !== false)
) {
// !!plot!!
md.use(plotPlugin)
}
}