/* 文件:markdown/extension.ts — Markdown 扩展注册点,组合各语法模块。 */ import { NMPSettings } from "src/settings"; import { Marked, MarkedExtension } from "marked"; import { App, Vault } from "obsidian"; import AssetsManager from "../assets"; export interface MDRendererCallback { settings: NMPSettings; updateElementByID(id:string, html:string):void; // 改为异步渲染后已废弃 cacheElement(category: string, id: string, data: string): void; } export abstract class Extension { app: App; vault: Vault; assetsManager: AssetsManager settings: NMPSettings; callback: MDRendererCallback; marked: Marked; constructor(app: App, settings: NMPSettings, assetsManager: AssetsManager, callback: MDRendererCallback) { this.app = app; this.vault = app.vault; this.settings = settings; this.assetsManager = assetsManager; this.callback = callback; } async prepare() { return; } async postprocess(html:string) { return html; } async beforePublish() { } async cleanup() { return; } abstract markedExtension(): MarkedExtension }