mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
configuration using json
This commit is contained in:
parent
8cf3e3001f
commit
21ad72400d
137
config.json
Normal file
137
config.json
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
{
|
||||||
|
"configuration": {
|
||||||
|
"pageTitle": "🪴 Quartz 4.0",
|
||||||
|
"pageTitleSuffix": "",
|
||||||
|
"enableSPA": true,
|
||||||
|
"enablePopovers": true,
|
||||||
|
"analytics": {
|
||||||
|
"provider": "plausible"
|
||||||
|
},
|
||||||
|
"locale": "en-US",
|
||||||
|
"baseUrl": "quartz.jzhao.xyz",
|
||||||
|
"ignorePatterns": ["private", "templates", ".obsidian"],
|
||||||
|
"defaultDateType": "created",
|
||||||
|
"generateSocialImages": false,
|
||||||
|
"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": {
|
||||||
|
"transformers": [
|
||||||
|
{
|
||||||
|
"name": "FrontMatter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CreatedModifiedDate",
|
||||||
|
"config": {
|
||||||
|
"priority": ["frontmatter", "filesystem"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SyntaxHighlighting",
|
||||||
|
"config": {
|
||||||
|
"theme": {
|
||||||
|
"light": "github-light",
|
||||||
|
"dark": "github-dark"
|
||||||
|
},
|
||||||
|
"keepBackground": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ObsidianFlavoredMarkdown",
|
||||||
|
"config": {
|
||||||
|
"enableInHtmlEmbed": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GitHubFlavoredMarkdown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TableOfContents"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CrawlLinks",
|
||||||
|
"config": {
|
||||||
|
"markdownLinkResolution": "shortest"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Description"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Latex",
|
||||||
|
"config": {
|
||||||
|
"renderEngine": "katex"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"filters": [
|
||||||
|
{
|
||||||
|
"name": "RemoveDrafts"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"emitters": [
|
||||||
|
{
|
||||||
|
"name": "AliasRedirects"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ComponentResources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ContentPage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "FolderPage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TagPage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ContentIndex",
|
||||||
|
"config": {
|
||||||
|
"enableSiteMap": true,
|
||||||
|
"enableRSS": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Assets"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Static"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "NotFoundPage"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
103
quartz.config.ts
103
quartz.config.ts
@ -1,94 +1,33 @@
|
|||||||
import { QuartzConfig } from "./quartz/cfg"
|
import { QuartzConfig } from "./quartz/cfg"
|
||||||
import * as Plugin from "./quartz/plugins"
|
import * as Plugin from "./quartz/plugins"
|
||||||
|
import * as fs from "fs"
|
||||||
|
import * as path from "path"
|
||||||
/**
|
/**
|
||||||
* Quartz 4.0 Configuration
|
* Quartz 4.0 Configuration
|
||||||
*
|
*
|
||||||
* See https://quartz.jzhao.xyz/configuration for more information.
|
* See https://quartz.jzhao.xyz/configuration for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const configPath = process.env.QUARTZ_CONFIG_PATH || path.resolve(__dirname, "config.json")
|
||||||
|
|
||||||
|
const rawData = fs.readFileSync(configPath, "utf-8")
|
||||||
|
const configData = JSON.parse(rawData)
|
||||||
|
|
||||||
|
function loadPlugins<T>(pluginList: { name: string; config?: Record<string, unknown> }[]): T[] {
|
||||||
|
return pluginList.map((plugin) => {
|
||||||
|
if (plugin.config) {
|
||||||
|
return (Plugin as any)[plugin.name](plugin.config)
|
||||||
|
}
|
||||||
|
return (Plugin as any)[plugin.name]()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const config: QuartzConfig = {
|
const config: QuartzConfig = {
|
||||||
configuration: {
|
configuration: configData.configuration,
|
||||||
pageTitle: "🪴 Quartz 4.0",
|
|
||||||
pageTitleSuffix: "",
|
|
||||||
enableSPA: true,
|
|
||||||
enablePopovers: true,
|
|
||||||
analytics: {
|
|
||||||
provider: "plausible",
|
|
||||||
},
|
|
||||||
locale: "en-US",
|
|
||||||
baseUrl: "quartz.jzhao.xyz",
|
|
||||||
ignorePatterns: ["private", "templates", ".obsidian"],
|
|
||||||
defaultDateType: "created",
|
|
||||||
generateSocialImages: false,
|
|
||||||
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: {
|
plugins: {
|
||||||
transformers: [
|
transformers: loadPlugins(configData.plugins.transformers),
|
||||||
Plugin.FrontMatter(),
|
filters: loadPlugins(configData.plugins.filters),
|
||||||
Plugin.CreatedModifiedDate({
|
emitters: loadPlugins(configData.plugins.emitters),
|
||||||
priority: ["frontmatter", "filesystem"],
|
|
||||||
}),
|
|
||||||
Plugin.SyntaxHighlighting({
|
|
||||||
theme: {
|
|
||||||
light: "github-light",
|
|
||||||
dark: "github-dark",
|
|
||||||
},
|
|
||||||
keepBackground: false,
|
|
||||||
}),
|
|
||||||
Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),
|
|
||||||
Plugin.GitHubFlavoredMarkdown(),
|
|
||||||
Plugin.TableOfContents(),
|
|
||||||
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
|
||||||
Plugin.Description(),
|
|
||||||
Plugin.Latex({ renderEngine: "katex" }),
|
|
||||||
],
|
|
||||||
filters: [Plugin.RemoveDrafts()],
|
|
||||||
emitters: [
|
|
||||||
Plugin.AliasRedirects(),
|
|
||||||
Plugin.ComponentResources(),
|
|
||||||
Plugin.ContentPage(),
|
|
||||||
Plugin.FolderPage(),
|
|
||||||
Plugin.TagPage(),
|
|
||||||
Plugin.ContentIndex({
|
|
||||||
enableSiteMap: true,
|
|
||||||
enableRSS: true,
|
|
||||||
}),
|
|
||||||
Plugin.Assets(),
|
|
||||||
Plugin.Static(),
|
|
||||||
Plugin.NotFoundPage(),
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user