1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
| import { GlobalConfiguration, PageLayout, QuartzConfig } from "./quartz/cfg"
| import * as Component from "./quartz/components"
| import * as Plugin from "./quartz/plugins"
|
| 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: [
| 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,
| }),
| Plugin.Assets(),
| Plugin.Static(),
| ],
| },
| }
|
| export default config
|
|