@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
54 lines (53 loc) • 2.06 kB
TypeScript
import { Item } from '@pkg/md/parser/item';
import { MarkdownRenderer, Shortcode } from "@internal/domain/markdown";
import { MediaType } from '@pkg/media/type';
export interface ContentReplacement {
val: Uint8Array;
source: Item;
}
export type ContentItem = Item | Shortcode | ContentReplacement;
export declare const INTERNAL_SUMMARY_DIVIDER_BASE = "HUGOMORE42";
export declare const INTERNAL_SUMMARY_DIVIDER_PRE: NodeJS.NonSharedUint8Array;
export declare class Content {
private hasSummaryDivider;
private summaryTruncated;
private rawSource;
private items;
private renderer;
constructor(source: Uint8Array, renderer: MarkdownRenderer);
isEmpty(): boolean;
setSummaryDivider(): void;
getHasSummaryDivider(): boolean;
setSummaryTruncated(): void;
getTruncated(): boolean;
addReplacement(val: Uint8Array, source: Item): void;
addShortcode(shortcode: Shortcode): void;
addItem(item: Item): void;
addItems(...items: Item[]): void;
rawContent(): string;
pureContent(): string;
pureContentWithoutPlaceholder(): string;
renderedContent(shortcodeRenderer?: (shortcode: Shortcode) => string): string;
renderedContentAsync(shortcodeRenderer?: (shortcode: Shortcode) => Promise<string> | string): Promise<string>;
getItems(): ContentItem[];
getShortcodes(): Shortcode[];
getTextItems(): Item[];
getReplacements(): ContentReplacement[];
extractSummary(input: Uint8Array, mediaType: MediaType): {
summary: string;
truncated: boolean;
};
private extractSummaryFromHTML;
private containsCJK;
private isProbablyHTMLToken;
private stripHTML;
private trimShortHTML;
cleanDividerPlaceholders(htmlContent: string): string;
getDividedSummary(htmlContent: string): string;
getRenderedSummary(htmlContent?: string, maxLength?: number): Promise<string>;
getWordCount(): number;
getReadingTime(wordsPerMinute?: number): number;
private isItem;
private isShortcode;
private isContentReplacement;
}