gramr collects every problem of a step before stopping, so one run reports them all. When in doubt, it fails: an error means nothing was built or pushed.
Configuration
| Situation | Result |
| Invalid configuration, unknown key | error |
Site repository with both path and url, or neither, or url without ref | error |
No source.path in the site nor in the global configuration | error |
image.name with a tag or a digest | error |
gramr.toml missing at the root of the site repository | error |
Notes
| Situation | Result |
Note without front matter, or without gramr | ignored |
Note with gramr but without publish | ignored |
Invalid gramr block, even for another site | error |
| Front matter that is not valid YAML | warning, note skipped (gramr cannot know whether it targets it) |
Unknown site in gramr.site | warning |
Unlisted note without token, or with an invalid one | error |
slug, path or url on an unlisted note | error |
No slug, no title and a file name that gives an empty slug | error |
Links
| Situation | Result |
| Link matching several files | error: use a path, e.g. [[Folder/Index]] |
| Link to a missing, unpublished or (from a public page) unlisted note | removed, listed by --dry-run |
Block reference ([[Note#^block]]) | warning, linked to the page |
| Unclosed comment | warning, rest of the note removed |
Before writing
| Situation | Result |
Section without _index.md in the site repository | error: create the section in the site |
| Two pages or attachments for the same file (same slug, same token) | error. File names are compared case-insensitively. |
Page that would overwrite a file of the site repository (content/notes/about.md, a section's _index.md) | error |