@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
50 lines (49 loc) • 2.65 kB
TypeScript
import { Template } from '@mdfriday/text-template';
import { TemplateEngine as ITemplateEngine, TemplateFs, TemplateError } from '../type';
import { Executor } from './executor';
import { Parser } from './parser';
import { Lookup } from './lookup';
import { RegularTemplateNamespace, PartialTemplateNamespace, ShortcodeTemplateNamespace } from '../vo/namespace';
export declare class TemplateEngine implements ITemplateEngine {
private executor;
private lookup;
private parser;
private templateNamespace;
private partialNamespace;
private shortcodeNamespace;
private fs;
constructor(executor: Executor, lookup: Lookup, parser: Parser, templateNamespace: RegularTemplateNamespace, partialNamespace: PartialTemplateNamespace, shortcodeNamespace: ShortcodeTemplateNamespace, fs: TemplateFs);
markReady(): Promise<void>;
getTemplate(name: string): Promise<[Template | null, boolean, Error | null]>;
getPartial(name: string): Promise<[Template | null, boolean, Error | null]>;
getShortcode(name: string): Promise<[Template | null, boolean, Error | null]>;
get(name: string): Promise<[Template | null, boolean, Error | null]>;
findFirst(names: string[]): Promise<[Template | null, string | null, boolean, Error | null]>;
hasShortcode(name: string): boolean;
getShortcodeNames(): string[];
getShortcodeCount(): number;
loadTemplates(): Promise<void>;
private addTemplateFileInfo;
private addTemplate;
execute(templateName: string, data: any): Promise<string>;
executeRaw(templateName: string, rawContent: string, data: any): Promise<string>;
executeShortcode(shortcodeName: string, data: any): Promise<string>;
executeSafely(templateName: string, data: any): Promise<{
result: string | null;
error: TemplateError | null;
}>;
executeShortcodeSafely(shortcodeName: string, data: any): Promise<{
result: string | null;
error: TemplateError | null;
}>;
hasTemplate(name: string): Promise<boolean>;
getTemplateNames(): string[];
getPartialTemplateNames(): string[];
getAllTemplateNames(): string[];
getPartialNamespace(): PartialTemplateNamespace;
getShortcodeNamespace(): ShortcodeTemplateNamespace;
getTemplateNamespace(): RegularTemplateNamespace;
clear(): void;
getTemplatesByPattern(pattern: RegExp): string[];
}
export declare function newTemplateEngine(executor: Executor, lookup: Lookup, parser: Parser, templateNamespace: RegularTemplateNamespace, partialNamespace: PartialTemplateNamespace, shortcodeNamespace: ShortcodeTemplateNamespace, fs: TemplateFs): TemplateEngine;