From 921f45cf7001a6af77cd0bf10f7fbf154eebabff Mon Sep 17 00:00:00 2001 From: threehymns <70611435+threehymns@users.noreply.github.com> Date: Tue, 24 Sep 2024 20:20:36 -0400 Subject: [PATCH] feat: add a config option for a pageTitleSuffix (#1320) * feat: add a config option for a pageTitleSuffix * Run Prettier on Head.tsx * Make pageTitleSuffix optional Co-authored-by: Aaron Pham --------- Co-authored-by: Aaron Pham --- docs/configuration.md | 1 + quartz.config.ts | 1 + quartz/cfg.ts | 1 + quartz/components/Head.tsx | 3 ++- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/configuration.md b/docs/configuration.md index 1dc114816..302d06730 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -21,6 +21,7 @@ const config: QuartzConfig = { This part of the configuration concerns anything that can affect the whole site. The following is a list breaking down all the things you can configure: - `pageTitle`: title of the site. This is also used when generating the [[RSS Feed]] for your site. +- `pageTitleSuffix`: a string added to the end of the page title. This only applies to the browser tab title, not the title shown at the top of the page. - `enableSPA`: whether to enable [[SPA Routing]] on your site. - `enablePopovers`: whether to enable [[popover previews]] on your site. - `analytics`: what to use for analytics on your site. Values can be diff --git a/quartz.config.ts b/quartz.config.ts index b6abbb2d3..e96ee4843 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -9,6 +9,7 @@ import * as Plugin from "./quartz/plugins" const config: QuartzConfig = { configuration: { pageTitle: "🪴 Quartz 4.0", + pageTitleSuffix: "", enableSPA: true, enablePopovers: true, analytics: { diff --git a/quartz/cfg.ts b/quartz/cfg.ts index 0c344d33a..9e93fd141 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -41,6 +41,7 @@ export type Analytics = export interface GlobalConfiguration { pageTitle: string + pageTitleSuffix?: string /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean /** Whether to display Wikipedia-style popovers when hovering over links */ diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index 46ba5e002..7b9815ca0 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -6,7 +6,8 @@ import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } fro export default (() => { const Head: QuartzComponent = ({ cfg, fileData, externalResources }: QuartzComponentProps) => { - const title = fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title + const title = + (fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title) + cfg.pageTitleSuffix const description = fileData.description?.trim() ?? i18n(cfg.locale).propertyDefaults.description const { css, js } = externalResources