From 31e0b7c6f802cfab7250b7e9dfb321b3889ef6ca Mon Sep 17 00:00:00 2001
From: David Fischer <david@konst.fish>
Date: Sat, 09 Nov 2024 09:44:32 +0000
Subject: [PATCH] feat(comments): conditional display via frontmatter (#1566)
---
quartz/components/Head.tsx | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx
index b49c385..cf79434 100644
--- a/quartz/components/Head.tsx
+++ b/quartz/components/Head.tsx
@@ -1,13 +1,16 @@
-import { i18n } from "../i18n/i18next"
-import { FullSlug, _stripSlashes, joinSegments, pathToRoot } from "../util/path"
-import { JSResourceToScriptElement } from "../util/resources"
-import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
+import { i18n } from "../i18n"
+import { FullSlug, joinSegments, pathToRoot } from "../util/path"
+import { CSSResourceToStyleElement, JSResourceToScriptElement } from "../util/resources"
+import { googleFontHref } from "../util/theme"
+import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
export default (() => {
- function Head({ cfg, fileData, externalResources }: QuartzComponentProps) {
- const title = fileData.frontmatter?.title ?? i18n(cfg.locale, "head.untitled")
+ const Head: QuartzComponent = ({ cfg, fileData, externalResources }: QuartzComponentProps) => {
+ const titleSuffix = cfg.pageTitleSuffix ?? ""
+ const title =
+ (fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title) + titleSuffix
const description =
- fileData.description?.trim() ?? i18n(cfg.locale, "head.noDescriptionProvided")
+ fileData.description?.trim() ?? i18n(cfg.locale).propertyDefaults.description
const { css, js } = externalResources
const url = new URL(`https://${cfg.baseUrl ?? "example.com"}`)
@@ -21,6 +24,13 @@
<head>
<title>{title}</title>
<meta charSet="utf-8" />
+ {cfg.theme.cdnCaching && cfg.theme.fontOrigin === "googleFonts" && (
+ <>
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
+ <link rel="preconnect" href="https://fonts.gstatic.com" />
+ <link rel="stylesheet" href={googleFontHref(cfg.theme)} />
+ </>
+ )}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
@@ -30,11 +40,7 @@
<link rel="icon" href={iconPath} />
<meta name="description" content={description} />
<meta name="generator" content="Quartz" />
- <link rel="preconnect" href="https://fonts.googleapis.com" />
- <link rel="preconnect" href="https://fonts.gstatic.com" />
- {css.map((href) => (
- <link key={href} href={href} rel="stylesheet" type="text/css" spa-preserve />
- ))}
+ {css.map((resource) => CSSResourceToStyleElement(resource, true))}
{js
.filter((resource) => resource.loadTime === "beforeDOMReady")
.map((res) => JSResourceToScriptElement(res, true))}
--
Gitblit v1.10.0