UNPKG

@valaxyjs/utils

Version:

A utility library for Valaxy

76 lines (72 loc) 2.07 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[]; /** * Remove git+ prefix from repository URL * @param url - Repository URL that may contain git+ prefix * @returns Normalized URL without git+ prefix * @example * normalizeRepositoryUrl('git+https://github.com/user/repo.git') * // => 'https://github.com/user/repo.git' */ declare function normalizeRepositoryUrl(url: string): string; export { addToParent, buildTree, getHeaders, normalizeRepositoryUrl, resolveHeaders, resolvedHeaders, serializeHeader }; export type { GetHeadersOptions, Header, MenuItem };