import toc, { defaults, Options as TocOptions } from "./toc/mod.ts"; export * from "./toc/anchors.ts"; import createSlugifier, { Options as SlugifierOptions, } from "lume/core/slugifier.ts"; import "lume/types.ts"; export interface Options extends Omit { slugify: Partial | ((text: string) => string) | undefined; } export default function tocPlugin(userOptions: Partial = {}) { const options = { ...defaults, ...{ slugify: undefined }, ...userOptions }; const { slugify } = options; if (!slugify || typeof slugify !== "function") { options.slugify = createSlugifier(slugify); } return function (site: Lume.Site) { site.hooks.addMarkdownItPlugin(toc, options); }; }