From 68e3a5984fea09b3b162cda8a76996747f556115 Mon Sep 17 00:00:00 2001 From: Emile Bangma Date: Thu, 19 Sep 2024 08:29:38 +0000 Subject: [PATCH] Restore default options --- quartz/plugins/transformers/markdown.ts | 164 +++++++++++++++++++----- 1 file changed, 134 insertions(+), 30 deletions(-) diff --git a/quartz/plugins/transformers/markdown.ts b/quartz/plugins/transformers/markdown.ts index 5d15d7d35..be7a0b8ff 100644 --- a/quartz/plugins/transformers/markdown.ts +++ b/quartz/plugins/transformers/markdown.ts @@ -1,53 +1,157 @@ import { QuartzTransformerPlugin } from "../types" -export interface Options { +export interface CommonMarkOptions { option1: Boolean } -const defaultOptions: Options = { +const defaultCommonMarkOptions: CommonMarkOptions = { option1: true, } -export const GitHubFlavoredMarkdown: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } - return { - name: "GitHubFlavoredMarkdown", - } +export interface CustomOptions { + option1: Boolean } -export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } - return { - name: "ObsidianFlavoredMarkdown", - } +const defaultCustomOptions: CustomOptions = { + option1: true, } -export const RoamFlavoredMarkdown: QuartzTransformerPlugin | undefined> = ( +export interface GitHubOptions { + enableSmartyPants: boolean + linkHeadings: boolean +} + +const defaultGitHubOptions: GitHubOptions = { + enableSmartyPants: true, + linkHeadings: true, +} + +export interface ObsidianOptions { + comments: boolean + highlight: boolean + wikilinks: boolean + callouts: boolean + mermaid: boolean + parseTags: boolean + parseArrows: boolean + parseBlockReferences: boolean + enableInHtmlEmbed: boolean + enableYouTubeEmbed: boolean + enableVideoEmbed: boolean + enableCheckbox: boolean +} + +const defaultObsidianOptions: ObsidianOptions = { + comments: true, + highlight: true, + wikilinks: true, + callouts: true, + mermaid: true, + parseTags: true, + parseArrows: true, + parseBlockReferences: true, + enableInHtmlEmbed: false, + enableYouTubeEmbed: true, + enableVideoEmbed: true, + enableCheckbox: false, +} + +export interface OxHugoOptions { + /** Replace {{ relref }} with quartz wikilinks []() */ + wikilinks: boolean + /** Remove pre-defined anchor (see https://ox-hugo.scripter.co/doc/anchors/) */ + removePredefinedAnchor: boolean + /** Remove hugo shortcode syntax */ + removeHugoShortcode: boolean + /** Replace
with ![]() */ + replaceFigureWithMdImg: boolean + + /** Replace org latex fragments with $ and $$ */ + replaceOrgLatex: boolean +} + +const defaultOxHugoOptions: OxHugoOptions = { + wikilinks: true, + removePredefinedAnchor: true, + removeHugoShortcode: true, + replaceFigureWithMdImg: true, + replaceOrgLatex: true, +} + +export interface RoamOptions { + orComponent: boolean + TODOComponent: boolean + DONEComponent: boolean + videoComponent: boolean + audioComponent: boolean + pdfComponent: boolean + blockquoteComponent: boolean + tableComponent: boolean + attributeComponent: boolean +} + +const defaultRoamOptions: RoamOptions = { + orComponent: true, + TODOComponent: true, + DONEComponent: true, + videoComponent: true, + audioComponent: true, + pdfComponent: true, + blockquoteComponent: true, + tableComponent: true, + attributeComponent: true, +} + +export const CommonMarkFlavoredMarkdown: QuartzTransformerPlugin> = ( userOpts, ) => { - const opts = { ...defaultOptions, ...userOpts } - return { - name: "RoamFlavoredMarkdown", - } -} - -export const OxHugoFlavoredMarkdown: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } - return { - name: "OxHugoFlavoredMarkdown", - } -} - -export const CommonMarkFlavoredMarkdown: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } + const opts = { ...defaultCommonMarkOptions, ...userOpts } return { name: "CommonMarkFlavoredMarkdown", } } -export const CustomFlavoredMarkdown: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } +export const CustomFlavoredMarkdown: QuartzTransformerPlugin> = ( + userOpts, +) => { + const opts = { ...defaultCustomOptions, ...userOpts } return { name: "CustomFlavoredMarkdown", } } + +export const GitHubFlavoredMarkdown: QuartzTransformerPlugin> = ( + userOpts, +) => { + const opts = { ...defaultGitHubOptions, ...userOpts } + return { + name: "GitHubFlavoredMarkdown", + } +} + +export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> = ( + userOpts, +) => { + const opts = { ...defaultObsidianOptions, ...userOpts } + return { + name: "ObsidianFlavoredMarkdown", + } +} + +export const OxHugoFlavoredMarkdown: QuartzTransformerPlugin> = ( + userOpts, +) => { + const opts = { ...defaultOxHugoOptions, ...userOpts } + return { + name: "OxHugoFlavoredMarkdown", + } +} + +export const RoamFlavoredMarkdown: QuartzTransformerPlugin | undefined> = ( + userOpts, +) => { + const opts = { ...defaultRoamOptions, ...userOpts } + return { + name: "RoamFlavoredMarkdown", + } +}