From 81b5d9d6245e625c030fb0408d13ce1485141ad5 Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Wed, 11 Mar 2026 18:02:42 +0100 Subject: [PATCH] feat(templates): add obsidian, ttrpg, blog templates --- quartz.config.default.yaml | 8 +- quartz.config.yaml | 16 +- quartz/cli/args.js | 6 + quartz/cli/handlers.js | 50 ++++- quartz/cli/plugin-data.js | 22 +++ quartz/cli/templates/blog.yaml | 289 +++++++++++++++++++++++++++++ quartz/cli/templates/default.yaml | 270 +++++++++++++++++++++++++++ quartz/cli/templates/obsidian.yaml | 284 ++++++++++++++++++++++++++++ quartz/cli/templates/ttrpg.yaml | 288 ++++++++++++++++++++++++++++ 9 files changed, 1214 insertions(+), 19 deletions(-) create mode 100644 quartz/cli/templates/blog.yaml create mode 100644 quartz/cli/templates/default.yaml create mode 100644 quartz/cli/templates/obsidian.yaml create mode 100644 quartz/cli/templates/ttrpg.yaml diff --git a/quartz.config.default.yaml b/quartz.config.default.yaml index 0669a0d0b..689a883f1 100644 --- a/quartz.config.default.yaml +++ b/quartz.config.default.yaml @@ -1,4 +1,6 @@ -# yaml-language-server: $schema=./quartz/plugins/quartz-plugins.schema.json +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: default +# A clean Quartz setup with sensible defaults. configuration: pageTitle: Quartz 5 pageTitleSuffix: "" @@ -52,7 +54,7 @@ plugins: - aliases excludedProperties: [] hidePropertiesView: false - delimiters: --- + delimiters: "---" language: yaml order: 5 - source: github:quartz-community/created-modified-date @@ -234,7 +236,7 @@ plugins: - aliases excludedProperties: [] hidePropertiesView: false - delimiters: --- + delimiters: "---" language: yaml order: 5 layout: diff --git a/quartz.config.yaml b/quartz.config.yaml index f12de30de..689a883f1 100644 --- a/quartz.config.yaml +++ b/quartz.config.yaml @@ -1,4 +1,6 @@ -# yaml-language-server: $schema=./quartz/plugins/quartz-plugins.schema.json +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: default +# A clean Quartz setup with sensible defaults. configuration: pageTitle: Quartz 5 pageTitleSuffix: "" @@ -52,7 +54,7 @@ plugins: - aliases excludedProperties: [] hidePropertiesView: false - delimiters: --- + delimiters: "---" language: yaml order: 5 - source: github:quartz-community/created-modified-date @@ -234,21 +236,13 @@ plugins: - aliases excludedProperties: [] hidePropertiesView: false - delimiters: --- + delimiters: "---" language: yaml order: 5 layout: position: beforeBody priority: 15 display: all - - source: github:quartz-community/external-quartz-leaflet-map-plugin - enabled: true - options: {} - order: 50 - - source: github:saberzero1/quartz-themes - enabled: false - options: { theme: "its-theme" } - order: 50 layout: groups: toolbar: diff --git a/quartz/cli/args.js b/quartz/cli/args.js index f590bb3a5..ad0841698 100644 --- a/quartz/cli/args.js +++ b/quartz/cli/args.js @@ -15,6 +15,12 @@ export const CommonArgv = { export const CreateArgv = { ...CommonArgv, + template: { + string: true, + alias: ["t"], + choices: ["default", "obsidian", "ttrpg", "blog"], + describe: "template to use for initial configuration", + }, source: { string: true, alias: ["s"], diff --git a/quartz/cli/handlers.js b/quartz/cli/handlers.js index 5e2051602..da419f088 100644 --- a/quartz/cli/handlers.js +++ b/quartz/cli/handlers.js @@ -31,6 +31,7 @@ import { import { configExists, createConfigFromDefault, + createConfigFromTemplate, readPluginsJson, writePluginsJson, extractPluginName, @@ -66,6 +67,7 @@ export async function handleCreate(argv) { let setupStrategy = argv.strategy?.toLowerCase() let linkResolutionStrategy = argv.links?.toLowerCase() const sourceDirectory = argv.source + let template = argv.template?.toLowerCase() // If all cmd arguments were provided, check if they're valid if (setupStrategy && linkResolutionStrategy) { @@ -117,6 +119,32 @@ export async function handleCreate(argv) { } } + // Template selection + if (!template) { + template = exitIfCancel( + await select({ + message: "Choose a template for your Quartz configuration", + options: [ + { value: "default", label: "Default", hint: "clean Quartz setup with sensible defaults" }, + { + value: "obsidian", + label: "Obsidian", + hint: "optimized for Obsidian vaults with full OFM support", + }, + { + value: "ttrpg", + label: "TTRPG", + hint: "Obsidian + map plugin + ITS Theme for D&D/TTRPG wikis", + }, + { + value: "blog", + label: "Blog", + hint: "recent notes and comments enabled for blogging", + }, + ], + }), + ) + } // Use cli process if cmd args werent provided if (!setupStrategy) { setupStrategy = exitIfCancel( @@ -194,6 +222,12 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started. ) } + // Obsidian and TTRPG templates auto-set link resolution to "shortest" + const skipLinkPrompt = template === "obsidian" || template === "ttrpg" + if (skipLinkPrompt) { + linkResolutionStrategy = "shortest" + } + // Use cli process if cmd args werent provided if (!linkResolutionStrategy) { // get a preferred link resolution strategy @@ -219,6 +253,17 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started. ) } + // Create config if it doesn't exist + if (!configExists()) { + if (template && template !== "default") { + createConfigFromTemplate(template) + console.log(styleText("green", `Created quartz.config.yaml from '${template}' template`)) + } else { + createConfigFromTemplate("default") + console.log(styleText("green", "Created quartz.config.yaml from defaults")) + } + } + // Update markdownLinkResolution in the crawl-links plugin options via YAML config const json = readPluginsJson() if (json?.plugins) { @@ -234,11 +279,6 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started. } } - if (!configExists()) { - createConfigFromDefault() - console.log(styleText("green", "Created quartz.config.yaml from defaults")) - } - // setup remote execSync(`git remote show upstream || git remote add upstream ${QUARTZ_SOURCE_REPO}`, { stdio: "ignore", diff --git a/quartz/cli/plugin-data.js b/quartz/cli/plugin-data.js index 89bc60676..687c4029f 100644 --- a/quartz/cli/plugin-data.js +++ b/quartz/cli/plugin-data.js @@ -7,6 +7,7 @@ const LOCKFILE_PATH = path.join(process.cwd(), "quartz.lock.json") const PLUGINS_DIR = path.join(process.cwd(), ".quartz", "plugins") const CONFIG_YAML_PATH = path.join(process.cwd(), "quartz.config.yaml") const DEFAULT_CONFIG_YAML_PATH = path.join(process.cwd(), "quartz.config.default.yaml") +const TEMPLATES_DIR = path.join(process.cwd(), "quartz", "cli", "templates") const LEGACY_PLUGINS_JSON_PATH = path.join(process.cwd(), "quartz.plugins.json") const LEGACY_DEFAULT_PLUGINS_JSON_PATH = path.join(process.cwd(), "quartz.plugins.default.json") @@ -309,6 +310,27 @@ export function createConfigFromDefault() { return rest } +const VALID_TEMPLATES = ["default", "obsidian", "ttrpg", "blog"] + +export function createConfigFromTemplate(templateName) { + if (!VALID_TEMPLATES.includes(templateName)) { + throw new Error( + `Unknown template: ${templateName}. Valid templates: ${VALID_TEMPLATES.join(", ")}`, + ) + } + + const templatePath = path.join(TEMPLATES_DIR, `${templateName}.yaml`) + const templateData = readFileAsData(templatePath) + if (!templateData) { + // Template file missing — fall back to default config creation + return createConfigFromDefault() + } + + const { $schema, ...rest } = templateData + writePluginsJson(rest) + return rest +} + export const PLUGINS_JSON_PATH = CONFIG_YAML_PATH export const DEFAULT_PLUGINS_JSON_PATH = DEFAULT_CONFIG_YAML_PATH export { LOCKFILE_PATH, PLUGINS_DIR } diff --git a/quartz/cli/templates/blog.yaml b/quartz/cli/templates/blog.yaml new file mode 100644 index 000000000..c5b279e00 --- /dev/null +++ b/quartz/cli/templates/blog.yaml @@ -0,0 +1,289 @@ +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: blog +# A blog-focused setup with recent notes and comments enabled. +configuration: + pageTitle: Quartz 5 + pageTitleSuffix: "" + enableSPA: true + enablePopovers: true + analytics: + provider: plausible + locale: en-US + baseUrl: quartz.jzhao.xyz + ignorePatterns: + - private + - templates + - .obsidian + defaultDateType: modified + theme: + fontOrigin: googleFonts + cdnCaching: true + typography: + header: Schibsted Grotesk + body: Source Sans Pro + code: IBM Plex Mono + colors: + lightMode: + light: "#faf8f8" + lightgray: "#e5e5e5" + gray: "#b8b8b8" + darkgray: "#4e4e4e" + dark: "#2b2b2b" + secondary: "#284b63" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#fff23688" + darkMode: + light: "#161618" + lightgray: "#393639" + gray: "#646464" + darkgray: "#d4d4d4" + dark: "#ebebec" + secondary: "#7b97aa" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#b3aa0288" +plugins: + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + - source: github:quartz-community/created-modified-date + enabled: true + options: + priority: + - frontmatter + - git + - filesystem + order: 10 + - source: github:quartz-community/syntax-highlighting + enabled: true + options: + theme: + light: github-light + dark: github-dark + keepBackground: false + order: 20 + - source: github:quartz-community/obsidian-flavored-markdown + enabled: true + options: + enableInHtmlEmbed: false + enableCheckbox: true + order: 30 + - source: github:quartz-community/github-flavored-markdown + enabled: true + order: 40 + - source: github:quartz-community/table-of-contents + enabled: true + order: 50 + - source: github:quartz-community/crawl-links + enabled: true + options: + markdownLinkResolution: shortest + order: 60 + - source: github:quartz-community/description + enabled: true + order: 70 + - source: github:quartz-community/latex + enabled: true + options: + renderEngine: katex + order: 80 + - source: github:quartz-community/citations + enabled: false + order: 85 + - source: github:quartz-community/hard-line-breaks + enabled: false + order: 90 + - source: github:quartz-community/ox-hugo + enabled: false + order: 91 + - source: github:quartz-community/roam + enabled: false + order: 92 + - source: github:quartz-community/remove-draft + enabled: true + - source: github:quartz-community/explicit-publish + enabled: false + - source: github:quartz-community/alias-redirects + enabled: true + - source: github:quartz-community/content-index + enabled: true + options: + enableSiteMap: true + enableRSS: true + - source: github:quartz-community/favicon + enabled: true + - source: github:quartz-community/og-image + enabled: true + - source: github:quartz-community/cname + enabled: true + - source: github:quartz-community/canvas-page + enabled: true + - source: github:quartz-community/bases-page + enabled: true + - source: github:quartz-community/content-page + enabled: true + - source: github:quartz-community/folder-page + enabled: true + - source: github:quartz-community/tag-page + enabled: true + - source: github:quartz-community/explorer + enabled: true + layout: + position: left + priority: 50 + - source: github:quartz-community/graph + enabled: true + layout: + position: right + priority: 10 + - source: github:quartz-community/search + enabled: true + layout: + position: left + priority: 20 + group: toolbar + groupOptions: + grow: true + - source: github:quartz-community/backlinks + enabled: true + layout: + position: right + priority: 30 + - source: github:quartz-community/article-title + enabled: true + layout: + position: beforeBody + priority: 10 + - source: github:quartz-community/content-meta + enabled: true + layout: + position: beforeBody + priority: 20 + - source: github:quartz-community/tag-list + enabled: false + layout: + position: beforeBody + priority: 30 + - source: github:quartz-community/page-title + enabled: true + layout: + position: left + priority: 10 + - source: github:quartz-community/darkmode + enabled: true + layout: + position: left + priority: 30 + group: toolbar + - source: github:quartz-community/reader-mode + enabled: true + layout: + position: left + priority: 35 + group: toolbar + - source: github:quartz-community/breadcrumbs + enabled: true + layout: + position: beforeBody + priority: 5 + condition: not-index + - source: github:quartz-community/comments + enabled: true + options: + provider: giscus + options: + repo: "TODO:username/repo-name" + repoId: "TODO:your-repo-id" + category: Announcements + categoryId: "TODO:your-category-id" + mapping: url + strict: true + reactionsEnabled: true + inputPosition: bottom + lightTheme: light + darkTheme: dark + lang: en + layout: + position: afterBody + priority: 10 + - source: github:quartz-community/footer + enabled: true + options: + links: + GitHub: https://github.com/jackyzha0/quartz + Discord Community: https://discord.gg/cRFFHYye7t + - source: github:quartz-community/recent-notes + enabled: true + options: + title: Recent Notes + limit: 5 + linkToMore: false + showTags: true + layout: + position: left + priority: 25 + - source: github:quartz-community/spacer + enabled: true + options: {} + order: 25 + layout: + position: left + priority: 25 + display: mobile-only + - source: github:quartz-community/bases-page + enabled: true + options: {} + order: 50 + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + layout: + position: beforeBody + priority: 15 + display: all +layout: + groups: + toolbar: + priority: 35 + direction: row + gap: 0.5rem + byPageType: + "404": + positions: + beforeBody: [] + left: [] + right: [] + content: {} + folder: + exclude: + - reader-mode + positions: + right: [] + tag: + exclude: + - reader-mode + positions: + right: [] + canvas: {} + bases: {} diff --git a/quartz/cli/templates/default.yaml b/quartz/cli/templates/default.yaml new file mode 100644 index 000000000..689a883f1 --- /dev/null +++ b/quartz/cli/templates/default.yaml @@ -0,0 +1,270 @@ +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: default +# A clean Quartz setup with sensible defaults. +configuration: + pageTitle: Quartz 5 + pageTitleSuffix: "" + enableSPA: true + enablePopovers: true + analytics: + provider: plausible + locale: en-US + baseUrl: quartz.jzhao.xyz + ignorePatterns: + - private + - templates + - .obsidian + defaultDateType: modified + theme: + fontOrigin: googleFonts + cdnCaching: true + typography: + header: Schibsted Grotesk + body: Source Sans Pro + code: IBM Plex Mono + colors: + lightMode: + light: "#faf8f8" + lightgray: "#e5e5e5" + gray: "#b8b8b8" + darkgray: "#4e4e4e" + dark: "#2b2b2b" + secondary: "#284b63" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#fff23688" + darkMode: + light: "#161618" + lightgray: "#393639" + gray: "#646464" + darkgray: "#d4d4d4" + dark: "#ebebec" + secondary: "#7b97aa" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#b3aa0288" +plugins: + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + - source: github:quartz-community/created-modified-date + enabled: true + options: + priority: + - frontmatter + - git + - filesystem + order: 10 + - source: github:quartz-community/syntax-highlighting + enabled: true + options: + theme: + light: github-light + dark: github-dark + keepBackground: false + order: 20 + - source: github:quartz-community/obsidian-flavored-markdown + enabled: true + options: + enableInHtmlEmbed: false + enableCheckbox: true + order: 30 + - source: github:quartz-community/github-flavored-markdown + enabled: true + order: 40 + - source: github:quartz-community/table-of-contents + enabled: true + order: 50 + - source: github:quartz-community/crawl-links + enabled: true + options: + markdownLinkResolution: shortest + order: 60 + - source: github:quartz-community/description + enabled: true + order: 70 + - source: github:quartz-community/latex + enabled: true + options: + renderEngine: katex + order: 80 + - source: github:quartz-community/citations + enabled: false + order: 85 + - source: github:quartz-community/hard-line-breaks + enabled: false + order: 90 + - source: github:quartz-community/ox-hugo + enabled: false + order: 91 + - source: github:quartz-community/roam + enabled: false + order: 92 + - source: github:quartz-community/remove-draft + enabled: true + - source: github:quartz-community/explicit-publish + enabled: false + - source: github:quartz-community/alias-redirects + enabled: true + - source: github:quartz-community/content-index + enabled: true + options: + enableSiteMap: true + enableRSS: true + - source: github:quartz-community/favicon + enabled: true + - source: github:quartz-community/og-image + enabled: true + - source: github:quartz-community/cname + enabled: true + - source: github:quartz-community/canvas-page + enabled: true + - source: github:quartz-community/bases-page + enabled: true + - source: github:quartz-community/content-page + enabled: true + - source: github:quartz-community/folder-page + enabled: true + - source: github:quartz-community/tag-page + enabled: true + - source: github:quartz-community/explorer + enabled: true + layout: + position: left + priority: 50 + - source: github:quartz-community/graph + enabled: true + layout: + position: right + priority: 10 + - source: github:quartz-community/search + enabled: true + layout: + position: left + priority: 20 + group: toolbar + groupOptions: + grow: true + - source: github:quartz-community/backlinks + enabled: true + layout: + position: right + priority: 30 + - source: github:quartz-community/article-title + enabled: true + layout: + position: beforeBody + priority: 10 + - source: github:quartz-community/content-meta + enabled: true + layout: + position: beforeBody + priority: 20 + - source: github:quartz-community/tag-list + enabled: false + layout: + position: beforeBody + priority: 30 + - source: github:quartz-community/page-title + enabled: true + layout: + position: left + priority: 10 + - source: github:quartz-community/darkmode + enabled: true + layout: + position: left + priority: 30 + group: toolbar + - source: github:quartz-community/reader-mode + enabled: true + layout: + position: left + priority: 35 + group: toolbar + - source: github:quartz-community/breadcrumbs + enabled: true + layout: + position: beforeBody + priority: 5 + condition: not-index + - source: github:quartz-community/comments + enabled: false + options: + provider: giscus + options: {} + layout: + position: afterBody + priority: 10 + - source: github:quartz-community/footer + enabled: true + options: + links: + GitHub: https://github.com/jackyzha0/quartz + Discord Community: https://discord.gg/cRFFHYye7t + - source: github:quartz-community/recent-notes + enabled: false + - source: github:quartz-community/spacer + enabled: true + options: {} + order: 25 + layout: + position: left + priority: 25 + display: mobile-only + - source: github:quartz-community/bases-page + enabled: true + options: {} + order: 50 + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + layout: + position: beforeBody + priority: 15 + display: all +layout: + groups: + toolbar: + priority: 35 + direction: row + gap: 0.5rem + byPageType: + "404": + positions: + beforeBody: [] + left: [] + right: [] + content: {} + folder: + exclude: + - reader-mode + positions: + right: [] + tag: + exclude: + - reader-mode + positions: + right: [] + canvas: {} + bases: {} diff --git a/quartz/cli/templates/obsidian.yaml b/quartz/cli/templates/obsidian.yaml new file mode 100644 index 000000000..9f9c03d19 --- /dev/null +++ b/quartz/cli/templates/obsidian.yaml @@ -0,0 +1,284 @@ +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: obsidian +# Optimized for Obsidian vaults with full OFM support and shortest link resolution. +configuration: + pageTitle: Quartz 5 + pageTitleSuffix: "" + enableSPA: true + enablePopovers: true + analytics: + provider: plausible + locale: en-US + baseUrl: quartz.jzhao.xyz + ignorePatterns: + - private + - templates + - .obsidian + defaultDateType: modified + theme: + fontOrigin: googleFonts + cdnCaching: true + typography: + header: Schibsted Grotesk + body: Source Sans Pro + code: IBM Plex Mono + colors: + lightMode: + light: "#faf8f8" + lightgray: "#e5e5e5" + gray: "#b8b8b8" + darkgray: "#4e4e4e" + dark: "#2b2b2b" + secondary: "#284b63" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#fff23688" + darkMode: + light: "#161618" + lightgray: "#393639" + gray: "#646464" + darkgray: "#d4d4d4" + dark: "#ebebec" + secondary: "#7b97aa" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#b3aa0288" +plugins: + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + - source: github:quartz-community/created-modified-date + enabled: true + options: + priority: + - frontmatter + - git + - filesystem + order: 10 + - source: github:quartz-community/syntax-highlighting + enabled: true + options: + theme: + light: github-light + dark: github-dark + keepBackground: false + order: 20 + - source: github:quartz-community/obsidian-flavored-markdown + enabled: true + options: + comments: true + highlight: true + wikilinks: true + callouts: true + mermaid: true + parseTags: true + parseArrows: true + parseBlockReferences: true + enableInHtmlEmbed: false + enableYouTubeEmbed: true + enableVideoEmbed: true + enableCheckbox: true + order: 30 + - source: github:quartz-community/github-flavored-markdown + enabled: true + order: 40 + - source: github:quartz-community/table-of-contents + enabled: true + order: 50 + - source: github:quartz-community/crawl-links + enabled: true + options: + markdownLinkResolution: shortest + order: 60 + - source: github:quartz-community/description + enabled: true + order: 70 + - source: github:quartz-community/latex + enabled: true + options: + renderEngine: katex + order: 80 + - source: github:quartz-community/citations + enabled: false + order: 85 + - source: github:quartz-community/hard-line-breaks + enabled: false + order: 90 + - source: github:quartz-community/ox-hugo + enabled: false + order: 91 + - source: github:quartz-community/roam + enabled: false + order: 92 + - source: github:quartz-community/remove-draft + enabled: true + - source: github:quartz-community/explicit-publish + enabled: false + - source: github:quartz-community/alias-redirects + enabled: true + - source: github:quartz-community/content-index + enabled: true + options: + enableSiteMap: true + enableRSS: true + - source: github:quartz-community/favicon + enabled: true + - source: github:quartz-community/og-image + enabled: true + - source: github:quartz-community/cname + enabled: true + - source: github:quartz-community/canvas-page + enabled: true + - source: github:quartz-community/bases-page + enabled: true + - source: github:quartz-community/content-page + enabled: true + - source: github:quartz-community/folder-page + enabled: true + - source: github:quartz-community/tag-page + enabled: true + - source: github:quartz-community/explorer + enabled: true + layout: + position: left + priority: 50 + - source: github:quartz-community/graph + enabled: true + layout: + position: right + priority: 10 + - source: github:quartz-community/search + enabled: true + layout: + position: left + priority: 20 + group: toolbar + groupOptions: + grow: true + - source: github:quartz-community/backlinks + enabled: true + layout: + position: right + priority: 30 + - source: github:quartz-community/article-title + enabled: true + layout: + position: beforeBody + priority: 10 + - source: github:quartz-community/content-meta + enabled: true + layout: + position: beforeBody + priority: 20 + - source: github:quartz-community/tag-list + enabled: false + layout: + position: beforeBody + priority: 30 + - source: github:quartz-community/page-title + enabled: true + layout: + position: left + priority: 10 + - source: github:quartz-community/darkmode + enabled: true + layout: + position: left + priority: 30 + group: toolbar + - source: github:quartz-community/reader-mode + enabled: true + layout: + position: left + priority: 35 + group: toolbar + - source: github:quartz-community/breadcrumbs + enabled: true + layout: + position: beforeBody + priority: 5 + condition: not-index + - source: github:quartz-community/comments + enabled: false + options: + provider: giscus + options: {} + layout: + position: afterBody + priority: 10 + - source: github:quartz-community/footer + enabled: true + options: + links: + GitHub: https://github.com/jackyzha0/quartz + Discord Community: https://discord.gg/cRFFHYye7t + - source: github:quartz-community/recent-notes + enabled: false + - source: github:quartz-community/spacer + enabled: true + options: {} + order: 25 + layout: + position: left + priority: 25 + display: mobile-only + - source: github:quartz-community/bases-page + enabled: true + options: {} + order: 50 + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + layout: + position: beforeBody + priority: 15 + display: all + - source: github:saberzero1/quartz-themes + enabled: true + options: + theme: "default" +layout: + groups: + toolbar: + priority: 35 + direction: row + gap: 0.5rem + byPageType: + "404": + positions: + beforeBody: [] + left: [] + right: [] + content: {} + folder: + exclude: + - reader-mode + positions: + right: [] + tag: + exclude: + - reader-mode + positions: + right: [] + canvas: {} + bases: {} diff --git a/quartz/cli/templates/ttrpg.yaml b/quartz/cli/templates/ttrpg.yaml new file mode 100644 index 000000000..831fd79f3 --- /dev/null +++ b/quartz/cli/templates/ttrpg.yaml @@ -0,0 +1,288 @@ +# yaml-language-server: $schema=../../plugins/quartz-plugins.schema.json +# Template: ttrpg +# Obsidian-based setup with map plugin and ITS Theme for TTRPG/D&D wikis. +configuration: + pageTitle: Quartz 5 + pageTitleSuffix: "" + enableSPA: true + enablePopovers: true + analytics: + provider: plausible + locale: en-US + baseUrl: quartz.jzhao.xyz + ignorePatterns: + - private + - templates + - .obsidian + defaultDateType: modified + theme: + fontOrigin: googleFonts + cdnCaching: true + typography: + header: Schibsted Grotesk + body: Source Sans Pro + code: IBM Plex Mono + colors: + lightMode: + light: "#faf8f8" + lightgray: "#e5e5e5" + gray: "#b8b8b8" + darkgray: "#4e4e4e" + dark: "#2b2b2b" + secondary: "#284b63" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#fff23688" + darkMode: + light: "#161618" + lightgray: "#393639" + gray: "#646464" + darkgray: "#d4d4d4" + dark: "#ebebec" + secondary: "#7b97aa" + tertiary: "#84a59d" + highlight: rgba(143, 159, 169, 0.15) + textHighlight: "#b3aa0288" +plugins: + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + - source: github:quartz-community/created-modified-date + enabled: true + options: + priority: + - frontmatter + - git + - filesystem + order: 10 + - source: github:quartz-community/syntax-highlighting + enabled: true + options: + theme: + light: github-light + dark: github-dark + keepBackground: false + order: 20 + - source: github:quartz-community/obsidian-flavored-markdown + enabled: true + options: + comments: true + highlight: true + wikilinks: true + callouts: true + mermaid: true + parseTags: true + parseArrows: true + parseBlockReferences: true + enableInHtmlEmbed: false + enableYouTubeEmbed: true + enableVideoEmbed: true + enableCheckbox: true + order: 30 + - source: github:quartz-community/github-flavored-markdown + enabled: true + order: 40 + - source: github:quartz-community/table-of-contents + enabled: true + order: 50 + - source: github:quartz-community/crawl-links + enabled: true + options: + markdownLinkResolution: shortest + order: 60 + - source: github:quartz-community/description + enabled: true + order: 70 + - source: github:quartz-community/latex + enabled: true + options: + renderEngine: katex + order: 80 + - source: github:quartz-community/citations + enabled: false + order: 85 + - source: github:quartz-community/hard-line-breaks + enabled: false + order: 90 + - source: github:quartz-community/ox-hugo + enabled: false + order: 91 + - source: github:quartz-community/roam + enabled: false + order: 92 + - source: github:quartz-community/remove-draft + enabled: true + - source: github:quartz-community/explicit-publish + enabled: false + - source: github:quartz-community/alias-redirects + enabled: true + - source: github:quartz-community/content-index + enabled: true + options: + enableSiteMap: true + enableRSS: true + - source: github:quartz-community/favicon + enabled: true + - source: github:quartz-community/og-image + enabled: true + - source: github:quartz-community/cname + enabled: true + - source: github:quartz-community/canvas-page + enabled: true + - source: github:quartz-community/bases-page + enabled: true + - source: github:quartz-community/content-page + enabled: true + - source: github:quartz-community/folder-page + enabled: true + - source: github:quartz-community/tag-page + enabled: true + - source: github:quartz-community/explorer + enabled: true + layout: + position: left + priority: 50 + - source: github:quartz-community/graph + enabled: true + layout: + position: right + priority: 10 + - source: github:quartz-community/search + enabled: true + layout: + position: left + priority: 20 + group: toolbar + groupOptions: + grow: true + - source: github:quartz-community/backlinks + enabled: true + layout: + position: right + priority: 30 + - source: github:quartz-community/article-title + enabled: true + layout: + position: beforeBody + priority: 10 + - source: github:quartz-community/content-meta + enabled: true + layout: + position: beforeBody + priority: 20 + - source: github:quartz-community/tag-list + enabled: false + layout: + position: beforeBody + priority: 30 + - source: github:quartz-community/page-title + enabled: true + layout: + position: left + priority: 10 + - source: github:quartz-community/darkmode + enabled: true + layout: + position: left + priority: 30 + group: toolbar + - source: github:quartz-community/reader-mode + enabled: true + layout: + position: left + priority: 35 + group: toolbar + - source: github:quartz-community/breadcrumbs + enabled: true + layout: + position: beforeBody + priority: 5 + condition: not-index + - source: github:quartz-community/comments + enabled: false + options: + provider: giscus + options: {} + layout: + position: afterBody + priority: 10 + - source: github:quartz-community/footer + enabled: true + options: + links: + GitHub: https://github.com/jackyzha0/quartz + Discord Community: https://discord.gg/cRFFHYye7t + - source: github:quartz-community/recent-notes + enabled: false + - source: github:quartz-community/spacer + enabled: true + options: {} + order: 25 + layout: + position: left + priority: 25 + display: mobile-only + - source: github:quartz-community/bases-page + enabled: true + options: {} + order: 50 + - source: github:quartz-community/note-properties + enabled: true + options: + includeAll: false + includedProperties: + - description + - tags + - aliases + excludedProperties: [] + hidePropertiesView: false + delimiters: "---" + language: yaml + order: 5 + layout: + position: beforeBody + priority: 15 + display: all + # TTRPG-specific plugins + - source: github:quartz-community/external-quartz-leaflet-map-plugin + enabled: true + - source: github:saberzero1/quartz-themes + enabled: true + options: + theme: "its-theme" + variation: "ttrpg-dnd" +layout: + groups: + toolbar: + priority: 35 + direction: row + gap: 0.5rem + byPageType: + "404": + positions: + beforeBody: [] + left: [] + right: [] + content: {} + folder: + exclude: + - reader-mode + positions: + right: [] + tag: + exclude: + - reader-mode + positions: + right: [] + canvas: {} + bases: {}