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 locationlink-purger, removes links to pages that don’t exist post-filtering, style self-referenced linksportcullis, highly specific and tightly-controlled filter for which pages to publish1prev-next, add previous and next links to pages based on modified datetransform-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.
backlinks, cloned from GitHub - quartz-community/backlinks- modified title and added a question mark icon linking through to Backlinks to explain what they are
content-index, cloned from GitHub - quartz-community/content-index- filters RSS index posts based on a tag
- options allow specification of multiple RSS files
content-meta, cloned from GitHub - quartz-community/content-meta- formats modified and created date
- displays rating if one given
folder-pages, cloned from GitHub - quartz-community/folder-pages- extended to handle virtual pages such as Blog, Now and Commander’s Log.prop
footer, cloned from GitHub - quartz-community/footer- replacement footer component showing the information I want to include
recent-notes, cloned from GitHub - quartz-community/recent-notes- modified title and added standard RSS link icon which links to the Subscribe instructions
- filter to
blognotes only (I may remove this in the future) - indicates which notes have been modified
Filtering out links
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.tsfiles 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 toen-AUfor date formatting
Footnotes
-
Merging Public and Private Notes: Three Lines of Defence in Quartz 4, applies the same to Quartz 5. ↩