From 3ac6b42e16dca5a44ed3fec2c0314f1dbbc2322b Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 16 Jul 2023 06:02:12 +0000
Subject: [PATCH] finish path refactoring, add sourcemap + better trace support
---
quartz.config.ts | 172 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 120 insertions(+), 52 deletions(-)
diff --git a/quartz.config.ts b/quartz.config.ts
index 14ef1c1..cd1e9ef 100644
--- a/quartz.config.ts
+++ b/quartz.config.ts
@@ -1,64 +1,132 @@
-import { buildQuartz } from "./quartz"
-import Head from "./quartz/components/Head"
-import Header from "./quartz/components/Header"
-import { ContentPage, CreatedModifiedDate, Description, FrontMatter, GitHubFlavoredMarkdown, Katex, ObsidianFlavoredMarkdown, RemoveDrafts, ResolveLinks, SyntaxHighlighting } from "./quartz/plugins"
+import { GlobalConfiguration, PageLayout, QuartzConfig } from "./quartz/cfg"
+import * as Component from "./quartz/components"
+import * as Plugin from "./quartz/plugins"
-export default buildQuartz({
- configuration: {
- siteTitle: "🪴 Quartz 4.0",
- enableSPA: true,
- ignorePatterns: ["private", "templates"],
- theme: {
- typography: { // loaded from Google Fonts
- header: "Schibsted Grotesk",
- body: "Source Sans Pro",
- code: "IBM Plex Mono",
- },
- colors: {
- lightMode: {
- light: '#faf8f8',
- lightgray: '#e8e8e8',
- gray: '#dadada',
- darkgray: '#4e4e4e',
- dark: '#141021',
- secondary: '#284b63',
- tertiary: '#84a59d',
- highlight: 'rgba(143, 159, 169, 0.15)',
- },
- darkMode: {
- light: '#1e1e21',
- lightgray: '#292629',
- gray: '#343434',
- darkgray: '#d4d4d4',
- dark: '#fbfffe',
- secondary: '#7b97aa',
- tertiary: '#84a59d',
- highlight: 'rgba(143, 159, 169, 0.15)',
- },
- }
- }
+const generalConfiguration: GlobalConfiguration = {
+ pageTitle: "🪴 Quartz 4.0",
+ enableSPA: true,
+ enablePopovers: true,
+ analytics: {
+ provider: 'plausible',
},
+ baseUrl: "quartz.jzhao.xyz",
+ ignorePatterns: ["private", "templates"],
+ theme: {
+ 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)',
+ },
+ darkMode: {
+ light: '#161618',
+ lightgray: '#393639',
+ gray: '#646464',
+ darkgray: '#d4d4d4',
+ dark: '#ebebec',
+ secondary: '#7b97aa',
+ tertiary: '#84a59d',
+ highlight: 'rgba(143, 159, 169, 0.15)',
+ },
+ }
+ }
+}
+
+const sharedPageComponents = {
+ head: Component.Head(),
+ header: [],
+ footer: Component.Footer({
+ links: {
+ "GitHub": "https://github.com/jackyzha0/quartz",
+ "Discord Community": "https://discord.gg/cRFFHYye7t"
+ }
+ })
+}
+
+const contentPageLayout: PageLayout = {
+ beforeBody: [
+ Component.ArticleTitle(),
+ Component.ReadingTime(),
+ Component.TagList(),
+ ],
+ left: [
+ Component.PageTitle(),
+ Component.MobileOnly(Component.Spacer()),
+ Component.Search(),
+ Component.Darkmode(),
+ Component.DesktopOnly(Component.TableOfContents()),
+ ],
+ right: [
+ Component.Graph(),
+ Component.Backlinks(),
+ ],
+}
+
+const listPageLayout: PageLayout = {
+ beforeBody: [
+ Component.ArticleTitle()
+ ],
+ left: [
+ Component.PageTitle(),
+ Component.MobileOnly(Component.Spacer()),
+ Component.Search(),
+ Component.Darkmode()
+ ],
+ right: [],
+}
+
+const config: QuartzConfig = {
+ configuration: generalConfiguration,
plugins: {
transformers: [
- new FrontMatter(),
- new Katex(),
- new Description(),
- new CreatedModifiedDate({
+ Plugin.FrontMatter(),
+ Plugin.TableOfContents(),
+ Plugin.CreatedModifiedDate({
priority: ['frontmatter', 'filesystem'] // you can add 'git' here for last modified from Git but this makes the build slower
}),
- new SyntaxHighlighting(),
- new GitHubFlavoredMarkdown(),
- new ObsidianFlavoredMarkdown(),
- new ResolveLinks(),
+ Plugin.SyntaxHighlighting(),
+ Plugin.ObsidianFlavoredMarkdown(),
+ Plugin.GitHubFlavoredMarkdown(),
+ Plugin.CrawlLinks({ markdownLinkResolution: 'shortest' }),
+ Plugin.Latex({ renderEngine: 'katex' }),
+ Plugin.Description(),
],
filters: [
- new RemoveDrafts()
+ Plugin.RemoveDrafts(),
],
emitters: [
- new ContentPage({
- Head: Head,
- Header: Header
- })
+ Plugin.AliasRedirects(),
+ Plugin.ContentPage({
+ ...sharedPageComponents,
+ ...contentPageLayout,
+ pageBody: Component.Content(),
+ }),
+ Plugin.FolderPage({
+ ...sharedPageComponents,
+ ...listPageLayout,
+ pageBody: Component.FolderContent(),
+ }),
+ Plugin.TagPage({
+ ...sharedPageComponents,
+ ...listPageLayout,
+ pageBody: Component.TagContent(),
+ }),
+ Plugin.ContentIndex({
+ enableSiteMap: true,
+ enableRSS: true,
+ }),
]
},
-})
+}
+
+export default config
--
Gitblit v1.10.0