mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-30 00:04: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.Static(),
|
||||||
Plugin.NotFoundPage(),
|
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 { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { Root } from "mdast"
|
import { Root } from "mdast"
|
||||||
@ -12,7 +12,7 @@ const defaultOptions: Options = {
|
|||||||
enabled: true,
|
enabled: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CustomDefault: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
export const CustomDefault: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "CustomDefault",
|
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 { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { SKIP } from "unist-util-visit"
|
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)
|
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 }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianArrow",
|
name: "ObsidianArrow",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { QuartzParserPlugin } from "../../types"
|
import { QuartzParser } from "../../types"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { Root, BlockContent, DefinitionContent, Paragraph, Html } from "mdast"
|
import { Root, BlockContent, DefinitionContent, Paragraph, Html } from "mdast"
|
||||||
import { visit } from "unist-util-visit"
|
import { visit } from "unist-util-visit"
|
||||||
@ -63,7 +63,7 @@ const mdastToHtml = (ast: PhrasingContent | Paragraph) => {
|
|||||||
return toHtml(hast, { allowDangerousHtml: true })
|
return toHtml(hast, { allowDangerousHtml: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ObsidianCallouts: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
export const ObsidianCallouts: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianCallouts",
|
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"
|
import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import checkboxScript from "../../../components/scripts/checkbox.inline.ts"
|
import checkboxScript from "../../../components/scripts/checkbox.inline.ts"
|
||||||
@ -16,7 +16,7 @@ const defaultOptions: Options = {
|
|||||||
enabled: true,
|
enabled: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ObsidianCheckboxes: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
export const ObsidianCheckboxes: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianCheckboxes",
|
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 { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { Root } from "mdast"
|
import { Root } from "mdast"
|
||||||
@ -14,7 +14,7 @@ const defaultOptions: Options = {
|
|||||||
|
|
||||||
const commentRegex = new RegExp(/%%[\s\S]*?%%/g)
|
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 }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianComments",
|
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 { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { Root } from "mdast"
|
import { Root } from "mdast"
|
||||||
@ -14,7 +14,7 @@ const defaultOptions: Options = {
|
|||||||
|
|
||||||
const highlightRegex = new RegExp(/==([^=]+)==/g)
|
const highlightRegex = new RegExp(/==([^=]+)==/g)
|
||||||
|
|
||||||
export const ObsidianHighlights: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
export const ObsidianHighlights: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianHighlights",
|
name: "ObsidianHighlights",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { QuartzParserPlugin } from "../../types"
|
import { QuartzParser } from "../../types"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
import { visit } from "unist-util-visit"
|
import { visit } from "unist-util-visit"
|
||||||
import { Root, Code } from "mdast"
|
import { Root, Code } from "mdast"
|
||||||
@ -12,7 +12,7 @@ const defaultOptions: Options = {
|
|||||||
enabled: true,
|
enabled: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ObsidianMermaid: QuartzParserPlugin<Partial<Options>> = (userOpts) => {
|
export const ObsidianMermaid: QuartzParser<Partial<Options>> = (userOpts) => {
|
||||||
const opts: Options = { ...defaultOptions, ...userOpts }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianMermaid",
|
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 { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
|
||||||
import { FilePath, splitAnchor, slugifyFilePath } from "../../../util/path"
|
import { FilePath, splitAnchor, slugifyFilePath } from "../../../util/path"
|
||||||
import { JSResource } from "../../../util/resources"
|
import { JSResource } from "../../../util/resources"
|
||||||
@ -36,7 +36,7 @@ const wikilinkImageEmbedRegex = new RegExp(
|
|||||||
/^(?<alt>(?!^\d*x?\d*$).*?)?(\|?\s*?(?<width>\d+)(x(?<height>\d+))?)?$/,
|
/^(?<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 }
|
const opts: Options = { ...defaultOptions, ...userOpts }
|
||||||
return {
|
return {
|
||||||
name: "ObsidianWikilinks",
|
name: "ObsidianWikilinks",
|
||||||
|
|||||||
@ -10,7 +10,10 @@ export interface PluginTypes {
|
|||||||
transformers: QuartzTransformerPluginInstance[]
|
transformers: QuartzTransformerPluginInstance[]
|
||||||
filters: QuartzFilterPluginInstance[]
|
filters: QuartzFilterPluginInstance[]
|
||||||
emitters: QuartzEmitterPluginInstance[]
|
emitters: QuartzEmitterPluginInstance[]
|
||||||
parsers: QuartzParserPluginInstance[]
|
}
|
||||||
|
|
||||||
|
export interface ParserTypes {
|
||||||
|
parsers: QuartzParserInstance[]
|
||||||
}
|
}
|
||||||
|
|
||||||
type OptionType = object | undefined
|
type OptionType = object | undefined
|
||||||
@ -47,10 +50,10 @@ export type QuartzEmitterPluginInstance = {
|
|||||||
): Promise<DepGraph<FilePath>>
|
): Promise<DepGraph<FilePath>>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type QuartzParserPlugin<Options extends OptionType = undefined> = (
|
export type QuartzParser<Options extends OptionType = undefined> = (
|
||||||
opts?: Options,
|
opts?: Options,
|
||||||
) => QuartzParserPluginInstance
|
) => QuartzParserInstance
|
||||||
export type QuartzParserPluginInstance = {
|
export type QuartzParserInstance = {
|
||||||
name: string
|
name: string
|
||||||
textTransform: (ctx: BuildCtx, src: string | Buffer) => string | Buffer
|
textTransform: (ctx: BuildCtx, src: string | Buffer) => string | Buffer
|
||||||
markdownPlugins: (ctx: BuildCtx) => Pluggable
|
markdownPlugins: (ctx: BuildCtx) => Pluggable
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user