CLI Reference¶
Engrave ships two commands: build and server. They share build/copy/exclude options; server adds live preview controls.
engrave build¶
engrave build -h
Usage: engrave build [ARGS] [OPTIONS]
Build static HTML files from templates.
╭─ Parameters ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --dir-src Source directory containing input files [required] │
│ * --dir-dest Destination directory for build output [required] │
│ --copy --empty-copy Path RegEx copy verbatim [default: []] │
│ --exclude --empty-exclude Path RegEx to exclude from processing [default: []] │
│ --log-level [choices: CRITICAL, FATAL, ERROR, WARNING, WARN, INFO, DEBUG, NOTSET] [default: INFO] │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Behavior highlights:
- Only .html files are rendered; any path segment starting with _ is skipped for HTML output (but still available for {% include %}).
- Markdown files are not auto-rendered; pull them into templates via markdown() or |markdown.
- Files matching a copy regex are copied as-is; avoid copy rules that include .html so you do not process the same file twice.
engrave server¶
engrave server -h
Usage: engrave server [ARGS] [OPTIONS]
Start a development server with live preview.
╭─ Parameters ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --dir-src Source directory containing input files [required] │
│ * --dir-dest Destination directory for build output [required] │
│ --copy --empty-copy Path RegEx copy verbatim [default: []] │
│ --exclude --empty-exclude Path RegEx to exclude from processing [default: []] │
│ --host Host interface to bind the development server [default: 127.0.0.1] │
│ --port Port number for the development server [default: 8000] │
│ --watch-add --empty-watch-add │
│ Additional path regex patterns to watch for changes (in addition to .html and patterns │
│ matched by --copy). Matching paths will trigger Server-Sent Events (SSE). [default: []] │
│ --sse-url SSE URL (Server Side Event) to emite watch event [default: __engrave/watch] │
│ --log-level [choices: CRITICAL, FATAL, ERROR, WARNING, WARN, INFO, DEBUG, NOTSET] [default: INFO] │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
- Performs an initial build using the same pipeline as
engrave build. - Serves
.htmlby rendering directly fromDIR_SRC; other requests are served fromDIR_DEST. - Watches
.htmland.mdunderDIR_SRC, plus copy targets. Additional--watch-addregexes are matched against the current working directory and only emit SSE events (no build/copy). - Streams change events to the SSE endpoint at
--sse-url(default__engrave/watch) for browser reload hooks. - Host/port control the FastAPI + Uvicorn development server; log level follows
--log-level/LOG_LEVEL.