threehymns
2024-09-25 921f45cf7001a6af77cd0bf10f7fbf154eebabff
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 <Aaronpham0103@gmail.com>

---------

Co-authored-by: Aaron Pham <Aaronpham0103@gmail.com>
4 files modified
6 ■■■■ changed files
docs/configuration.md 1 ●●●● patch | view | raw | blame | history
quartz.config.ts 1 ●●●● patch | view | raw | blame | history
quartz/cfg.ts 1 ●●●● patch | view | raw | blame | history
quartz/components/Head.tsx 3 ●●●● patch | view | raw | blame | history
docs/configuration.md
@@ -21,6 +21,7 @@
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
quartz.config.ts
@@ -9,6 +9,7 @@
const config: QuartzConfig = {
  configuration: {
    pageTitle: "🪴 Quartz 4.0",
    pageTitleSuffix: "",
    enableSPA: true,
    enablePopovers: true,
    analytics: {
quartz/cfg.ts
@@ -41,6 +41,7 @@
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 */
quartz/components/Head.tsx
@@ -6,7 +6,8 @@
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