Configuration¶
Most runs need no configuration file. Flags and defaults cover the common cases. A TOML file lets you fix a house style for a project or for your user account.
Where settings come from¶
vexy-dexypy resolves settings once at startup, in this order of precedence:
- Command-line flags.
./vexy-dexypy.tomlin the current folder.~/.config/vexy-dexypy/config.toml.- Built-in defaults.
The project file and the user file are merged section by section. Within a section, a key in the project file replaces the same key in the user file.
A file that is not valid TOML stops the run with a usage error that names the file.
Example file¶
# vexy-dexypy.toml
[output]
dir = "out"
svg = false
[stage]
aspect = "720p" # or "1080p", "810p"
# size = "1600x900" # overrides aspect when present
[strategies]
enabled = ["playwright", "vivliostyle", "reveal"] # or "all"
[vision]
enabled = false
model = "minicpm-v-4.6"
endpoint = "http://localhost:11434"
[engines]
prince_path = ""
node_bin = "node"
[browser]
engine = "playwright" # or "playwrightauthor", "cloakbrowser"
[fetch]
mode = "live" # or "localize", "offline"
tool = "single-file" # or "monolith" (offline mode only)
Keys¶
| Section | Key | Default | Flag that overrides it |
|---|---|---|---|
output |
dir |
"out" |
--out |
output |
svg |
false |
--svg |
stage |
aspect |
none | --aspect |
stage |
size |
none | --size |
strategies |
enabled |
"all" |
--strategies |
vision |
enabled |
false |
--vision |
vision |
model |
"minicpm-v-4.6" |
— |
vision |
endpoint |
"http://localhost:11434" |
— |
engines |
prince_path |
"" |
— |
engines |
node_bin |
"node" |
— |
browser |
engine |
"playwright" |
--browser_engine |
fetch |
mode |
"live" |
--fetch_mode |
fetch |
tool |
"single-file" |
— |
strategies.enabled accepts a TOML list or a comma-separated string.
Note
The Prince exporter currently locates the binary through the
VEXY_DEX_PRINCE_PATH environment variable or prince on PATH. The
engines.prince_path key is read into the settings but the exporter does
not use it yet.
Stage size¶
The stage is the slide rectangle in CSS pixels. The same width and height are
used for the browser viewport during analysis, for the @page size in the
paged-media CSS, and for the PDF page size in every exporter.
| Profile | Width × height |
|---|---|
720p (default) |
1280 × 720 |
1080p |
1920 × 1080 |
810p |
1440 × 810 |
All three profiles are 16:9. For another shape, give a size such as
--size 1024x768. A size wins over an aspect profile. The size string accepts
x or × between the numbers, and both numbers must be positive integers.
Errors you can see here:
unknown --aspect '4:3'; choose from ['1080p', '720p', '810p'] or pass --size WxHbad --size '1280'; expected WxH like 1280x720 or an --aspect from [...]--size must be positive, got '0x720'
Strategy selection¶
allruns every exporter registered as a plugin whoseavailable()check passes. The classifier's recommended order comes first; other strategies follow.- An explicit list runs exactly those strategies. A name that is not registered stops the run with a usage error. A registered strategy whose program is missing still runs and fails in the summary table with the engine's error message.
The recommended order per page type:
| Page type | Recommended first |
|---|---|
webflow |
playwright, reveal |
mkdocs-material |
vivliostyle, playwright |
docusaurus |
vivliostyle, playwright |
framer |
playwright, reveal |
bubble |
playwright, vivliostyle |
generic |
vivliostyle, playwright |
Caching¶
After an engine writes its combined PDF, the orchestrator stores a copy in
out/<slug>/_meta/cache/. The cache key joins the page's content hash, the
strategy name and the stage size. On the next run with the same key, the cached
PDF is reused and the engine is not called. Pass --no_cache to render again.
Vision results are cached separately in out/<slug>/_meta/vision/, keyed by a
hash of the page screenshot and the model name.