Skip to content

Commit 663a185

Browse files
committed
Document profile system in README
Explain the two-layer profile architecture (phase profiles vs site profile), what each _quarto-*.yml file does, the release lifecycle, and how to preview locally with different profiles.
1 parent b4bdee6 commit 663a185

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,56 @@ quarto run tools/reference.ts
105105

106106
This builds the `.json` files in `docs/references` based on the [Quarto CLI schema](https://github.com/quarto-dev/quarto-cli/tree/main/src/resources/schema). The script assumes you have `quarto-cli/` at the same level in your directory structure as `quarto-web/`.
107107

108+
## Profile System
109+
110+
This project uses [Quarto profiles](https://quarto.org/docs/projects/profiles.html) to build two sites from the same source: [quarto.org](https://quarto.org/) and [prerelease.quarto.org](https://prerelease.quarto.org/).
111+
112+
### Two-layer architecture
113+
114+
**Phase profiles** (`rc` / `prerelease`) control release-phase branding. They are declared as a [profile group](https://quarto.org/docs/projects/profiles.html#profile-groups) in `_quarto.yml`:
115+
116+
```yaml
117+
profile:
118+
group:
119+
- [rc, prerelease] # first entry is the default
120+
```
121+
122+
The group order determines which phase is active on **quarto.org** (the main site). Flipping the order (e.g. `[rc, prerelease]` to `[prerelease, rc]`) switches the main site between "Release Candidate" and "Pre-release" branding.
123+
124+
| File | Purpose |
125+
|---|---|
126+
| `_quarto-prerelease.yml` | Phase variables for the pre-release/development phase |
127+
| `_quarto-rc.yml` | Phase variables for the release candidate phase |
128+
129+
**Site profile** (`prerelease-docs`) configures everything specific to prerelease.quarto.org: site URL, announcement banner, search index, theme, and the `prerelease-subdomain` variable.
130+
131+
| File | Purpose |
132+
|---|---|
133+
| `_quarto-prerelease-docs.yml` | Site-specific configuration for prerelease.quarto.org |
134+
135+
The `prerelease-subdomain` variable is defined as empty (`''`) in `_quarto.yml` (so links point to `quarto.org` by default) and overridden to `prerelease.` only in `_quarto-prerelease-docs.yml`.
136+
137+
### Release lifecycle
138+
139+
1. **Development phase:** group is `[prerelease, rc]` — main site shows "Pre-release"
140+
2. **RC phase:** flip group to `[rc, prerelease]` — main site shows "Release Candidate"
141+
3. **Release:** flip back to `[prerelease, rc]` for the next development cycle
142+
143+
These flips only affect quarto.org. The prerelease site CI explicitly activates `prerelease,prerelease-docs`, so it always shows "Pre-release" regardless of group order.
144+
145+
### Local preview
146+
147+
```bash
148+
# Main site with RC branding
149+
quarto preview --profile rc
150+
151+
# Main site with pre-release branding (default when prerelease is first in group)
152+
quarto preview
153+
154+
# Prerelease site
155+
quarto preview --profile prerelease,prerelease-docs
156+
```
157+
108158
## GitHub Action Workflows
109159

110160
Our GitHub Action workflows are documented in [`.github/workflows/README.md`](.github/workflows/README.md)

0 commit comments

Comments
 (0)