Checks and explanations

siv checks your site on every build, so visitors don't find the mistakes first. Every message says the file, the line and what to do.

$ siv build
siv 0.1.31 build 2026-10-15 w42 Thu 04:24
content/my-first-page/index.md:22: error[siv5001 broken-link]: link to /my-cat/ goes nowhere
Build failed: 1 error. Nothing was written to public/.

The message has the file and line, error or warning, a code and a name, and what is wrong. An error stops the build, and the website in public/ stays as it was. A warning doesn't stop the build.

Each code has a help page with an example and the fix:

$ siv help siv5001
# siv5001 broken-link

An internal link points to an address where nothing is published.
...

What siv checks # ↑

  • links between your pages, and links to anchors, like #tables
  • links to drafts, which won't be published
  • dates, front matter and settings
  • HTML elements left open or closed twice, the same id twice
  • images without a description or a size
  • links without text, which screen readers can't name
  • CSS with a missing { or }
  • invisible characters, like zero-width spaces
  • JPEG files published with the camera's GPS location

A wrong weekday in a date is an error too, with the right one:

content/my-first-page/index.md:3:25: error[siv2201 date]: 2026-10-15 is w42 Thu, not w42 Fri

Every code: siv help codes.

Check without building # ↑

$ siv check
Checks OK.

With a file, siv check content/my-first-page/index.md shows only the messages about that file. Editors can run it every time you save, and jump to the line: Editors.

Turn a check off # ↑

Most checks can be turned off, or made a warning or an error, by name. In siv.toml:

[checks]
dotfile = "off"
url-name = "error"

Or for one folder and everything below it, in the folder's index.md:

[recursive.checks]
dotfile = "off"

What is this file? # ↑

siv explain tells what a file is, what uses it and where it goes:

$ siv explain content/my-first-page/index.md
content/my-first-page/index.md — page source
  Published at /my-first-page/
  Output       public/my-first-page/index.html
  Template     templates/page.html
  Language     en

Front matter:
  title              "My first page"                            page title
  published          "2026-10-15 w42 Thu 04:13"                 publication date, optionally with time

Code blocks without a language name:
  line 17: guessed linuxcli

It also explains folders, templates, settings and addresses:

siv explain                     the current folder
siv explain templates/page.html which pages use the template
siv explain siv.toml            every setting and its value
siv explain /my-first-page/     an address: its source and template

Other tools # ↑

siv stats         a report of the site: pages, images, words
siv fmt           tidies the front matter of every page
siv util vitag    edit the tags of every page at once, in an editor
siv config        lists every setting, or changes one

Every command: Reference.

Next: Editors