@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
63 lines • 1.89 kB
TypeScript
import { Template } from '@mdfriday/text-template';
import { TemplateParser, TemplateState, TemplateInfo, TemplateLookupFunc, TemplateFuncMap } from '../type';
/**
* Parser entity for parsing templates
* TypeScript version of Go's Parser struct
*/
export declare class Parser implements TemplateParser {
private prototypeText;
private prototypeTextClone?;
private readyInit;
private funcMap;
private parseOverlapCache;
constructor(funcMap?: TemplateFuncMap);
/**
* Mark parser as ready and create clone
*/
markReady(): Promise<void>;
/**
* Parse template info into template state
*/
parse(info: TemplateInfo): Promise<TemplateState>;
/**
* Parse template with lock (for thread safety)
*/
parseWithLock(name: string, tpl: string): Promise<Template>;
/**
* Parse template with overlay and base template
*/
parseOverlap(overlay: TemplateInfo, base: TemplateInfo, lookup: TemplateLookupFunc): Promise<[TemplateState | null, boolean, Error | null]>;
/**
* Apply base template to overlay
*/
private applyBaseTemplate;
/**
* Get template dependencies using syntax tree traversal (与Go版本一致的遍历方法)
*/
private getDependencies;
/**
* Set function map
*/
setFuncMap(funcMap: TemplateFuncMap): void;
/**
* Get function map
*/
getFuncMap(): TemplateFuncMap;
/**
* Parse multiple templates
*/
parseMultiple(templates: TemplateInfo[]): Promise<TemplateState[]>;
/**
* Clear the parse overlap cache
*/
clearCache(): void;
/**
* Get cache statistics
*/
getCacheStats(): import("../../../../pkg/cahce/cache").CacheStats;
}
/**
* Create a new Parser instance
*/
export declare function newParser(funcMap?: TemplateFuncMap): Parser;
//# sourceMappingURL=parser.d.ts.map