/* * SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: MIT */ import { TocAst } from './toc-ast.js' export type TocOptions = { slugify: (name: string, index: number) => string uniqueSlugStartIndex: number containerClass: string containerId: string listClass: string itemClass: string linkClass: string level: number | number[] listType: 'ol' | 'ul' format?: (name: string) => string callback?: (ast: TocAst) => void allowedTokenTypes: string[] } function defaultSlugify(name: string) { return encodeURIComponent(String(name).trim().toLowerCase().replace(/\s+/g, '-')) } /** * The default options for the toc plugin. */ export const defaultOptions: TocOptions = { uniqueSlugStartIndex: 0, containerClass: 'table-of-contents', containerId: '', listClass: '', itemClass: '', linkClass: '', level: 1, listType: 'ol', allowedTokenTypes: ['text', 'code_inline', 'math', 'inline_math', 'display_math'], slugify: defaultSlugify, }