Quarto GitHub Pages branch graft tool
Project description
quarto-graft
A Python CLI for multi-author Quarto documentation using git worktrees
Quarto Graft is a command-line tool that lets multiple authors collaborate on a single Quarto website without merge conflicts. Each author works in an isolated git branch (a "graft"), and the main branch (the "trunk") automatically assembles everything into one unified, searchable site.
Key Concepts
Trunk
The trunk is your main branch and the foundation of your Quarto site. It defines:
- The overall site structure (navbar, sidebar, styling)
- Collars: named attachment points where grafts connect (e.g., "main", "notes", "bugs")
- Site configuration and templates
Grafts
Grafts are isolated git branches where authors work independently. Each graft:
- Runs in its own git worktree with its own dependencies
- Can use any language or environment (Python, R, Julia, etc.)
- Specifies which collar it attaches to
- Gets automatically included in the trunk's navigation
Collars
Collars are attachment points in the trunk's _quarto.yaml that organize grafts into sections:
sidebar:
contents:
- section: My Grafts
contents:
- _GRAFT_COLLAR: main
- section: Notes
contents:
- _GRAFT_COLLAR: notes
Templates
Everything is template-based and customizable:
- Trunk templates: Define your site's look, feel, and structure
- Graft templates: Provide starter content for different types of contributions
- Templates use Jinja2 for configuration
- Create custom templates for your organization
Why Use Quarto Graft?
Traditional multi-author collaboration problems:
- Merge conflicts on
main - Shared dependencies causing version conflicts
- One author's broken code blocks everyone
- Can't use different languages/tools per section
Quarto Graft solutions:
- ✅ Each author owns a branch = zero merge conflicts
- ✅ Each graft has independent dependencies
- ✅ Broken grafts use last-good fallbacks with warnings
- ✅ Mix Python, R, Julia, or any language per graft
- ✅ Trunk never executes contributor code, only renders artifacts
- ✅ Organize content with multiple collars (sections)
What You Get
- 🚀 Python CLI (
quarto-graft) for project management - 📦 Customizable trunk and graft templates
- 🔧 Git worktree-based isolation
- 🎯 Multiple collar attachment points
- 🔄 Automatic navigation updates
- 💾 Last-good build fallbacks
- 🔍 Full-site search across all grafts
- ⚡ Fast trunk builds (no code execution)
Who This Is For
- Multi-author books and research publications
- Data science teams (quant research, education platforms)
- Internal documentation portals
- Open source projects with distributed contributors
- Anyone managing versioned, multi-contributor content
Quick Start
# Install
pip install quarto-graft
# Initialize a trunk (main site)
quarto-graft trunk init my-project
# Create a graft (contributor branch)
cd my-project
quarto-graft graft create demo --collar main
# Build and preview
quarto-graft build
quarto preview
License
Released under the MIT License. Free to use, modify, and redistribute with attribution.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quarto_graft-0.0.1.tar.gz.
File metadata
- Download URL: quarto_graft-0.0.1.tar.gz
- Upload date:
- Size: 742.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
210749645f095ec5e45df051d5cd8d741347a1b8fce9736874696a2748a7b2e7
|
|
| MD5 |
636b70e410674d5b5a49bb4786adf6c0
|
|
| BLAKE2b-256 |
5d7ed5ae20c0d09d35f24f4770f8ed3fe532578cd143d7096e7ba0a4d17f19fc
|
File details
Details for the file quarto_graft-0.0.1-py3-none-any.whl.
File metadata
- Download URL: quarto_graft-0.0.1-py3-none-any.whl
- Upload date:
- Size: 766.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9990b6a77bcb1bf66555892d5ce8f2cc9b081ff0615635fc3f9954194c19fc56
|
|
| MD5 |
1a3942e203c3392daa06130093987c06
|
|
| BLAKE2b-256 |
ac261ef00b45e745c829f3fccf217c9413dd183fc17dc3e379bbc1eda2bc1f13
|