Doctor
Not sure why your site won't build, or want a second opinion before you ship? Run:
deno x jsr:@steno/steno doctor
It inspects your project and prints a report, without building anything or changing a single file. Below is exactly what it checks and how to read the result.
Checks
- Deno version: warns if the runtime is older than 2.0.0.
- Config file: fails and stops immediately if the config path (default
content/.steno/config.yml, or--config) does not exist or fails to parse. - Content directory: fails if
contentDirdoes not exist. - Markdown pages: warns if no
.mdfiles are found undercontentDir. - Output directory: informational only. Reports whether
outputalready exists; it is created on build either way. - Data directory: informational. Reports whether
contentDir/_dataexists; it is optional. - Theme: warns if no
themeis declared, since pages then render as plain HTML with no layout. If the theme is a local path (starts with.or/), fails when that directory does not exist. - Plugins: reports the declared count, and how many are
isolatedversustrusted. Trusted plugins produce a warning, since they run in-process with Steno's own Deno permissions. Each plugin specifier is checked against the supported formats (jsr:,npm:,file://,https://); an unsupported format fails the check. - Plugin source policy: warns when
pluginSourcePolicy.allowLocalorallowRemoteHttpis enabled, since both widen which plugin sources may load in-process code. Also warns thatallowNodeBuiltinsonly filters the top-level specifier and does not control transitive imports. - Collections: informational. Reports the number of explicitly configured collections; collections are otherwise auto-detected from content subdirectories regardless of this count.
- Redirects: reports the declared redirect count when greater than zero.
Exit behavior
A failing check (missing config, missing content directory, missing local theme
directory, or an unsupported plugin specifier) marks the run as having errors
and prints a summary line asking you to fix them and try again. Any other check
produces an informational or warning line but does not fail the run. doctor
does not currently return a non-zero process exit code; treat the printed
summary as the result.