mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
Add parser presets.
This commit is contained in:
parent
58667195c1
commit
cb8238d92b
@ -4,6 +4,7 @@ import * as Text from "./quartz/plugins/transformers/text"
|
||||
import * as Markdown from "./quartz/plugins/transformers/markdown"
|
||||
import * as Html from "./quartz/plugins/transformers/html"
|
||||
import * as Resources from "./quartz/plugins/transformers/resources"
|
||||
import * as Presets from "./quartz/plugins/transformers/presets"
|
||||
|
||||
/**
|
||||
* Quartz 4.0 Configuration
|
||||
@ -58,51 +59,7 @@ const config: QuartzConfig = {
|
||||
},
|
||||
},
|
||||
plugins: {
|
||||
transformers: {
|
||||
textTransformers: [
|
||||
Text.ObsidianFlavoredMarkdownComments(),
|
||||
Text.ObsidianFlavoredMarkdownCallouts(),
|
||||
Text.ObsidianFlavoredMarkdownWikilinks(),
|
||||
],
|
||||
markdownTransformers: [
|
||||
Markdown.FrontMatter(),
|
||||
Markdown.CreatedModifiedDate({
|
||||
priority: ["frontmatter", "filesystem"],
|
||||
}),
|
||||
Markdown.ObsidianFlavoredMarkdownWikilinks(),
|
||||
Markdown.ObsidianFlavoredMarkdownHighlight(),
|
||||
Markdown.ObsidianFlavoredMarkdownArrow(),
|
||||
Markdown.ObsidianFlavoredMarkdownTags(),
|
||||
Markdown.ObsidianFlavoredMarkdownVideoEmbed(),
|
||||
Markdown.ObsidianFlavoredMarkdownCallouts(),
|
||||
Markdown.ObsidianFlavoredMarkdownMermaid(),
|
||||
Markdown.GitHubFlavoredMarkdownRemark(),
|
||||
Markdown.TableOfContents(),
|
||||
Markdown.Latex(),
|
||||
],
|
||||
htmlTransformers: [
|
||||
Html.SyntaxHighlighting({
|
||||
theme: {
|
||||
light: "github-light",
|
||||
dark: "github-dark",
|
||||
},
|
||||
keepBackground: false,
|
||||
}),
|
||||
Html.ObsidianFlavoredMarkdownBlockReferences(),
|
||||
Html.ObsidianFlavoredMarkdownYouTubeEmbed(),
|
||||
Html.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Html.GitHubFlavoredMarkdownLinkHeadings(),
|
||||
Html.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||
Html.Description(),
|
||||
Html.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
externalResources: [
|
||||
Resources.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Resources.ObsidianFlavoredMarkdownCallouts(),
|
||||
Resources.ObsidianFlavoredMarkdownMermaid(),
|
||||
Resources.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
},
|
||||
transformers: Presets.DefaultPreset(),
|
||||
filters: [Plugin.RemoveDrafts()],
|
||||
emitters: [
|
||||
Plugin.AliasRedirects(),
|
||||
|
||||
55
quartz/plugins/transformers/presets/commonmark.ts
Normal file
55
quartz/plugins/transformers/presets/commonmark.ts
Normal file
@ -0,0 +1,55 @@
|
||||
import { QuartzTransformerPlugin } from "../../types"
|
||||
import * as Text from "../text"
|
||||
import * as Markdown from "../markdown"
|
||||
import * as Html from "../html"
|
||||
import * as Resources from "../resources"
|
||||
|
||||
// TODO: commonmark compatibility pass
|
||||
export const CommonMarkPreset: QuartzTransformerPlugin = () => {
|
||||
return {
|
||||
textTransformers: [
|
||||
Text.ObsidianFlavoredMarkdownComments(),
|
||||
Text.ObsidianFlavoredMarkdownCallouts(),
|
||||
Text.ObsidianFlavoredMarkdownWikilinks(),
|
||||
],
|
||||
markdownTransformers: [
|
||||
Markdown.FrontMatter(),
|
||||
Markdown.CreatedModifiedDate({
|
||||
priority: ["frontmatter", "filesystem"],
|
||||
}),
|
||||
// TODO: regular markdown links
|
||||
//Markdown.ObsidianFlavoredMarkdownWikilinks(),
|
||||
Markdown.ObsidianFlavoredMarkdownHighlight(),
|
||||
Markdown.ObsidianFlavoredMarkdownArrow(),
|
||||
Markdown.ObsidianFlavoredMarkdownTags(),
|
||||
Markdown.ObsidianFlavoredMarkdownVideoEmbed(),
|
||||
Markdown.ObsidianFlavoredMarkdownCallouts(),
|
||||
Markdown.ObsidianFlavoredMarkdownMermaid(),
|
||||
Markdown.GitHubFlavoredMarkdownRemark(),
|
||||
Markdown.TableOfContents(),
|
||||
Markdown.Latex(),
|
||||
],
|
||||
htmlTransformers: [
|
||||
Html.SyntaxHighlighting({
|
||||
theme: {
|
||||
light: "github-light",
|
||||
dark: "github-dark",
|
||||
},
|
||||
keepBackground: false,
|
||||
}),
|
||||
Html.ObsidianFlavoredMarkdownBlockReferences(),
|
||||
Html.ObsidianFlavoredMarkdownYouTubeEmbed(),
|
||||
Html.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Html.GitHubFlavoredMarkdownLinkHeadings(),
|
||||
Html.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||
Html.Description(),
|
||||
Html.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
externalResources: [
|
||||
Resources.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Resources.ObsidianFlavoredMarkdownCallouts(),
|
||||
Resources.ObsidianFlavoredMarkdownMermaid(),
|
||||
Resources.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
}
|
||||
}
|
||||
55
quartz/plugins/transformers/presets/default.ts
Normal file
55
quartz/plugins/transformers/presets/default.ts
Normal file
@ -0,0 +1,55 @@
|
||||
import { QuartzTransformerPlugin } from "../../types"
|
||||
import * as Text from "../text"
|
||||
import * as Markdown from "../markdown"
|
||||
import * as Html from "../html"
|
||||
import * as Resources from "../resources"
|
||||
|
||||
export const DefaultPreset: QuartzTransformerPlugin = () => {
|
||||
return {
|
||||
textTransformers: [
|
||||
Text.ObsidianFlavoredMarkdownComments(),
|
||||
Text.ObsidianFlavoredMarkdownCallouts(),
|
||||
Text.ObsidianFlavoredMarkdownWikilinks(),
|
||||
],
|
||||
markdownTransformers: [
|
||||
Markdown.FrontMatter(),
|
||||
Markdown.CreatedModifiedDate({
|
||||
priority: ["frontmatter", "filesystem"],
|
||||
}),
|
||||
// TODO: wikilink fixes
|
||||
Markdown.ObsidianFlavoredMarkdownWikilinks(),
|
||||
Markdown.ObsidianFlavoredMarkdownHighlight(),
|
||||
Markdown.ObsidianFlavoredMarkdownArrow(),
|
||||
Markdown.ObsidianFlavoredMarkdownTags(),
|
||||
Markdown.ObsidianFlavoredMarkdownVideoEmbed(),
|
||||
// TODO: callout fixes
|
||||
Markdown.ObsidianFlavoredMarkdownCallouts(),
|
||||
Markdown.ObsidianFlavoredMarkdownMermaid(),
|
||||
Markdown.GitHubFlavoredMarkdownRemark(),
|
||||
Markdown.TableOfContents(),
|
||||
Markdown.Latex(),
|
||||
],
|
||||
htmlTransformers: [
|
||||
Html.SyntaxHighlighting({
|
||||
theme: {
|
||||
light: "github-light",
|
||||
dark: "github-dark",
|
||||
},
|
||||
keepBackground: false,
|
||||
}),
|
||||
Html.ObsidianFlavoredMarkdownBlockReferences(),
|
||||
Html.ObsidianFlavoredMarkdownYouTubeEmbed(),
|
||||
Html.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Html.GitHubFlavoredMarkdownLinkHeadings(),
|
||||
Html.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||
Html.Description(),
|
||||
Html.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
externalResources: [
|
||||
Resources.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Resources.ObsidianFlavoredMarkdownCallouts(),
|
||||
Resources.ObsidianFlavoredMarkdownMermaid(),
|
||||
Resources.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
}
|
||||
}
|
||||
3
quartz/plugins/transformers/presets/index.ts
Normal file
3
quartz/plugins/transformers/presets/index.ts
Normal file
@ -0,0 +1,3 @@
|
||||
export { CommonMarkPreset } from "./commonmark"
|
||||
export { DefaultPreset } from "./default"
|
||||
export { ObsidianPreset } from "./obsidian"
|
||||
51
quartz/plugins/transformers/presets/obsidian.ts
Normal file
51
quartz/plugins/transformers/presets/obsidian.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import { QuartzTransformerPlugin } from "../../types"
|
||||
import * as Text from "../text"
|
||||
import * as Markdown from "../markdown"
|
||||
import * as Html from "../html"
|
||||
import * as Resources from "../resources"
|
||||
|
||||
export const ObsidianPreset: QuartzTransformerPlugin = () => {
|
||||
return {
|
||||
textTransformers: [
|
||||
Text.ObsidianFlavoredMarkdownComments(),
|
||||
Text.ObsidianFlavoredMarkdownCallouts(),
|
||||
Text.ObsidianFlavoredMarkdownWikilinks(),
|
||||
],
|
||||
markdownTransformers: [
|
||||
Markdown.FrontMatter(),
|
||||
Markdown.CreatedModifiedDate({
|
||||
priority: ["frontmatter", "filesystem"],
|
||||
}),
|
||||
Markdown.ObsidianFlavoredMarkdownWikilinks(),
|
||||
Markdown.ObsidianFlavoredMarkdownHighlight(),
|
||||
Markdown.ObsidianFlavoredMarkdownArrow(),
|
||||
Markdown.ObsidianFlavoredMarkdownTags(),
|
||||
Markdown.ObsidianFlavoredMarkdownVideoEmbed(),
|
||||
Markdown.ObsidianFlavoredMarkdownCallouts(),
|
||||
Markdown.ObsidianFlavoredMarkdownMermaid(),
|
||||
Markdown.TableOfContents(),
|
||||
Markdown.Latex(),
|
||||
],
|
||||
htmlTransformers: [
|
||||
Html.SyntaxHighlighting({
|
||||
theme: {
|
||||
light: "github-light",
|
||||
dark: "github-dark",
|
||||
},
|
||||
keepBackground: false,
|
||||
}),
|
||||
Html.ObsidianFlavoredMarkdownBlockReferences(),
|
||||
Html.ObsidianFlavoredMarkdownYouTubeEmbed(),
|
||||
Html.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Html.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||
Html.Description(),
|
||||
Html.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
externalResources: [
|
||||
Resources.ObsidianFlavoredMarkdownCheckbox(),
|
||||
Resources.ObsidianFlavoredMarkdownCallouts(),
|
||||
Resources.ObsidianFlavoredMarkdownMermaid(),
|
||||
Resources.Latex({ renderEngine: "katex" }),
|
||||
],
|
||||
}
|
||||
}
|
||||
@ -46,10 +46,10 @@ export type ExternalResourcePluginInstance = {
|
||||
}
|
||||
|
||||
export type QuartzTransformerPlugin = (
|
||||
textTransformers: TextTransformerPlugin,
|
||||
markdownTransformers: MarkdownTransformerPlugin,
|
||||
htmlTransformers: HtmlTransformerPlugin,
|
||||
externalResources: ExternalResourcePlugin,
|
||||
textTransformers?: TextTransformerPlugin,
|
||||
markdownTransformers?: MarkdownTransformerPlugin,
|
||||
htmlTransformers?: HtmlTransformerPlugin,
|
||||
externalResources?: ExternalResourcePlugin,
|
||||
) => QuartzTransformerPluginInstance
|
||||
export type QuartzTransformerPluginInstance = {
|
||||
//name: string,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user