From 08f8e3b4a4879dd7c91c16fbce80c4f2bc5e357f Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 10 Jul 2023 02:32:24 +0000
Subject: [PATCH] docs + various polish
---
quartz.config.ts | 147 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 109 insertions(+), 38 deletions(-)
diff --git a/quartz.config.ts b/quartz.config.ts
index e8246a2..237ab6f 100644
--- a/quartz.config.ts
+++ b/quartz.config.ts
@@ -1,36 +1,18 @@
-import { buildQuartz } from "./quartz"
-import Head from "./quartz/components/Head"
-import { ContentPage, CreatedModifiedDate, Description, FrontMatter, GitHubFlavoredMarkdown, Katex, RemoveDrafts } from "./quartz/plugins"
-import { LinkProcessing } from "./quartz/plugins/transformers/links"
+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"],
+const generalConfiguration: GlobalConfiguration = {
+ pageTitle: "🪴 Quartz 4.0",
+ enableSPA: true,
+ enablePopovers: true,
+ analytics: {
+ provider: 'plausible',
},
- plugins: {
- transformers: [
- new FrontMatter(),
- new GitHubFlavoredMarkdown(),
- new Katex(),
- new Description(),
- new CreatedModifiedDate({
- priority: ['frontmatter', 'filesystem'] // you can add 'git' here for last modified from Git but this makes the build slower
- }),
- new LinkProcessing()
- ],
- filters: [
- new RemoveDrafts()
- ],
- emitters: [
- new ContentPage({
- Head: Head
- })
- ]
- },
+ canonicalUrl: "quartz.jzhao.xyz",
+ ignorePatterns: ["private", "templates"],
theme: {
- typography: { // loaded from Google Fonts
+ typography: {
header: "Schibsted Grotesk",
body: "Source Sans Pro",
code: "IBM Plex Mono",
@@ -38,24 +20,113 @@
colors: {
lightMode: {
light: '#faf8f8',
- lightgray: '#e8e8e8',
- gray: '#dadada',
+ lightgray: '#e5e5e5',
+ gray: '#b8b8b8',
darkgray: '#4e4e4e',
- dark: '#141021',
+ dark: '#2b2b2b',
secondary: '#284b63',
tertiary: '#84a59d',
highlight: 'rgba(143, 159, 169, 0.15)',
},
darkMode: {
- light: '#1e1e21',
- lightgray: '#292629',
- gray: '#343434',
+ light: '#161618',
+ lightgray: '#393639',
+ gray: '#646464',
darkgray: '#d4d4d4',
- dark: '#fbfffe',
+ 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: [
+ 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
+ }),
+ Plugin.SyntaxHighlighting(),
+ Plugin.ObsidianFlavoredMarkdown(),
+ Plugin.GitHubFlavoredMarkdown(),
+ Plugin.CrawlLinks({ markdownLinkResolution: 'shortest' }),
+ Plugin.Latex({ renderEngine: 'katex' }),
+ Plugin.Description(),
+ ],
+ filters: [
+ Plugin.RemoveDrafts(),
+ ],
+ emitters: [
+ 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