diff --git a/docs/advanced/making plugins.md b/docs/advanced/making plugins.md index 015e1953a..3042737a2 100644 --- a/docs/advanced/making plugins.md +++ b/docs/advanced/making plugins.md @@ -37,7 +37,7 @@ Transformers **map** over content, taking a Markdown file and outputting modifie ```ts export type QuartzTransformerPluginInstance = { name: string - textTransform?: (ctx: BuildCtx, src: string | Buffer) => string | Buffer + textTransform?: (ctx: BuildCtx, src: string) => string markdownPlugins?: (ctx: BuildCtx) => PluggableList htmlPlugins?: (ctx: BuildCtx) => PluggableList externalResources?: (ctx: BuildCtx) => Partial diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index b0b0a42ef..a39a4db0e 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -156,20 +156,12 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> textTransform(_ctx, src) { // do comments at text level if (opts.comments) { - if (src instanceof Buffer) { - src = src.toString() - } - - src = (src as string).replace(commentRegex, "") + src = src.replace(commentRegex, "") } // pre-transform blockquotes if (opts.callouts) { - if (src instanceof Buffer) { - src = src.toString() - } - - src = (src as string).replace(calloutLineRegex, (value) => { + src = src.replace(calloutLineRegex, (value) => { // force newline after title of callout return value + "\n> " }) @@ -177,12 +169,8 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> // pre-transform wikilinks (fix anchors to things that may contain illegal syntax e.g. codeblocks, latex) if (opts.wikilinks) { - if (src instanceof Buffer) { - src = src.toString() - } - // replace all wikilinks inside a table first - src = (src as string).replace(tableRegex, (value) => { + src = src.replace(tableRegex, (value) => { // escape all aliases and headers in wikilinks inside a table return value.replace(tableWikilinkRegex, (_value, raw) => { // const [raw]: (string | undefined)[] = capture @@ -196,7 +184,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> }) // replace all other wikilinks - src = (src as string).replace(wikilinkRegex, (value, ...capture) => { + src = src.replace(wikilinkRegex, (value, ...capture) => { const [rawFp, rawHeader, rawAlias]: (string | undefined)[] = capture const [fp, anchor] = splitAnchor(`${rawFp ?? ""}${rawHeader ?? ""}`) diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index a23f5d6f4..667799f4b 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -18,7 +18,7 @@ export type QuartzTransformerPlugin = ( ) => QuartzTransformerPluginInstance export type QuartzTransformerPluginInstance = { name: string - textTransform?: (ctx: BuildCtx, src: string | Buffer) => string | Buffer + textTransform?: (ctx: BuildCtx, src: string) => string markdownPlugins?: (ctx: BuildCtx) => PluggableList htmlPlugins?: (ctx: BuildCtx) => PluggableList externalResources?: (ctx: BuildCtx) => Partial diff --git a/quartz/processors/parse.ts b/quartz/processors/parse.ts index 15e559dc7..479313f49 100644 --- a/quartz/processors/parse.ts +++ b/quartz/processors/parse.ts @@ -95,7 +95,7 @@ export function createFileParser(ctx: BuildCtx, fps: FilePath[]) { // Text -> Text transforms for (const plugin of cfg.plugins.transformers.filter((p) => p.textTransform)) { - file.value = plugin.textTransform!(ctx, Buffer.from(file.value as Uint8Array)) + file.value = plugin.textTransform!(ctx, file.value.toString()) } // base data properties that plugins may use