mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 23:04: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 Markdown from "./quartz/plugins/transformers/markdown"
|
||||||
import * as Html from "./quartz/plugins/transformers/html"
|
import * as Html from "./quartz/plugins/transformers/html"
|
||||||
import * as Resources from "./quartz/plugins/transformers/resources"
|
import * as Resources from "./quartz/plugins/transformers/resources"
|
||||||
|
import * as Presets from "./quartz/plugins/transformers/presets"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quartz 4.0 Configuration
|
* Quartz 4.0 Configuration
|
||||||
@ -58,51 +59,7 @@ const config: QuartzConfig = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
transformers: {
|
transformers: Presets.DefaultPreset(),
|
||||||
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" }),
|
|
||||||
],
|
|
||||||
},
|
|
||||||
filters: [Plugin.RemoveDrafts()],
|
filters: [Plugin.RemoveDrafts()],
|
||||||
emitters: [
|
emitters: [
|
||||||
Plugin.AliasRedirects(),
|
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 = (
|
export type QuartzTransformerPlugin = (
|
||||||
textTransformers: TextTransformerPlugin,
|
textTransformers?: TextTransformerPlugin,
|
||||||
markdownTransformers: MarkdownTransformerPlugin,
|
markdownTransformers?: MarkdownTransformerPlugin,
|
||||||
htmlTransformers: HtmlTransformerPlugin,
|
htmlTransformers?: HtmlTransformerPlugin,
|
||||||
externalResources: ExternalResourcePlugin,
|
externalResources?: ExternalResourcePlugin,
|
||||||
) => QuartzTransformerPluginInstance
|
) => QuartzTransformerPluginInstance
|
||||||
export type QuartzTransformerPluginInstance = {
|
export type QuartzTransformerPluginInstance = {
|
||||||
//name: string,
|
//name: string,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user