@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
82 lines • 2.21 kB
TypeScript
import { TocFragments, Header, Link, Paragraph } from '../type';
/**
* Fragment represents a single TOC entry
*/
export interface Fragment {
id: string;
text: string;
level: number;
children?: Fragment[];
}
/**
* TableOfContentsImpl implements TocFragments
*/
export declare class TableOfContentsImpl implements TocFragments {
private fragments;
constructor(fragments?: Fragment[]);
toHTML(startLevel: number, stopLevel: number, ordered: boolean): string;
private filterByLevel;
private renderFragments;
private escapeHTML;
addFragment(fragment: Fragment): void;
getFragments(): Fragment[];
}
/**
* HeaderImpl implements Header interface
*/
export declare class HeaderImpl implements Header {
private _name;
private _level;
private _links;
private _paragraphs;
private _listParagraphs;
constructor(_name: string, _level: number, _links?: Link[], _paragraphs?: Paragraph[], _listParagraphs?: Paragraph[]);
name(): string;
level(): number;
links(): Link[];
paragraphs(): Paragraph[];
listParagraphs(): Paragraph[];
addLink(link: Link): void;
addParagraph(paragraph: Paragraph): void;
addListParagraph(paragraph: Paragraph): void;
}
/**
* LinkImpl implements Link interface
*/
export declare class LinkImpl implements Link {
private _text;
private _url;
constructor(_text: string, _url: string);
text(): string;
url(): string;
}
/**
* ParagraphImpl implements Paragraph interface
*/
export declare class ParagraphImpl implements Paragraph {
private _text;
constructor(_text: string);
text(): string;
}
/**
* TOC Builder utility class
*/
export declare class TOCBuilder {
private fragments;
private stack;
addHeading(text: string, level: number, id: string): void;
build(): TableOfContentsImpl;
reset(): void;
}
/**
* Auto ID generation utilities
*/
export declare class AutoIDGenerator {
private usedIds;
generateID(text: string, type?: 'github' | 'github-ascii' | 'blackfriday'): string;
private githubStyle;
private githubAsciiStyle;
private blackfridayStyle;
reset(): void;
}
//# sourceMappingURL=tableofcontents.d.ts.map