Micron Document
███╗ ██╗███╗ ██╗ ██████╗███╗ ███╗███████╗ ███████╗████████╗ █████╗ ██████╗ ████████╗███████╗██████╗
████╗ ██║████╗ ██║ ██╔════╝████╗ ████║██╔════╝ ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗╚══██╔══╝██╔════╝██╔══██╗
██╔██╗ ██║██╔██╗ ██║ ██║ ██╔████╔██║███████╗ ███████╗ ██║ ███████║██████╔╝ ██║ █████╗ ██████╔╝
██║╚██╗██║██║╚██╗██║ ██║ ██║╚██╔╝██║╚════██║ ╚════██║ ██║ ██╔══██║██╔══██╗ ██║ ██╔══╝ ██╔══██╗
██║ ╚████║██║ ╚████║ ╚██████╗██║ ╚═╝ ██║███████║ ███████║ ██║ ██║ ██║██║ ██║ ██║ ███████╗██║ ██║
╚═╝ ╚═══╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝

Directives are line-based commands in the form ::name key=value::.

Built-in directives are:

- ::page_list ...::
- ::app name=...::
- ::downloads ...::
- ::ascii_image ...::
- ::comments::

Some ground rules for directives are:

- A directive must be on its own line to be interpreted
- Put directives in fenced code blocks if you want to show examples
- Directives can be used in Markdown pages and templates
- Argument values that contain spaces must be quoted: key="two words"

Each directive is explained in more detail below.


page_list

Renders a list of pages discovered from content metadata, usually for blog/archive sections.

Any frontmatter key can be used as a filter argument. Multiple filters are ANDed together.

md
::page_list section=blog limit=3::
::page_list section=blog author=Jane limit=5::
::page_list section=blog author="Mary Shelley" limit=5::
::page_list language=da limit=0::

The limit argument caps the number of results (default: 5). Set limit=0 or a negative value to show all matching pages.

Use display_field to show a different frontmatter field as the link text instead of title. Falls back to title if the specified field is absent on a given page.

md
::page_list section=authors display_field=sort_name limit=0::

All other arguments are treated as frontmatter filters — only pages whose frontmatter contains a matching key/value pair are included.


app

Embeds dynamic app output into the current page. The built-in chat app uses this directive.

md
::app name=chat::

Currently, only the chat-app is available:


downloads

Renders a file listing from a storage folder so users can download files from the node.

md
::downloads path=my-downloads::

The path-variable should target a folder inside /storage/files, all files inside the folder will be added to the download table.

ascii_image

Converts an image into ASCII-style Micron art and optionally shows a caption.

md
::ascii_image src=assets/test-pattern.ppm caption="Bundled test pattern" width=32::

Optional image arguments include:

- collapsed=true|false to force per-image collapse behavior
- show_label="..." to override the expand link label for collapsed images
- show_fast_label="..." and show_truecolor_label="..." to customize dual expand labels when truecolor is enabled
- id=... to give repeated images separate expand state keys

This directive it typically not called directly, since the project supports using regular markdown image syntax like this:

md
![Bundled test pattern](/assets/test-pattern.ppm)

A default and max width can be defined in the site_theme file.

Default collapse behavior is also configured in the theme via ascii_image_collapse_mode() and ascii_image_inline_threshold_bytes().

When truecolor is enabled in the theme, collapsed images provide both fast and truecolor expand options.

comments

Embeds the comments form and thread for the current page.

md
::comments::

Uniquely, this directive is available in templates, and by default the post-template. Comments can be turned off on individual posts via frontmatter.




NomadNet CMS Starter - A reusable NomadNet site starter built from Markdown and Micron.

Page last updated 03/06/2026 13:36