Add parser presets.

This commit is contained in:
saberzero1 2024-10-22 22:19:53 +02:00
parent 58667195c1
commit cb8238d92b
No known key found for this signature in database
GPG Key ID: 41AEE99107640F10
6 changed files with 170 additions and 49 deletions

View File

@ -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(),

View 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" }),
],
}
}

View 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" }),
],
}
}

View File

@ -0,0 +1,3 @@
export { CommonMarkPreset } from "./commonmark"
export { DefaultPreset } from "./default"
export { ObsidianPreset } from "./obsidian"

View 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" }),
],
}
}

View File

@ -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,