This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the source repository for the Quicksilver User Manual, a documentation site for the Quicksilver macOS application. It uses MkDocs with the Material theme to build a static site from Markdown files.
# Setup (one-time)
python3 -m venv venv
venv/bin/pip install -r requirements.txt
# Generate plugin documentation from qsapp.com API
venv/bin/python plugindocs.py
venv/bin/python plugindocs.py --fresh # ignore local cache
venv/bin/python plugindocs.py --clear # remove old plugin docs first
# Serve locally with live reload at http://localhost:8000/
venv/bin/mkdocs serve
# Build static site into site/
venv/bin/mkdocs build
# Build with PDF generation
BUILD_PDF=1 venv/bin/mkdocs buildAll manual content lives in docs/ as Markdown files, organized into sections:
docs/getting-started/— Installation, concepts, invoking Quicksilverdocs/features/— Feature guides (files, contacts, mail, triggers, etc.)docs/plugins/— Auto-generated plugin documentation (see below)docs/preferences/— Preference pane walkthroughsdocs/appendix/— FAQ, troubleshooting, style guide
Navigation structure is defined explicitly in mkdocs.yml under the nav key.
Plugin docs are auto-generated — do not edit files in docs/plugins/ directly (except index.md, which is manually maintained). The .gitignore excludes docs/plugins/* except index.md.
The pipeline works as follows:
plugindocs.pyqueries the qsapp.com API for plugin info across allSUPPORTED_OS_VERSIONS- Plugin HTML descriptions are transformed via XSLT and converted to Markdown with
html2text - Generated
.mdfiles are written todocs/plugins/ - The script updates the
nav→Pluginssection inmkdocs.ymland writesmanifest.jsonfor client-side plugin lookup - Cached API responses are stored in
_plugins/(also gitignored)
When OS support changes, update SUPPORTED_OS_VERSIONS in plugindocs.py.
Pushes to main trigger a GitHub Actions workflow (.github/workflows/deploy.yml) that builds the site (with PDF) and deploys via rsync to the production server.
The full style guide is in docs/appendix/Style Guide.md. Key formatting rules:
- Wrap each physical key in
<kbd>tags:<kbd>⌘</kbd><kbd>A</kbd>, not<kbd>⌘A</kbd> - Use unicode symbols for modifier keys in correct order: ⌃ ⌥ ⇧ ⌘
- Action names in bold
- File names, extensions, and code in backticks
- Display commands as: Direct Object ⇥ Action ⇥ Indirect Object
- Use bidirectional (smart/curly) quotes in prose
- Indent list items by two spaces before the marker
- Images go in
docs/images/and should use the Bezel interface with default colors