1 | import MarkdownIt from 'markdown-it';
|
2 | import { default as MarkdownItToken } from 'markdown-it/lib/token.mjs';
|
3 | import { default as MarkdownItState} from 'markdown-it/lib/rules_core/state_core.mjs';
|
4 |
|
5 | declare namespace anchor {
|
6 | export type Token = MarkdownItToken
|
7 | export type State = MarkdownItState
|
8 | export type RenderHref = (slug: string, state: State) => string;
|
9 | export type RenderAttrs = (slug: string, state: State) => Record<string, string | number>;
|
10 |
|
11 | export interface PermalinkOptions {
|
12 | class?: string,
|
13 | symbol?: string,
|
14 | renderHref?: RenderHref,
|
15 | renderAttrs?: RenderAttrs
|
16 | }
|
17 |
|
18 | export interface HeaderLinkPermalinkOptions extends PermalinkOptions {
|
19 | safariReaderFix?: boolean;
|
20 | }
|
21 |
|
22 | export interface LinkAfterHeaderPermalinkOptions extends PermalinkOptions {
|
23 | style?: 'visually-hidden' | 'aria-label' | 'aria-describedby' | 'aria-labelledby',
|
24 | assistiveText?: (title: string) => string,
|
25 | visuallyHiddenClass?: string,
|
26 | space?: boolean | string,
|
27 | placement?: 'before' | 'after'
|
28 | wrapper?: [string, string] | null
|
29 | }
|
30 |
|
31 | export interface LinkInsideHeaderPermalinkOptions extends PermalinkOptions {
|
32 | space?: boolean | string,
|
33 | placement?: 'before' | 'after',
|
34 | ariaHidden?: boolean
|
35 | }
|
36 |
|
37 | export interface AriaHiddenPermalinkOptions extends PermalinkOptions {
|
38 | space?: boolean | string,
|
39 | placement?: 'before' | 'after'
|
40 | }
|
41 |
|
42 | export type PermalinkGenerator = (slug: string, opts: PermalinkOptions, state: State, index: number) => void;
|
43 |
|
44 | export interface AnchorInfo {
|
45 | slug: string;
|
46 | title: string;
|
47 | }
|
48 |
|
49 | export interface AnchorOptions {
|
50 | level?: number | number[];
|
51 |
|
52 | slugify?(str: string): string;
|
53 | slugifyWithState?(str: string, state: State): string;
|
54 | getTokensText?(tokens: Token[]): string;
|
55 |
|
56 | uniqueSlugStartIndex?: number;
|
57 | permalink?: PermalinkGenerator;
|
58 |
|
59 | callback?(token: Token, anchor_info: AnchorInfo): void;
|
60 |
|
61 | tabIndex?: number | false;
|
62 | }
|
63 |
|
64 | export const permalink: {
|
65 | headerLink: (opts?: HeaderLinkPermalinkOptions) => PermalinkGenerator
|
66 | linkAfterHeader: (opts?: LinkAfterHeaderPermalinkOptions) => PermalinkGenerator
|
67 | linkInsideHeader: (opts?: LinkInsideHeaderPermalinkOptions) => PermalinkGenerator
|
68 | ariaHidden: (opts?: AriaHiddenPermalinkOptions) => PermalinkGenerator
|
69 | };
|
70 | }
|
71 |
|
72 | declare function anchor(md: MarkdownIt, opts?: anchor.AnchorOptions): void;
|
73 |
|
74 | export default anchor;
|