import type { MarkdownIt } from "markdown-it"; import footnotePlugin from "markdown-it-footnote"; import markPlugin from "markdown-it-mark"; import taskListPlugin from "markdown-it-task-lists"; import { blockIdPlugin } from "./block-id-plugin.ts"; import { calloutPlugin } from "./callout-plugin.ts"; import { commentPlugin } from "./comment-plugin.ts"; import { embedPlugin } from "./embed-plugin.ts"; import { frontmatterPlugin } from "./frontmatter-plugin.ts"; import { headingAnchorPlugin } from "./heading-anchor-plugin.ts"; import { imagePlugin } from "./image-plugin.ts"; import { katexPlugin } from "./katex-plugin.ts"; import { mentionPlugin } from "./mention-plugin.ts"; import { tableWrapPlugin } from "./table-wrap-plugin.ts"; import { taskStatePlugin } from "./task-state-plugin.ts"; import { wikilinkPlugin } from "./wikilink-plugin.ts"; // shiki/viz are deliberately server-only (heavy WASM grammars / separate D3 bundle), so they live in markdown.ts, not here. export function useBaseMarkdownPlugins(md: MarkdownIt): void { md.use(frontmatterPlugin); md.use(commentPlugin); md.use(wikilinkPlugin); md.use(blockIdPlugin); md.use(headingAnchorPlugin); md.use(footnotePlugin); md.use(markPlugin); md.use(taskListPlugin, { enabled: false, label: true }); md.use(taskStatePlugin); md.use(imagePlugin); md.use(tableWrapPlugin); md.use(calloutPlugin); md.use(katexPlugin, { throwOnError: false }); md.use(embedPlugin); md.use(mentionPlugin); }