Uriel Cheat Sheet

Headers

All Nodes

HeaderDefaultNotes
Title<inferred>Page title
Escape-TitletrueHTML escape title
Templatedefault.htmlTemplate file
Formathtml“html” or “text”
Created`date -Is` / `date +%FT%T`
Modifiednode mtime`date -Is` / `date +%FT%T`
Breadcrumb-Separator&raquo;»
Breadcrumb-Separator-SpacestrueSpaces around separator
Flat-URLfalseMove URL path to top
Link-Prefix<p>For lists of links
Link-Suffix</p>For lists of links
Tags[no default]foo, bar, baz, quux
RSS-IncludefalseInclude node in RSS
RSS-Add-Node-Title-HeadertrueAdd node title to RSS
Sitemap-IncludetrueInclude node in sitemap

Root Node

HeaderDefaultNotes
Canonical-URLhttps://example.com
Tag-Nodetag
RSS-URL/rss.xml
RSS-Title<value of Title>Site name
RSS-DescriptionSite description
RSS-Image-URL/rss-icon.png
RSS-Image-Width32
RSS-Image-Height32
Sitemap-URL/sitemap.xml

Inheritance

Headers not inherited by default: Title, Created, Modified

Delete an inherited header named Foo from the current node: -Foo: *

Set a header named Foo in child nodes, but not the current node: +Foo: bar

Substitution Parameters

ParameterNotes
{{node:body}}Entire node body contents
{{include:some_template_name.html}}include:path/to/template.html
{{value:foo}}rvalue is :<lowercase-header-name>
{{value-unescaped:foo}}rvalue is <lowercase-header-name>
{{breadcrumbs:*}}HTML navigation breadcrumbs
{{created:%B %d, %Y}}`man strftime`
{{modified:%B %d, %Y}}`man strftime`
{{static-url:foo.jpg}}a.jpg, i/a.jpg, /a.jpg
{{static-hash-url:foo.css}}a.css, c/a.css, /a.css
{{rss:url}}Canonical RSS URL
{{node:url}}Node URL
{{node:name}}Node name (e.g. foo/bar)
{{node:title}}Node title
{{node:link}}<a href="/node-url/">Node Title</a>
{{node-url:foo/bar}}Node URL for the foo/bar node
{{node-name:foo/bar}}Node name for the foo/bar node
{{node-title:foo/bar}}Node title for the foo/bar node
{{node-link:foo/bar}}<a href="/foo/bar/">Foo Bar</a>
{{node-list:*}}Links to child nodes
{{tag-list:*}}Links to relevant tags
{{soju:your_code_here()}}See lib/soju.py

Project Directories

DirectoryNotes
templatesTemplates to merge with dynamic content nodes
nodesDynamic content nodes to merge with templates
libUser-defined Python code (soju.py, handlers.py)
staticStatic content to copy to the web site unmodified
publicRendered web site