Node Headers

Node files support headers. You can define any custom headers you want, and reference them in substitution parameters.

The headers listed on this page also have special meanings, and are interpreted directly in various ways by Uriel.

Some special headers can be set on any node, while others will only take effect if they are set on the root node (index).

All Nodes

These headers will take effect on any node.

Header Default Notes
Title <inferred> Page title
Escape-Title true HTML escape title
Template default.html Template file
Format html html or text
Created date -Is / date +%FT%T
Modified node mtime date -Is / date +%FT%T
Breadcrumb-Separator &raquo; Between breadcrumbs
Breadcrumb-Separator-Spaces true Spaces around separator
Flat-URL false Move URL path to top
Link-Prefix <p> For lists of links
Link-Suffix </p> For lists of links
Tags foo, bar, baz, quux
RSS-Include false Include node in RSS
RSS-Add-Node-Title-Header true Add node title to RSS
Sitemap-Include true Include node in sitemap

Root Node

These headers will only take effect if they are set on the root node.

Header Default Notes
Canonical-URL https://example.com
Tag-Node tag
RSS-URL /rss.xml
RSS-Description Site description
RSS-Title <value of Title> Site name
RSS-Image-URL /rss-icon.png
RSS-Image-Width 32
RSS-Image-Height 32
RSS-Max-Entries 20 unsigned int
Sitemap-URL /sitemap.xml
Sitemap-Max-Entries 50000 unsigned int

Inheritance

The content nodes form a tree hierarchy, starting with the root node (index). Generally speaking, if a header is set on a node, it will be inherited by all downstream child nodes by default.

As an exception to this general rule, the following headers are specifically not inherited:

To delete an inherited header from the current node:

-Foo: *

To set a header in child nodes, but not the current node:

+Foo: bar

To leave a header alone in the current node, but unset it in child nodes:

+-Foo: *

To set a header in the current node, but unset it in child nodes:

Foo: bar
+-Foo: *

Further combinations of + and - can be chained together, but a little bit goes a long way.

The general rule is that each + at the beginning of a header name will push it down one additional level in the node tree, but the first - at the beginning of a header name that gets encountered will remove the header from that node.

Naming Convention

By convention, headers are set using Mixed-Case-With-Dashes. However, when they are referenced in substitution parameters, they are referenced in lowercase.

For example, a node might set a header and reference the same header directly like this:

Title: Some Example Node
Foo-Bar-Baz-Quux: Some Value

Here is the value of Foo-Bar-Baz-Quux: {{value:foo-bar-baz-quux}}

The example above would render in the generated page as:

Here is the value of Foo-Bar-Baz-Quux: Some Value

Tags:

This page was generated by Uriel with the following settings:

Page Details

Resource Path Project File
Node headers/index nodes/headers/index
Template default.html templates/default.html
URL /headers/ public/headers/index.html

Node Headers

Header (Lowercase) Value
++-tags *
+tags headers
title Node Headers
breadcrumb-separator &raquo;
canonical-url https://documentation.uriel.foo
rss-description Uriel Documentation
rss-image-height 32
rss-image-url /favicon-32x32.png
rss-image-width 32
rss-max-entries 50
rss-title Uriel Documentation
rss-url /rss.xml
sitemap-max-entries 10000
sitemap-url /sitemap.xml
tag-node tag
template default.html

Node Timestamps

Type Value
Created
Modified 2026-06-07T23:00:45-04:00

Node Methods

Method Value
get_parent_node() index
get_path() headers/index
get_node_type() file
get_url() /headers/
get_canonical_url() https://documentation.uriel.foo/headers/
get_name() headers
get_display_name() Headers
get_title() Node Headers
get_escaped_title() Node Headers
get_link() <a href="/headers/">Node Headers</a>
get_canonical_link() <a href="https://documentation.uriel.foo/headers/">Node Headers</a>
get_link_prefix() <p>
get_link_suffix() </p>
get_tags() []
get_dest_dir() ./public/headers
get_dest_file() ./public/headers/index.html
get_breadcrumb_separator() &raquo;