mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-28 15:24:06 -06:00
Separated Parsers and Plugins
This commit is contained in:
parent
e7965b1467
commit
dfd6abe6a6
@ -87,7 +87,6 @@ const config: QuartzConfig = {
|
||||
Plugin.Static(),
|
||||
Plugin.NotFoundPage(),
|
||||
],
|
||||
parsers: [],
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const CustomDefault: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "CustomDefault",
|
||||
|
||||
@ -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<string, string> = {
|
||||
|
||||
const arrowRegex = new RegExp(/(-{1,2}>|={1,2}>|<-{1,2}|<={1,2})/g)
|
||||
|
||||
export const ObsidianArrow: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianArrow: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianArrow",
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianCallouts: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianCallouts",
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianCheckboxes: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianCheckboxes",
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianComments: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianComments",
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianHighlights: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianHighlights",
|
||||
|
||||
@ -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<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianMermaid: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianMermaid",
|
||||
|
||||
@ -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(
|
||||
/^(?<alt>(?!^\d*x?\d*$).*?)?(\|?\s*?(?<width>\d+)(x(?<height>\d+))?)?$/,
|
||||
)
|
||||
|
||||
export const ObsidianWikilinks: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
||||
export const ObsidianWikilinks: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||
return {
|
||||
name: "ObsidianWikilinks",
|
||||
|
||||
@ -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<DepGraph<FilePath>>
|
||||
}
|
||||
|
||||
export type QuartzParserPlugin<Options extends OptionType = undefined> = (
|
||||
export type QuartzParser<Options extends OptionType = undefined> = (
|
||||
opts?: Options,
|
||||
) => QuartzParserPluginInstance
|
||||
export type QuartzParserPluginInstance = {
|
||||
) => QuartzParserInstance
|
||||
export type QuartzParserInstance = {
|
||||
name: string
|
||||
textTransform: (ctx: BuildCtx, src: string | Buffer) => string | Buffer
|
||||
markdownPlugins: (ctx: BuildCtx) => Pluggable
|
||||
|
||||
Loading…
Reference in New Issue
Block a user