UNPKG

@valaxyjs/utils

Version:

A utility library for Valaxy

66 lines (63 loc) 1.7 kB
interface Header { /** * The level of the header * * `1` to `6` for `<h1>` to `<h6>` */ level: number; /** * The title of the header */ title: string; /** * The slug of the header * * Typically the `id` attr of the header anchor */ slug: string; /** * Link of the header * * Typically using `#${slug}` as the anchor hash */ link: string; /** * i18n */ lang?: string; } /** * @en * Menu item, the title menu parsed from the article. * * @zh * 菜单项,从文章中解析出的标题菜单。 */ type MenuItem = Omit<Header, 'slug' | 'children'> & { element: HTMLHeadElement; children?: MenuItem[]; }; /** * @ref vitepress src/client/theme-default/composables/outline.ts */ declare const resolvedHeaders: { element: HTMLHeadElement; link: string; }[]; interface GetHeadersOptions { range?: number | [number, number] | 'deep' | { level: [number, number]; }; selector?: string; filter?: (el: Element) => boolean; } declare function buildTree(data: MenuItem[], min: number, max: number): MenuItem[]; declare function addToParent(currIndex: number, headers: MenuItem[], levelsRange: [number, number]): boolean; declare function resolveHeaders(headers: MenuItem[], range?: GetHeadersOptions['range']): MenuItem[]; declare function serializeHeader(h: Element): string; /** * get headers from document directly */ declare function getHeaders(options?: GetHeadersOptions): MenuItem[]; export { addToParent, buildTree, getHeaders, resolveHeaders, resolvedHeaders, serializeHeader }; export type { GetHeadersOptions, Header, MenuItem };