diff --git a/quartz.config.ts b/quartz.config.ts index 0eeca63ab..b6abbb2d3 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -87,7 +87,6 @@ const config: QuartzConfig = { Plugin.Static(), Plugin.NotFoundPage(), ], - parsers: [], }, } diff --git a/quartz/plugins/parsers/custom/default.ts b/quartz/plugins/parsers/custom/default.ts index ab3581480..c7e2adfb0 100644 --- a/quartz/plugins/parsers/custom/default.ts +++ b/quartz/plugins/parsers/custom/default.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { JSResource } from "../../../util/resources" import { Root } from "mdast" @@ -12,7 +12,7 @@ const defaultOptions: Options = { enabled: true, } -export const CustomDefault: QuartzParserPlugin> = (userOpts) => { +export const CustomDefault: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "CustomDefault", diff --git a/quartz/plugins/parsers/obsidian/arrows.ts b/quartz/plugins/parsers/obsidian/arrows.ts index c0687571f..3bd12d74b 100644 --- a/quartz/plugins/parsers/obsidian/arrows.ts +++ b/quartz/plugins/parsers/obsidian/arrows.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { JSResource } from "../../../util/resources" import { SKIP } from "unist-util-visit" @@ -26,7 +26,7 @@ const arrowMapping: Record = { const arrowRegex = new RegExp(/(-{1,2}>|={1,2}>|<-{1,2}|<={1,2})/g) -export const ObsidianArrow: QuartzParserPlugin> = (userOpts) => { +export const ObsidianArrow: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianArrow", diff --git a/quartz/plugins/parsers/obsidian/callouts.ts b/quartz/plugins/parsers/obsidian/callouts.ts index e3898270b..41a45ed99 100644 --- a/quartz/plugins/parsers/obsidian/callouts.ts +++ b/quartz/plugins/parsers/obsidian/callouts.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { JSResource } from "../../../util/resources" import { Root, BlockContent, DefinitionContent, Paragraph, Html } from "mdast" import { visit } from "unist-util-visit" @@ -63,7 +63,7 @@ const mdastToHtml = (ast: PhrasingContent | Paragraph) => { return toHtml(hast, { allowDangerousHtml: true }) } -export const ObsidianCallouts: QuartzParserPlugin> = (userOpts) => { +export const ObsidianCallouts: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianCallouts", diff --git a/quartz/plugins/parsers/obsidian/checkboxes.ts b/quartz/plugins/parsers/obsidian/checkboxes.ts index e184f527a..3dcb4d3fa 100644 --- a/quartz/plugins/parsers/obsidian/checkboxes.ts +++ b/quartz/plugins/parsers/obsidian/checkboxes.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" // @ts-ignore import checkboxScript from "../../../components/scripts/checkbox.inline.ts" @@ -16,7 +16,7 @@ const defaultOptions: Options = { enabled: true, } -export const ObsidianCheckboxes: QuartzParserPlugin> = (userOpts) => { +export const ObsidianCheckboxes: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianCheckboxes", diff --git a/quartz/plugins/parsers/obsidian/comments.ts b/quartz/plugins/parsers/obsidian/comments.ts index 902874b71..580eeed9e 100644 --- a/quartz/plugins/parsers/obsidian/comments.ts +++ b/quartz/plugins/parsers/obsidian/comments.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { JSResource } from "../../../util/resources" import { Root } from "mdast" @@ -14,7 +14,7 @@ const defaultOptions: Options = { const commentRegex = new RegExp(/%%[\s\S]*?%%/g) -export const ObsidianComments: QuartzParserPlugin> = (userOpts) => { +export const ObsidianComments: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianComments", diff --git a/quartz/plugins/parsers/obsidian/highlights.ts b/quartz/plugins/parsers/obsidian/highlights.ts index 6a1fd8a7b..09abe4fec 100644 --- a/quartz/plugins/parsers/obsidian/highlights.ts +++ b/quartz/plugins/parsers/obsidian/highlights.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { JSResource } from "../../../util/resources" import { Root } from "mdast" @@ -14,7 +14,7 @@ const defaultOptions: Options = { const highlightRegex = new RegExp(/==([^=]+)==/g) -export const ObsidianHighlights: QuartzParserPlugin> = (userOpts) => { +export const ObsidianHighlights: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianHighlights", diff --git a/quartz/plugins/parsers/obsidian/mermaid.ts b/quartz/plugins/parsers/obsidian/mermaid.ts index 343c962c2..c868b8b7b 100644 --- a/quartz/plugins/parsers/obsidian/mermaid.ts +++ b/quartz/plugins/parsers/obsidian/mermaid.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { JSResource } from "../../../util/resources" import { visit } from "unist-util-visit" import { Root, Code } from "mdast" @@ -12,7 +12,7 @@ const defaultOptions: Options = { enabled: true, } -export const ObsidianMermaid: QuartzParserPlugin> = (userOpts) => { +export const ObsidianMermaid: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianMermaid", diff --git a/quartz/plugins/parsers/obsidian/wikilinks.ts b/quartz/plugins/parsers/obsidian/wikilinks.ts index dd2ab7b48..51eb53574 100644 --- a/quartz/plugins/parsers/obsidian/wikilinks.ts +++ b/quartz/plugins/parsers/obsidian/wikilinks.ts @@ -1,4 +1,4 @@ -import { QuartzParserPlugin } from "../../types" +import { QuartzParser } from "../../types" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { FilePath, splitAnchor, slugifyFilePath } from "../../../util/path" import { JSResource } from "../../../util/resources" @@ -36,7 +36,7 @@ const wikilinkImageEmbedRegex = new RegExp( /^(?(?!^\d*x?\d*$).*?)?(\|?\s*?(?\d+)(x(?\d+))?)?$/, ) -export const ObsidianWikilinks: QuartzParserPlugin> = (userOpts) => { +export const ObsidianWikilinks: QuartzParser> = (userOpts) => { const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianWikilinks", diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index c3e56c5dd..4eb268939 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -10,7 +10,10 @@ export interface PluginTypes { transformers: QuartzTransformerPluginInstance[] filters: QuartzFilterPluginInstance[] emitters: QuartzEmitterPluginInstance[] - parsers: QuartzParserPluginInstance[] +} + +export interface ParserTypes { + parsers: QuartzParserInstance[] } type OptionType = object | undefined @@ -47,10 +50,10 @@ export type QuartzEmitterPluginInstance = { ): Promise> } -export type QuartzParserPlugin = ( +export type QuartzParser = ( opts?: Options, -) => QuartzParserPluginInstance -export type QuartzParserPluginInstance = { +) => QuartzParserInstance +export type QuartzParserInstance = { name: string textTransform: (ctx: BuildCtx, src: string | Buffer) => string | Buffer markdownPlugins: (ctx: BuildCtx) => Pluggable