This note records file changes made to the original Quartz code. It exists to help support changes between versions. Unfortunately to achieve the site design I want for The Quantum Garden Website some jiggery-pokery is required.

Plugin modifications

Custom plugins

  • additional-head, inserts information into <head> based on a page’s needs and copies my static files to their final location
  • link-purger, removes links to pages that don’t exist post-filtering, style self-referenced links
  • portcullis, highly specific and tightly-controlled filter for which pages to publish1
  • prev-next, add previous and next links to pages based on modified date
  • transform-tags, modifies incoming tags for simplification and renaming

Community plugin modifications

For these modifications I clone the original repository, remove the plugin from quartz.config.yaml, then add it back in as a local link to my version. The remote upstream is set to the remote origin, then the remote origin is removed. Doing so allows me to pull updates and stops git wanting me to upload my changes.

Both content-index and link-purger call sanitiser which parses the HTML that will be generated and removes all links to pages that do not exist after filtering. A detailed explanation of why this occurs can be found in Merging Public and Private Notes: Three Lines of Defence in Quartz 4. The plugin architecture prevents me sharing code across plugin modules so the sanitiser code is inserted into the plugin source code by way of symbolic link.

Base code changes

Root footer

All modified files exist within ~/quartz/quartz.

Ignoring index.ts files

There are many index.ts files created to hold the system together. There is no value in listing them below. It’s self-evident when they need to be modified.

  • Australian locale
    • i18n/locales/en-AU.ts, created to allow reference to en-AU for date formatting

Footnotes

  1. Merging Public and Private Notes: Three Lines of Defence in Quartz 4, applies the same to Quartz 5.