| | |
| | | import { PageLayout, QuartzConfig } from "./quartz/cfg" |
| | | 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: [ |
| | | Component.PageTitle(), |
| | | Component.Spacer(), |
| | | Component.Search(), |
| | | Component.Darkmode() |
| | | ], |
| | | header: [], |
| | | footer: Component.Footer({ |
| | | authorName: "Jacky", |
| | | links: { |
| | | "GitHub": "https://github.com/jackyzha0", |
| | | "Twitter": "https://twitter.com/_jzhao" |
| | | } |
| | | }) |
| | | GitHub: "https://github.com/jackyzha0/quartz", |
| | | "Discord Community": "https://discord.gg/cRFFHYye7t", |
| | | }, |
| | | }), |
| | | } |
| | | |
| | | const contentPageLayout: PageLayout = { |
| | | beforeBody: [ |
| | | Component.ArticleTitle(), |
| | | Component.ReadingTime(), |
| | | Component.TagList(), |
| | | beforeBody: [Component.ArticleTitle(), Component.ReadingTime(), Component.TagList()], |
| | | left: [ |
| | | Component.PageTitle(), |
| | | Component.MobileOnly(Component.Spacer()), |
| | | Component.Search(), |
| | | Component.Darkmode(), |
| | | Component.DesktopOnly(Component.TableOfContents()), |
| | | ], |
| | | left: [], |
| | | right: [ |
| | | Component.Graph(), |
| | | Component.TableOfContents(), |
| | | Component.Backlinks() |
| | | ], |
| | | right: [Component.Graph(), Component.Backlinks()], |
| | | } |
| | | |
| | | const listPageLayout: PageLayout = { |
| | | beforeBody: [ |
| | | Component.ArticleTitle() |
| | | beforeBody: [Component.ArticleTitle()], |
| | | left: [ |
| | | Component.PageTitle(), |
| | | Component.MobileOnly(Component.Spacer()), |
| | | Component.Search(), |
| | | Component.Darkmode(), |
| | | ], |
| | | left: [], |
| | | right: [], |
| | | } |
| | | |
| | | const config: QuartzConfig = { |
| | | configuration: { |
| | | pageTitle: "🪴 Quartz 4.0", |
| | | enableSPA: true, |
| | | enablePopovers: true, |
| | | canonicalUrl: "quartz.jzhao.xyz", |
| | | 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: '#161618', |
| | | lightgray: '#292629', |
| | | gray: '#343434', |
| | | darkgray: '#d4d4d4', |
| | | dark: '#fbfffe', |
| | | secondary: '#7b97aa', |
| | | tertiary: '#84a59d', |
| | | highlight: 'rgba(143, 159, 169, 0.15)', |
| | | }, |
| | | } |
| | | } |
| | | }, |
| | | 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 |
| | | 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(), |
| | | Plugin.SyntaxHighlighting(), |
| | | Plugin.Katex(), |
| | | Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }), |
| | | Plugin.Latex({ renderEngine: "katex" }), |
| | | Plugin.Description(), |
| | | ], |
| | | filters: [ |
| | | Plugin.RemoveDrafts(), |
| | | ], |
| | | filters: [Plugin.RemoveDrafts()], |
| | | emitters: [ |
| | | Plugin.AliasRedirects(), |
| | | Plugin.ComponentResources({ fontOrigin: "googleFonts" }), |
| | | Plugin.ContentPage({ |
| | | ...sharedPageComponents, |
| | | ...contentPageLayout, |
| | | pageBody: Component.Content(), |
| | | }), |
| | | Plugin.TagPage({ |
| | | ...sharedPageComponents, |
| | | ...listPageLayout, |
| | | pageBody: Component.TagContent(), |
| | | }), |
| | | Plugin.FolderPage({ |
| | | ...sharedPageComponents, |
| | | ...listPageLayout, |
| | | pageBody: Component.FolderContent(), |
| | | }), |
| | | Plugin.TagPage({ |
| | | ...sharedPageComponents, |
| | | ...listPageLayout, |
| | | pageBody: Component.TagContent(), |
| | | }), |
| | | Plugin.ContentIndex({ |
| | | enableSiteMap: true, |
| | | enableRSS: true, |
| | | }), |
| | | ] |
| | | Plugin.Assets({ attachmentsFolder: "attachments" }), |
| | | Plugin.Static(), |
| | | ], |
| | | }, |
| | | } |
| | | |