mirror of
https://github.com/jackyzha0/quartz.git
synced 2026-07-22 03:00:29 +00:00
Merge branch 'v5' into v5
This commit is contained in:
commit
08ef5ad5ac
18 changed files with 438 additions and 117 deletions
2
.github/workflows/build-preview.yaml
vendored
2
.github/workflows/build-preview.yaml
vendored
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
run: npx quartz build -d docs -v
|
||||
|
||||
- name: Upload build artifact
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: preview-build
|
||||
path: public
|
||||
|
|
|
|||
2
.github/workflows/deploy-preview.yaml
vendored
2
.github/workflows/deploy-preview.yaml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
name: Deploy Preview to Cloudflare Pages
|
||||
steps:
|
||||
- name: Download build artifact
|
||||
uses: actions/download-artifact@v7
|
||||
uses: actions/download-artifact@v8
|
||||
id: preview-build-artifact
|
||||
with:
|
||||
name: preview-build
|
||||
|
|
|
|||
16
.github/workflows/docker-build-push.yaml
vendored
16
.github/workflows/docker-build-push.yaml
vendored
|
|
@ -25,11 +25,11 @@ jobs:
|
|||
with:
|
||||
fetch-depth: 1
|
||||
- name: Inject slug/short variables
|
||||
uses: rlespinasse/github-slug-action@v5.4.0
|
||||
uses: rlespinasse/github-slug-action@v5.6.0
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v4
|
||||
with:
|
||||
install: true
|
||||
driver-opts: |
|
||||
|
|
@ -37,9 +37,9 @@ jobs:
|
|||
network=host
|
||||
- name: Install cosign
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: sigstore/cosign-installer@v4.0.0
|
||||
uses: sigstore/cosign-installer@v4.1.2
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
registry: ghcr.io
|
||||
|
|
@ -49,7 +49,7 @@ jobs:
|
|||
- name: Extract metadata tags and labels on PRs
|
||||
if: github.event_name == 'pull_request'
|
||||
id: meta-pr
|
||||
uses: docker/metadata-action@v5
|
||||
uses: docker/metadata-action@v6
|
||||
with:
|
||||
images: ghcr.io/${{ env.OWNER_LOWERCASE }}/quartz
|
||||
tags: |
|
||||
|
|
@ -59,7 +59,7 @@ jobs:
|
|||
- name: Extract metadata tags and labels for main, release or tag
|
||||
if: github.event_name != 'pull_request'
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
uses: docker/metadata-action@v6
|
||||
with:
|
||||
flavor: |
|
||||
latest=auto
|
||||
|
|
@ -76,7 +76,7 @@ jobs:
|
|||
|
||||
- name: Build and push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
build-args: |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
FROM node:22-slim AS builder
|
||||
|
||||
# install git to install plugins
|
||||
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY package.json .
|
||||
COPY package-lock.json* .
|
||||
|
|
|
|||
|
|
@ -298,3 +298,6 @@ const config = await loadQuartzConfig({
|
|||
export default config
|
||||
export const layout = await loadQuartzLayout()
|
||||
```
|
||||
|
||||
> [!tip]
|
||||
> For per-heading font control, self-hosted fonts, or Obsidian theme font bridging, see the [[plugins/Fonts|Fonts]] plugin. It can download Google Fonts at build time and serve them locally with `fontOrigin: selfHosted`, making your site fully self-contained.
|
||||
|
|
|
|||
|
|
@ -6,15 +6,23 @@ This guide walks you through setting up Quartz from scratch. If you already ran
|
|||
|
||||
## Prerequisites
|
||||
|
||||
You need these tools installed before continuing:
|
||||
|
||||
- **[Node.js](https://nodejs.org/) v22 or later** (run `node -v` to check)
|
||||
- **npm v10.9.2 or later** (bundled with Node — run `npm -v` to check)
|
||||
- **[Git](https://git-scm.com/)** (run `git -v` to check)
|
||||
|
||||
> [!warning] Common issues
|
||||
>
|
||||
> - **Linux**: System packages (`apt install nodejs`) often ship much older versions. Use [nvm](https://github.com/nvm-sh/nvm) or the [NodeSource](https://github.com/nodesource/distributions) repository to get Node.js v22.
|
||||
> - **Windows**: When installing Git, make sure **"Git from the command line and also from 3rd-party software"** is selected so that `git` is available in your terminal. If `node -v` or `git -v` shows "command not found", restart your terminal or check your PATH.
|
||||
> - **macOS**: The Xcode command-line tools include Git (`xcode-select --install`). For Node.js, [nvm](https://github.com/nvm-sh/nvm) or the [official installer](https://nodejs.org/) both work.
|
||||
|
||||
## Setup Steps
|
||||
|
||||
Follow these in order:
|
||||
|
||||
1. **[[installation|Installation]]** — Clone Quartz, install dependencies, run the setup wizard (`npx quartz create`), install plugins, and preview your site locally
|
||||
1. **[[installation|Installation]]** — Get Quartz (via GitHub template or clone), install dependencies, run the setup wizard (`npx quartz create`), install plugins, and preview your site locally
|
||||
2. **[[authoring-content|Authoring Content]]** — Write and organize your Markdown notes in the `content/` folder
|
||||
3. **[[installation#Setting Up Your GitHub Repository|Push to GitHub]]** — Create a repository and push your site with `npx quartz sync`
|
||||
4. **[[hosting|Deploy]]** — Host your site for free on GitHub Pages, Cloudflare, Netlify, or Vercel
|
||||
|
|
|
|||
|
|
@ -4,15 +4,38 @@ aliases:
|
|||
- "setting up your GitHub repository"
|
||||
---
|
||||
|
||||
This page walks you through the full Quartz setup: from cloning the repository to previewing your site locally, then pushing it to GitHub.
|
||||
This page walks you through the full Quartz setup: from getting the source code to previewing your site locally, then pushing it to GitHub.
|
||||
|
||||
## 1. Clone Quartz
|
||||
## 1. Get Quartz
|
||||
|
||||
There are two ways to get started. Pick whichever you prefer:
|
||||
|
||||
### Option A: Use the GitHub Template (Recommended)
|
||||
|
||||
> [!tip] Why this option?
|
||||
> Using the template creates your own repository in one click — no need to reconfigure Git remotes later.
|
||||
|
||||
1. Go to the [Quartz repository](https://github.com/jackyzha0/quartz) and click **Use this template** → **Create a new repository**
|
||||
2. Give your repository a name (e.g. `quartz`, `notes`, `garden`), choose public or private, then click **Create repository**
|
||||
3. Clone **your new repository** and enter the folder:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/<your-username>/<your-repo>.git
|
||||
cd <your-repo>
|
||||
```
|
||||
|
||||
### Option B: Clone Directly
|
||||
|
||||
If you don't use GitHub or prefer a manual setup:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/jackyzha0/quartz.git
|
||||
cd quartz
|
||||
```
|
||||
|
||||
> [!note]
|
||||
> With this option, you'll need to [[#Connect Your Local Clone|point the `origin` remote]] to your own repository later when you're ready to publish.
|
||||
|
||||
## 2. Install Dependencies
|
||||
|
||||
> [!important]
|
||||
|
|
@ -78,11 +101,14 @@ At this point you can [[authoring-content|start writing content]] in the `conten
|
|||
|
||||
## Setting Up Your GitHub Repository
|
||||
|
||||
To publish your site, you'll need your own GitHub repository.
|
||||
> [!note]
|
||||
> If you used **Option A** (GitHub Template) in step 1, your repository already exists and `origin` is already set. You can skip straight to [[#Push Your Site]].
|
||||
|
||||
To publish your site, you'll need your own GitHub repository. This section is for **Option B** (direct clone) users.
|
||||
|
||||
### Create the Repository
|
||||
|
||||
Create a new repository on [GitHub.com](https://github.com/new). Do **not** initialize it with a README, license, or `.gitignore` — the Quartz clone already has these.
|
||||
Create a new repository on [GitHub.com](https://github.com/new). Do **not** initialize it with a README, license, or `.gitignore` — Quartz already includes these files, and duplicating them will cause merge conflicts on your first push.
|
||||
|
||||
![[github-init-repo-options.png]]
|
||||
|
||||
|
|
@ -100,11 +126,11 @@ git remote -v
|
|||
|
||||
# Point origin to your repository
|
||||
git remote set-url origin REMOTE-URL
|
||||
|
||||
# Add the official Quartz repo as upstream (for future upgrades)
|
||||
git remote add upstream https://github.com/jackyzha0/quartz.git
|
||||
```
|
||||
|
||||
> [!tip]
|
||||
> You don't need to add an `upstream` remote manually — `npx quartz create` already configured it for you. The upstream remote is used by `npx quartz upgrade` to pull in future Quartz updates.
|
||||
|
||||
### Push Your Site
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -87,6 +87,26 @@ Key changes:
|
|||
- **Import pattern**: Community plugins use `ExternalPlugin.X()` (from `.quartz/plugins`) instead of `Plugin.X()` (from `./quartz/plugins`)
|
||||
- **Layout structure**: `quartz.layout.ts` is gone — layout position is now a per-plugin property in `quartz.config.yaml`
|
||||
- **Page types**: A new plugin category for page rendering (content, folder, tag pages)
|
||||
- **URL casing**: All generated URLs are now lowercased and hyphenated (e.g. `My Notes/Hello World.md` → `/my-notes/hello-world`). In v4, the original casing of file and folder names was preserved in URLs.
|
||||
|
||||
### URL Casing and SEO
|
||||
|
||||
If your v4 site had URLs with uppercase letters, those URLs will return 404 errors after upgrading to v5. This also affects search engine indexing, since Google treats URLs as [case-sensitive](https://developers.google.com/search/docs/crawling-indexing/url-structure).
|
||||
|
||||
The [[AliasRedirects]] plugin (enabled by default) automatically handles this. During build, it detects files whose original path contained uppercase characters and generates redirect pages at the old URLs. These redirect pages include proper SEO signals (`<link rel="canonical">`, `<meta http-equiv="refresh">`, `<meta name="robots" content="noindex">`) so that search engines transfer ranking to the new lowercase URLs.
|
||||
|
||||
No manual configuration is needed — the plugin is enabled by default and the case redirect behavior is on by default. If you want to disable it, set `enableCaseRedirects: false` in the plugin options:
|
||||
|
||||
```yaml title="quartz.config.yaml"
|
||||
plugins:
|
||||
- source: github:quartz-community/alias-redirects
|
||||
enabled: true
|
||||
options:
|
||||
enableCaseRedirects: false
|
||||
```
|
||||
|
||||
> [!tip] Hosting on Netlify?
|
||||
> Netlify automatically lowercases all URLs and issues server-side 301 redirects. If you're hosting on Netlify, the case redirect pages aren't strictly necessary, but they don't hurt either.
|
||||
|
||||
> [!note] Most users don't need to worry about these details
|
||||
> If you used the default Quartz 4 configuration (or only changed settings that `npx quartz create` prompts for), the setup wizard handles everything. The details below are for users who had custom plugin configurations.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,10 @@ Quartz is a fast, batteries-included static-site generator that transforms Markd
|
|||
|
||||
## 🪴 Get Started
|
||||
|
||||
Quartz requires **at least [Node](https://nodejs.org/) v22** and `npm` v10.9.2 to function correctly. Ensure you have these installed on your machine before continuing.
|
||||
Quartz requires **at least [Node](https://nodejs.org/) v22** and `npm` v10.9.2 to function correctly. Ensure you have these installed on your machine before continuing. See the [[getting-started/index#Prerequisites|prerequisites]] for help installing them.
|
||||
|
||||
> [!tip] GitHub users
|
||||
> You can also use the **[GitHub template](https://github.com/jackyzha0/quartz/generate)** to create your repository in one click, then clone that instead. See [[installation#Option A Use the GitHub Template Recommended|Option A]] in the installation guide.
|
||||
|
||||
```shell
|
||||
# 1. Clone the Quartz repository
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: AliasRedirects
|
||||
description: Generates redirect pages from frontmatter aliases.
|
||||
description: Generates redirect pages from frontmatter aliases and case-preserving URLs.
|
||||
tags:
|
||||
- plugin/emitter
|
||||
image: https://images.unsplash.com/photo-1601735479770-bb5de9dbe844
|
||||
|
|
@ -9,31 +9,56 @@ enabled: true
|
|||
required: false
|
||||
---
|
||||
|
||||
This plugin emits HTML redirect pages for aliases and permalinks defined in the frontmatter of content files.
|
||||
This plugin emits HTML redirect pages so that old URLs redirect to the canonical page. It handles two types of redirects:
|
||||
|
||||
For example, A `foo.md` has the following frontmatter
|
||||
1. **Frontmatter aliases**: Redirect pages for aliases defined in your content's frontmatter.
|
||||
2. **Case-preserving redirects**: Automatic redirect pages for URLs that changed due to Quartz v5's lowercase slug normalization.
|
||||
|
||||
### Frontmatter Aliases
|
||||
|
||||
If `foo.md` has the following frontmatter:
|
||||
|
||||
```md title="foo.md"
|
||||
---
|
||||
title: "Foo"
|
||||
alias:
|
||||
aliases:
|
||||
- "bar"
|
||||
---
|
||||
```
|
||||
|
||||
The target `host.me/bar` will be redirected to `host.me/foo`
|
||||
The target `host.me/bar` will be permanently redirected to `host.me/foo`.
|
||||
|
||||
Note that these are permanent redirect.
|
||||
|
||||
The emitter supports the following aliases:
|
||||
The emitter supports the following frontmatter fields:
|
||||
|
||||
- `aliases`
|
||||
- `alias`
|
||||
|
||||
### Case-Preserving Redirects
|
||||
|
||||
Quartz v5 normalizes all URLs to lowercase. If you are migrating from v4 (which preserved the original casing), previously indexed URLs containing uppercase letters (e.g. `/Diary/My-Note`) would return 404 errors.
|
||||
|
||||
When `enableCaseRedirects` is enabled (the default), this plugin automatically detects files whose original path differs from the lowercased slug and generates redirect pages at the original-case URL. For example, if your content directory contains `Diary/2026-01-01.md`, the plugin generates:
|
||||
|
||||
- The canonical page at `/diary/2026-01-01` (produced by the normal build)
|
||||
- A redirect page at `/Diary/2026-01-01` (produced by this plugin)
|
||||
|
||||
The redirect page includes proper SEO signals:
|
||||
|
||||
- `<meta http-equiv="refresh" content="0; url=...">` for an instant redirect
|
||||
- `<link rel="canonical">` pointing to the lowercase URL
|
||||
- `<meta name="robots" content="noindex">` to prevent duplicate indexing
|
||||
|
||||
This preserves search engine rankings and ensures inbound links continue to work.
|
||||
|
||||
> [!note]
|
||||
> Case-preserving redirects have no effect on case-insensitive filesystems (macOS, Windows) where the server already resolves either casing to the same file. The plugin automatically detects the filesystem type and skips redirect generation when unnecessary.
|
||||
|
||||
> [!note]
|
||||
> For information on how to add, remove or configure plugins, see the [[configuration#Plugins|Configuration]] page.
|
||||
|
||||
This plugin has no configuration options.
|
||||
This plugin accepts the following configuration options:
|
||||
|
||||
- `enableCaseRedirects`: If `true` (default), automatically generates redirect pages for URLs that changed casing due to v5's lowercase normalization. Set to `false` to disable this behavior.
|
||||
|
||||
## API
|
||||
|
||||
|
|
|
|||
226
docs/plugins/Fonts.md
Normal file
226
docs/plugins/Fonts.md
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
---
|
||||
title: Fonts
|
||||
description: Fine-grained font control with per-heading support, Google Fonts integration, and theme font discovery.
|
||||
tags:
|
||||
- plugin/transformer
|
||||
- plugin/emitter
|
||||
image:
|
||||
repository: "[quartz-community/fonts](https://github.com/quartz-community/fonts)"
|
||||
enabled: true
|
||||
required: false
|
||||
---
|
||||
|
||||
This plugin provides fine-grained control over fonts in your Quartz site. It supports per-heading font families, automatic theme font discovery when used with [Quartz Themes](https://github.com/saberzero1/quartz-themes), Google Fonts integration with automatic weight and italic loading, and falls back to Obsidian's default system font stacks.
|
||||
|
||||
> [!note]
|
||||
> For information on how to add, remove or configure plugins, see the [[configuration#Plugins|Configuration]] page.
|
||||
|
||||
## Why use Fonts?
|
||||
|
||||
Quartz uses three CSS variables for fonts: `--headerFont`, `--bodyFont`, and `--codeFont`. Obsidian themes use a different system with per-heading variables (`--h1-font` through `--h6-font`), `--font-text`, and `--font-monospace`. These two systems don't bridge correctly, causing heading fonts to not render as themes intend.
|
||||
|
||||
Fonts solves this by:
|
||||
|
||||
1. Bridging the Obsidian and Quartz font systems
|
||||
2. Emitting **unlayered** CSS that correctly overrides Quartz's base heading styles
|
||||
3. Providing per-heading font control that neither system offers alone
|
||||
4. Optionally loading fonts from Google Fonts with fine-grained weight and italic control
|
||||
|
||||
## Configuration
|
||||
|
||||
Font options accept either a CSS font-family string or an object with Google Fonts loading control:
|
||||
|
||||
```yaml
|
||||
# String form
|
||||
body: '"Inter", sans-serif'
|
||||
|
||||
# Object form (for Google Fonts weight/italic control)
|
||||
body:
|
||||
name: Inter
|
||||
weights: [400, 600, 700]
|
||||
includeItalic: true
|
||||
```
|
||||
|
||||
This plugin accepts the following configuration options:
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| --------------- | ------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| `title` | `FontSpecification` | `header` value | Font family for the site title. |
|
||||
| `body` | `FontSpecification` | Obsidian default | Font family for body text. |
|
||||
| `header` | `FontSpecification` | Obsidian default | Default font family for all headings (h1-h6). |
|
||||
| `code` | `FontSpecification` | Obsidian default | Font family for code and monospace elements. |
|
||||
| `interface` | `FontSpecification` | Obsidian default | Font family for UI elements. |
|
||||
| `h1` – `h6` | `FontSpecification` | `header` value | Per-heading font family overrides. |
|
||||
| `useThemeFonts` | `boolean` | `true` | Use fonts from [Quartz Themes](https://github.com/saberzero1/quartz-themes) as defaults when it is installed. |
|
||||
| `fontOrigin` | `string` | `"googleFonts"` | `"googleFonts"` to load from Google Fonts CDN, `"selfHosted"` to download and serve locally, `"local"` for no loading. |
|
||||
|
||||
### Default options
|
||||
|
||||
```yaml title="quartz.config.yaml"
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
useThemeFonts: true
|
||||
fontOrigin: googleFonts
|
||||
```
|
||||
|
||||
### Font resolution
|
||||
|
||||
Fonts are resolved using a priority chain:
|
||||
|
||||
```
|
||||
User config (plugin options)
|
||||
→ Theme fonts (from Quartz Themes, if installed)
|
||||
→ Obsidian defaults (system font stacks)
|
||||
```
|
||||
|
||||
For individual headings:
|
||||
|
||||
```
|
||||
h1 option → header option → theme --h1-font → theme font → Obsidian default
|
||||
```
|
||||
|
||||
For the site title:
|
||||
|
||||
```
|
||||
title option → header option → theme font → Obsidian default
|
||||
```
|
||||
|
||||
## Usage with Quartz Themes
|
||||
|
||||
When [Quartz Themes](https://github.com/saberzero1/quartz-themes) is installed and enabled, Fonts automatically discovers the theme's font metadata and uses it as defaults. Any options you explicitly set in Fonts will override the theme fonts.
|
||||
|
||||
Fonts must run **after** Quartz Themes. This is handled automatically by plugin ordering (Quartz Themes = 10, Fonts = 60).
|
||||
|
||||
> [!warning]
|
||||
> If Quartz Themes is enabled but hasn't run yet when Fonts executes, you'll see a warning in the console. Make sure Quartz Themes has a lower `defaultOrder` than Fonts.
|
||||
|
||||
## Usage without Quartz Themes
|
||||
|
||||
Fonts works standalone. Without a theme, it falls back to Obsidian's default system font stacks. You can set fonts explicitly via the plugin options.
|
||||
|
||||
## Examples
|
||||
|
||||
```yaml title="quartz.config.yaml"
|
||||
# Use theme fonts automatically (default behavior)
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
|
||||
# Override just the heading font
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
header: '"Playfair Display", serif'
|
||||
|
||||
# Full control with per-heading fonts
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
body: '"Inter", sans-serif'
|
||||
header: '"Playfair Display", serif'
|
||||
code: '"JetBrains Mono", monospace'
|
||||
h1: '"Playfair Display", serif'
|
||||
h2: '"Lora", serif'
|
||||
|
||||
# Load from Google Fonts automatically
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
fontOrigin: googleFonts
|
||||
body: Inter
|
||||
header: Playfair Display
|
||||
code: JetBrains Mono
|
||||
|
||||
# Google Fonts with weight/italic control
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
fontOrigin: googleFonts
|
||||
body:
|
||||
name: Inter
|
||||
weights: [400, 600, 700]
|
||||
includeItalic: true
|
||||
header:
|
||||
name: Playfair Display
|
||||
weights: [400, 700]
|
||||
code:
|
||||
name: JetBrains Mono
|
||||
weights: [400]
|
||||
|
||||
# Custom title font (separate from header)
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
fontOrigin: googleFonts
|
||||
title: Abril Fatface
|
||||
header: Playfair Display
|
||||
body: Inter
|
||||
code: JetBrains Mono
|
||||
|
||||
# Self-hosted fonts (downloaded at build time, no external requests)
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
fontOrigin: selfHosted
|
||||
body: Inter
|
||||
header: Playfair Display
|
||||
code: JetBrains Mono
|
||||
|
||||
# Ignore theme fonts entirely
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
useThemeFonts: false
|
||||
body: '"Inter", sans-serif'
|
||||
```
|
||||
|
||||
## Self-Hosted Fonts
|
||||
|
||||
When `fontOrigin: selfHosted` is set, Fonts downloads fonts from Google Fonts during the build and serves them from your site's `static/fonts/` directory. This makes your site fully self-contained with no external requests to Google at runtime.
|
||||
|
||||
At build time, the plugin:
|
||||
|
||||
1. Fetches the Google Fonts CSS for your configured fonts
|
||||
2. Downloads each font file (`.woff2`, `.woff`, etc.)
|
||||
3. Writes the font files to `static/fonts/` in your build output
|
||||
4. Generates a `quartz-fonts.css` file with `@font-face` rules pointing to the local files
|
||||
|
||||
> [!note]
|
||||
> Self-hosted fonts require `baseUrl` to be set in your Quartz configuration, since font URLs in the CSS need an absolute path.
|
||||
|
||||
```yaml title="quartz.config.yaml"
|
||||
configuration:
|
||||
baseUrl: "example.com"
|
||||
|
||||
plugins:
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
fontOrigin: selfHosted
|
||||
body: Inter
|
||||
header: Playfair Display
|
||||
code: JetBrains Mono
|
||||
```
|
||||
|
||||
## Google Fonts Validation
|
||||
|
||||
When `fontOrigin: googleFonts` is set and the optional [`google-font-metadata`](https://www.npmjs.com/package/google-font-metadata) package is installed, Fonts validates your font configuration at build time:
|
||||
|
||||
- Checks that font family names exist in Google Fonts.
|
||||
- Warns if requested weights are not available for a font.
|
||||
- Warns if italic is requested but the font doesn't support it.
|
||||
|
||||
Install it to enable validation:
|
||||
|
||||
```bash
|
||||
npm install google-font-metadata
|
||||
```
|
||||
|
||||
Validation warnings are logged to the console but do not block the build.
|
||||
|
||||
## API
|
||||
|
||||
- Category: Transformer, Emitter
|
||||
- Function name: `ExternalPlugin.Fonts()` (transformer), `ExternalPlugin.FontsEmitter()` (emitter).
|
||||
- Source: [`quartz-community/fonts`](https://github.com/quartz-community/fonts)
|
||||
- Install: `npx quartz plugin add github:quartz-community/fonts`
|
||||
|
|
@ -98,6 +98,8 @@ plugins:
|
|||
- source: github:quartz-community/roam
|
||||
enabled: false
|
||||
order: 92
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
|
|
|
|||
172
quartz.lock.json
172
quartz.lock.json
|
|
@ -4,206 +4,200 @@
|
|||
"alias-redirects": {
|
||||
"source": "github:quartz-community/alias-redirects",
|
||||
"resolved": "https://github.com/quartz-community/alias-redirects.git",
|
||||
"commit": "c46bc82fb9c93612902de6ab6880d28d7789b471",
|
||||
"installedAt": "2026-05-27T00:28:17.635Z"
|
||||
"commit": "73a98dda7e4f55239310833299d91daf8611349f",
|
||||
"installedAt": "2026-06-09T17:57:45.809Z"
|
||||
},
|
||||
"article-title": {
|
||||
"source": "github:quartz-community/article-title",
|
||||
"resolved": "https://github.com/quartz-community/article-title.git",
|
||||
"commit": "5c5f7c702c4f56c95cee881d5440ec21a8970ba8",
|
||||
"installedAt": "2026-05-27T00:28:29.892Z"
|
||||
"commit": "e608ca815e137e22b598094f735bcd8a481dafaa",
|
||||
"installedAt": "2026-06-03T13:32:35.204Z"
|
||||
},
|
||||
"backlinks": {
|
||||
"source": "github:quartz-community/backlinks",
|
||||
"resolved": "https://github.com/quartz-community/backlinks.git",
|
||||
"commit": "51c8954108ec68a0293dc7924af703ae59c78f5a",
|
||||
"installedAt": "2026-05-27T00:28:28.670Z"
|
||||
"commit": "7490f921b7bd974c3f2f985ad3744b06160827d6",
|
||||
"installedAt": "2026-06-03T13:32:35.225Z"
|
||||
},
|
||||
"bases-page": {
|
||||
"source": "github:quartz-community/bases-page",
|
||||
"resolved": "https://github.com/quartz-community/bases-page.git",
|
||||
"commit": "ec5711f91e40b1e8477a101f6e2604926e4f0222",
|
||||
"installedAt": "2026-05-26T16:15:16.668Z"
|
||||
"commit": "f8fc7da3515a4d4bbe0bd4be0fd9188823866a01",
|
||||
"installedAt": "2026-06-03T13:32:35.344Z"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
"source": "github:quartz-community/breadcrumbs",
|
||||
"resolved": "https://github.com/quartz-community/breadcrumbs.git",
|
||||
"commit": "2f7ec9a7ef80ad5128d18205548f1132a2cf150a",
|
||||
"installedAt": "2026-05-27T00:28:33.099Z"
|
||||
"commit": "cf2e161425165e1ac713f1feb7250b07fe0250ae",
|
||||
"installedAt": "2026-06-03T13:32:35.270Z"
|
||||
},
|
||||
"canvas-page": {
|
||||
"source": "github:quartz-community/canvas-page",
|
||||
"resolved": "https://github.com/quartz-community/canvas-page.git",
|
||||
"commit": "2e6d05ce087cf9b6de4dc9fa72590a3047170daa",
|
||||
"installedAt": "2026-05-27T00:28:24.239Z"
|
||||
},
|
||||
"obsidian-plugin-excalidraw": {
|
||||
"source": "github:quartz-community/obsidian-plugin-excalidraw",
|
||||
"resolved": "https://github.com/quartz-community/obsidian-plugin-excalidraw.git",
|
||||
"commit": "main",
|
||||
"installedAt": "2026-05-27T09:24:00.000Z"
|
||||
"commit": "84fc96799671a65f76b66e30217dbefdd43a2905",
|
||||
"installedAt": "2026-06-03T13:32:35.291Z"
|
||||
},
|
||||
"citations": {
|
||||
"source": "github:quartz-community/citations",
|
||||
"resolved": "https://github.com/quartz-community/citations.git",
|
||||
"commit": "2ad133a123c5b15b7c41d4fb684d422622113081",
|
||||
"installedAt": "2026-05-27T00:28:05.822Z"
|
||||
"installedAt": "2026-06-03T13:16:37.060Z"
|
||||
},
|
||||
"cname": {
|
||||
"source": "github:quartz-community/cname",
|
||||
"resolved": "https://github.com/quartz-community/cname.git",
|
||||
"commit": "ec4c81c91da13a6f6c2cbe1656daf5c14575dab3",
|
||||
"installedAt": "2026-05-27T00:28:20.261Z"
|
||||
"installedAt": "2026-06-03T13:16:37.301Z"
|
||||
},
|
||||
"comments": {
|
||||
"source": "github:quartz-community/comments",
|
||||
"resolved": "https://github.com/quartz-community/comments.git",
|
||||
"commit": "278115200a9bacfc0ee4695b200a5843d15517f3",
|
||||
"installedAt": "2026-05-27T00:28:33.428Z"
|
||||
"commit": "42c5023e42cf62495219095a862b2ea144b65600",
|
||||
"installedAt": "2026-06-03T13:32:35.236Z"
|
||||
},
|
||||
"content-index": {
|
||||
"source": "github:quartz-community/content-index",
|
||||
"resolved": "https://github.com/quartz-community/content-index.git",
|
||||
"commit": "34621a71940977a6af6b20abd5dc552d81181b6b",
|
||||
"installedAt": "2026-05-27T00:28:19.086Z"
|
||||
"commit": "c3d4f5c85311712c3355cd71da46b28e2d8eba71",
|
||||
"installedAt": "2026-06-03T13:32:35.431Z"
|
||||
},
|
||||
"content-meta": {
|
||||
"source": "github:quartz-community/content-meta",
|
||||
"resolved": "https://github.com/quartz-community/content-meta.git",
|
||||
"commit": "a148b4104e9fb6323a6459b2f13c46f9a92da487",
|
||||
"installedAt": "2026-05-27T00:28:30.288Z"
|
||||
"commit": "dd6e94b5ca1cb195104a2b5e624a43ee6aa0a324",
|
||||
"installedAt": "2026-06-03T13:32:35.221Z"
|
||||
},
|
||||
"content-page": {
|
||||
"source": "github:quartz-community/content-page",
|
||||
"resolved": "https://github.com/quartz-community/content-page.git",
|
||||
"commit": "977d15f083f5b5de4b299c8f016e4e61fd422716",
|
||||
"installedAt": "2026-05-27T00:28:23.384Z"
|
||||
"commit": "d22fae357ae74a3e97a2f450862f23f5227842c4",
|
||||
"installedAt": "2026-06-03T13:32:35.505Z"
|
||||
},
|
||||
"crawl-links": {
|
||||
"source": "github:quartz-community/crawl-links",
|
||||
"resolved": "https://github.com/quartz-community/crawl-links.git",
|
||||
"commit": "69497e22046d62ee601415ad832bcde89a70a544",
|
||||
"installedAt": "2026-05-26T15:56:37.042Z"
|
||||
"commit": "43edc6d5182e79bf1b63fed7eb3ba0c7624a1526",
|
||||
"installedAt": "2026-06-03T13:32:35.242Z"
|
||||
},
|
||||
"created-modified-date": {
|
||||
"source": "github:quartz-community/created-modified-date",
|
||||
"resolved": "https://github.com/quartz-community/created-modified-date.git",
|
||||
"commit": "c003199fb842969d43ee9e0f54120a85e588260e",
|
||||
"installedAt": "2026-05-27T00:27:44.443Z"
|
||||
"installedAt": "2026-06-03T13:16:36.740Z"
|
||||
},
|
||||
"darkmode": {
|
||||
"source": "github:quartz-community/darkmode",
|
||||
"resolved": "https://github.com/quartz-community/darkmode.git",
|
||||
"commit": "dedd9606147e9d995a4376b0d03e469e39e94f85",
|
||||
"installedAt": "2026-05-27T00:28:32.139Z"
|
||||
"commit": "c6484f72ebc6ea89339be7cf86ad14b40c47dcc7",
|
||||
"installedAt": "2026-06-03T13:32:35.196Z"
|
||||
},
|
||||
"description": {
|
||||
"source": "github:quartz-community/description",
|
||||
"resolved": "https://github.com/quartz-community/description.git",
|
||||
"commit": "026e63bd46d5f7feed58373f999ed98bf8248a26",
|
||||
"installedAt": "2026-05-27T00:27:49.640Z"
|
||||
"commit": "56dc546614d905ad07dd0da8dd5820e25e5ea97b",
|
||||
"installedAt": "2026-06-03T13:32:35.233Z"
|
||||
},
|
||||
"encrypted-pages": {
|
||||
"source": "github:quartz-community/encrypted-pages",
|
||||
"resolved": "https://github.com/quartz-community/encrypted-pages.git",
|
||||
"commit": "e0e08e7afa40b97909fb24fd7509ddaa10116425",
|
||||
"installedAt": "2026-05-27T00:28:15.475Z"
|
||||
"commit": "89e88af565dfaa9ab2d9c99677b82394ea7be356",
|
||||
"installedAt": "2026-06-03T13:32:35.661Z"
|
||||
},
|
||||
"explicit-publish": {
|
||||
"source": "github:quartz-community/explicit-publish",
|
||||
"resolved": "https://github.com/quartz-community/explicit-publish.git",
|
||||
"commit": "4afb630a1cc9034267beb93c928e81d0fa2f4d4b",
|
||||
"installedAt": "2026-05-27T00:28:11.117Z"
|
||||
"installedAt": "2026-06-03T13:16:36.746Z"
|
||||
},
|
||||
"explorer": {
|
||||
"source": "github:quartz-community/explorer",
|
||||
"resolved": "https://github.com/quartz-community/explorer.git",
|
||||
"commit": "69389c917af8f8c74372c70b600ef4652f20c8f2",
|
||||
"installedAt": "2026-05-27T00:28:26.873Z"
|
||||
"commit": "a2dfd1373abe58ace461ebea0b4e94cb287f894e",
|
||||
"installedAt": "2026-06-03T13:32:35.808Z"
|
||||
},
|
||||
"favicon": {
|
||||
"source": "github:quartz-community/favicon",
|
||||
"resolved": "https://github.com/quartz-community/favicon.git",
|
||||
"commit": "85842d5c15f937a3d1a02c45accee27118146d73",
|
||||
"installedAt": "2026-05-27T00:28:18.505Z"
|
||||
"installedAt": "2026-06-03T13:16:37.198Z"
|
||||
},
|
||||
"folder-page": {
|
||||
"source": "github:quartz-community/folder-page",
|
||||
"resolved": "https://github.com/quartz-community/folder-page.git",
|
||||
"commit": "a538b8e548a0215568942a3d94b042010a86d66b",
|
||||
"installedAt": "2026-05-27T00:28:23.818Z"
|
||||
"commit": "93304d22e1d7f09f93a33658ec273f7cb8d17793",
|
||||
"installedAt": "2026-06-03T13:32:35.810Z"
|
||||
},
|
||||
"fonts": {
|
||||
"source": "github:quartz-community/fonts",
|
||||
"resolved": "https://github.com/quartz-community/fonts.git",
|
||||
"commit": "8be5be706d19ca34fa8e342327b78e11aff3d4f0",
|
||||
"installedAt": "2026-06-10T21:13:18.081Z"
|
||||
},
|
||||
"footer": {
|
||||
"source": "github:quartz-community/footer",
|
||||
"resolved": "https://github.com/quartz-community/footer.git",
|
||||
"commit": "9e3f6d734d886eac0d41841c4dc8862b377fcaf4",
|
||||
"installedAt": "2026-05-27T00:28:34.672Z"
|
||||
"commit": "6ed61928d3c0178d7cef972ebcbca6a206a2f065",
|
||||
"installedAt": "2026-06-03T13:32:35.802Z"
|
||||
},
|
||||
"github-flavored-markdown": {
|
||||
"source": "github:quartz-community/github-flavored-markdown",
|
||||
"resolved": "https://github.com/quartz-community/github-flavored-markdown.git",
|
||||
"commit": "3eabbaa252ce175665ab3f62e1af25948a83e8b6",
|
||||
"installedAt": "2026-05-27T00:27:45.190Z"
|
||||
"installedAt": "2026-06-03T13:16:36.665Z"
|
||||
},
|
||||
"graph": {
|
||||
"source": "github:quartz-community/graph",
|
||||
"resolved": "https://github.com/quartz-community/graph.git",
|
||||
"commit": "67ac4993907618a0ea5bd33726f792c572cddbad",
|
||||
"installedAt": "2026-05-26T17:45:56.210Z"
|
||||
"commit": "46f0ba1c3c0cc484697572e7bcf315fa384d80d2",
|
||||
"installedAt": "2026-06-03T13:32:35.872Z"
|
||||
},
|
||||
"hard-line-breaks": {
|
||||
"source": "github:quartz-community/hard-line-breaks",
|
||||
"resolved": "https://github.com/quartz-community/hard-line-breaks.git",
|
||||
"commit": "0d448f38a24c568c5539ff2cd57d813293430ccd",
|
||||
"installedAt": "2026-05-27T00:27:53.974Z"
|
||||
"installedAt": "2026-06-03T13:16:36.965Z"
|
||||
},
|
||||
"latex": {
|
||||
"source": "github:quartz-community/latex",
|
||||
"resolved": "https://github.com/quartz-community/latex.git",
|
||||
"commit": "3dcfedcb5ae5e28b71248a72665ccb881e82c185",
|
||||
"installedAt": "2026-05-27T00:28:07.987Z"
|
||||
"installedAt": "2026-06-03T13:16:36.841Z"
|
||||
},
|
||||
"note-properties": {
|
||||
"source": "github:quartz-community/note-properties",
|
||||
"resolved": "https://github.com/quartz-community/note-properties.git",
|
||||
"commit": "874712a9910299b906606c885ea1fe9602114ca7",
|
||||
"installedAt": "2026-05-26T16:15:17.177Z"
|
||||
"commit": "3cb40141e792a8a9ba9f99553cd436f36411bf8d",
|
||||
"installedAt": "2026-06-03T13:32:35.812Z"
|
||||
},
|
||||
"obsidian-flavored-markdown": {
|
||||
"source": "github:quartz-community/obsidian-flavored-markdown",
|
||||
"resolved": "https://github.com/quartz-community/obsidian-flavored-markdown.git",
|
||||
"commit": "7f61d4bcf7537d056528f6cecaf5c35b39f74fe8",
|
||||
"installedAt": "2026-05-27T18:30:09.459Z"
|
||||
"commit": "07eaca7b31a537c7c4a0fd2848b1f00014c940af",
|
||||
"installedAt": "2026-06-03T13:32:35.815Z"
|
||||
},
|
||||
"obsidian-plugin-excalidraw": {
|
||||
"source": "github:quartz-community/obsidian-plugin-excalidraw",
|
||||
"resolved": "https://github.com/quartz-community/obsidian-plugin-excalidraw.git",
|
||||
"commit": "554ae8af7ac4d7fdff8d78e65bfa9b4dd53cbb87",
|
||||
"installedAt": "2026-05-27T18:30:09.649Z"
|
||||
},
|
||||
"obsidian-plugin-ttrpg-tools-maps": {
|
||||
"source": "github:quartz-community/obsidian-plugin-ttrpg-tools-maps",
|
||||
"resolved": "https://github.com/quartz-community/obsidian-plugin-ttrpg-tools-maps.git",
|
||||
"commit": "c43314724a7606dd18b90972c457f593ccded5f5",
|
||||
"installedAt": "2026-05-24T15:36:16.983Z"
|
||||
"commit": "dad0a4c0abdc8b3c2786277a2cbd67dc039c754c",
|
||||
"installedAt": "2026-06-03T13:32:35.851Z"
|
||||
},
|
||||
"og-image": {
|
||||
"source": "github:quartz-community/og-image",
|
||||
"resolved": "https://github.com/quartz-community/og-image.git",
|
||||
"commit": "52ea59e2b40dde77abf7fd88eddecf161e671085",
|
||||
"installedAt": "2026-05-27T00:28:23.815Z"
|
||||
"commit": "31343c612d02c5fd22ff27a1e6035b2486be75f5",
|
||||
"installedAt": "2026-06-03T13:32:35.899Z"
|
||||
},
|
||||
"ox-hugo": {
|
||||
"source": "github:quartz-community/ox-hugo",
|
||||
"resolved": "https://github.com/quartz-community/ox-hugo.git",
|
||||
"commit": "832871da9ab33d52f904456c1a5e14f1b2057d83",
|
||||
"installedAt": "2026-05-27T00:28:07.907Z"
|
||||
"installedAt": "2026-06-03T13:16:36.714Z"
|
||||
},
|
||||
"page-title": {
|
||||
"source": "github:quartz-community/page-title",
|
||||
"resolved": "https://github.com/quartz-community/page-title.git",
|
||||
"commit": "a53cf02ce7faca400bcf3cfeed47eb860329e534",
|
||||
"installedAt": "2026-05-24T15:36:16.998Z"
|
||||
"commit": "a1c1fe0a9c6a5ce1acf6efa01d473a7d9850e2a3",
|
||||
"installedAt": "2026-06-03T13:32:36.002Z"
|
||||
},
|
||||
"quartz-themes": {
|
||||
"source": {
|
||||
|
|
@ -212,81 +206,81 @@
|
|||
"subdir": "plugin"
|
||||
},
|
||||
"resolved": "https://github.com/saberzero1/quartz-themes.git",
|
||||
"commit": "0da7355c49aa68cb375726913f41c64ac1f11733",
|
||||
"commit": "945135e8b70576753d0591e1713fe56553100b3d",
|
||||
"subdir": "plugin",
|
||||
"installedAt": "2026-05-27T18:31:15.006Z"
|
||||
"installedAt": "2026-06-11T15:50:25.576Z"
|
||||
},
|
||||
"reader-mode": {
|
||||
"source": "github:quartz-community/reader-mode",
|
||||
"resolved": "https://github.com/quartz-community/reader-mode.git",
|
||||
"commit": "02e36d3720e10c2087abce23cf0d2e94d53d27f1",
|
||||
"installedAt": "2026-05-27T00:28:33.060Z"
|
||||
"commit": "73c8bce66df8835510ffac47e53b1ca0f7efd51e",
|
||||
"installedAt": "2026-06-03T13:32:36.320Z"
|
||||
},
|
||||
"recent-notes": {
|
||||
"source": "github:quartz-community/recent-notes",
|
||||
"resolved": "https://github.com/quartz-community/recent-notes.git",
|
||||
"commit": "4505adba9c213967ddf94ea5fc05039245fd9fe9",
|
||||
"installedAt": "2026-05-26T20:20:42.557Z"
|
||||
"commit": "3c3d104335e2fc5ff62371ead157667adb79b046",
|
||||
"installedAt": "2026-06-03T13:32:36.284Z"
|
||||
},
|
||||
"remove-draft": {
|
||||
"source": "github:quartz-community/remove-draft",
|
||||
"resolved": "https://github.com/quartz-community/remove-draft.git",
|
||||
"commit": "0a51a4c6abb3c86961a9bbf46f4538da87fcf9f8",
|
||||
"installedAt": "2026-05-27T00:28:11.312Z"
|
||||
"installedAt": "2026-06-03T13:16:36.691Z"
|
||||
},
|
||||
"roam": {
|
||||
"source": "github:quartz-community/roam",
|
||||
"resolved": "https://github.com/quartz-community/roam.git",
|
||||
"commit": "b2aad70fdf548d07b8fd28df9edbdba7f256f166",
|
||||
"installedAt": "2026-05-27T00:28:10.005Z"
|
||||
"installedAt": "2026-06-03T13:16:36.771Z"
|
||||
},
|
||||
"search": {
|
||||
"source": "github:quartz-community/search",
|
||||
"resolved": "https://github.com/quartz-community/search.git",
|
||||
"commit": "e0ebef9f80b23a015a9252d4ab98b889b08dc8b7",
|
||||
"installedAt": "2026-05-27T00:28:27.388Z"
|
||||
"commit": "0f4c1a233cd03a0f562e13636b89b7708f8e2698",
|
||||
"installedAt": "2026-06-03T13:32:36.597Z"
|
||||
},
|
||||
"spacer": {
|
||||
"source": "github:quartz-community/spacer",
|
||||
"resolved": "https://github.com/quartz-community/spacer.git",
|
||||
"commit": "64b135dcfb78c4911f8c42d942872d645cd2a456",
|
||||
"installedAt": "2026-05-27T00:28:36.020Z"
|
||||
"installedAt": "2026-06-03T13:16:37.913Z"
|
||||
},
|
||||
"stacked-pages": {
|
||||
"source": "github:quartz-community/stacked-pages",
|
||||
"resolved": "https://github.com/quartz-community/stacked-pages.git",
|
||||
"commit": "9d67b8dedab5c27db98afd26dfa773e5003b0446",
|
||||
"installedAt": "2026-05-27T00:28:17.291Z"
|
||||
"commit": "e88fe063c68f74e6ba2dc7c54ddb353bb10c7982",
|
||||
"installedAt": "2026-06-03T13:32:36.330Z"
|
||||
},
|
||||
"syntax-highlighting": {
|
||||
"source": "github:quartz-community/syntax-highlighting",
|
||||
"resolved": "https://github.com/quartz-community/syntax-highlighting.git",
|
||||
"commit": "5bfdc2c3f42d3d0326c4e777eb575f3fb68d51fb",
|
||||
"installedAt": "2026-05-27T00:28:15.502Z"
|
||||
"installedAt": "2026-06-03T13:16:37.737Z"
|
||||
},
|
||||
"table-of-contents": {
|
||||
"source": "github:quartz-community/table-of-contents",
|
||||
"resolved": "https://github.com/quartz-community/table-of-contents.git",
|
||||
"commit": "4c25c048a7f788cb156dad0050d80c7ed88692f9",
|
||||
"installedAt": "2026-05-27T00:27:47.758Z"
|
||||
"commit": "6984305e5dae0830c025450e160f12610406f7a4",
|
||||
"installedAt": "2026-06-03T13:32:36.265Z"
|
||||
},
|
||||
"tag-list": {
|
||||
"source": "github:quartz-community/tag-list",
|
||||
"resolved": "https://github.com/quartz-community/tag-list.git",
|
||||
"commit": "0d18b40d26b3499823d46740c35e8ee874ba0ca0",
|
||||
"installedAt": "2026-05-27T00:28:30.257Z"
|
||||
"commit": "c48324e2ba768e2a0a5c4c17cd0661b190d075c5",
|
||||
"installedAt": "2026-06-03T13:32:36.346Z"
|
||||
},
|
||||
"tag-page": {
|
||||
"source": "github:quartz-community/tag-page",
|
||||
"resolved": "https://github.com/quartz-community/tag-page.git",
|
||||
"commit": "82f8a6d5e774de5e075978651b6ca81f2ccb6812",
|
||||
"installedAt": "2026-05-27T00:28:25.791Z"
|
||||
"commit": "eabf3eec55c0bab7f49e69957341f34d2ae3c5a1",
|
||||
"installedAt": "2026-06-03T13:32:36.377Z"
|
||||
},
|
||||
"unlisted-pages": {
|
||||
"source": "github:quartz-community/unlisted-pages",
|
||||
"resolved": "https://github.com/quartz-community/unlisted-pages.git",
|
||||
"commit": "be42781fb08a60e9f9268682d457b289094d2838",
|
||||
"installedAt": "2026-05-27T00:28:13.997Z"
|
||||
"commit": "f512d8672862c5891e63d755ba04b66277e6d760",
|
||||
"installedAt": "2026-06-03T13:32:36.647Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -593,6 +593,8 @@ export async function handleBuild(argv) {
|
|||
"**/*.tsx",
|
||||
"**/*.scss",
|
||||
"package.json",
|
||||
"quartz.config.yaml",
|
||||
"quartz.config.default.yaml",
|
||||
])
|
||||
chokidar
|
||||
.watch(paths, { ignoreInitial: true })
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ plugins:
|
|||
- source: github:quartz-community/roam
|
||||
enabled: false
|
||||
order: 92
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ plugins:
|
|||
- source: github:quartz-community/roam
|
||||
enabled: false
|
||||
order: 92
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
|
|
|
|||
|
|
@ -111,6 +111,8 @@ plugins:
|
|||
- source: github:quartz-community/roam
|
||||
enabled: false
|
||||
order: 92
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
|
|
|
|||
|
|
@ -111,6 +111,8 @@ plugins:
|
|||
- source: github:quartz-community/roam
|
||||
enabled: false
|
||||
order: 92
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
|
|
|
|||
Loading…
Reference in a new issue