The engine

Markdown in, pages out.

Narrative parses front matter, renders Jinja2 templates over structured content, and builds a site from a folder. Many sites can share one engine without leaking into each other.

Illustration: a tall wall of small identical wooden drawers with brass pulls, one drawer slid halfway open and glowing red from inside.
Content

Pages from Markdown and front matter

Write a Markdown file with YAML front matter. Narrative finds it, parses it, and renders it through a template.

  • Heading hierarchy, image metadata, and CSS classes are extracted from the Markdown, and your template can use all of it.
  • Front matter dates parse in more than 19 formats, and drafts are filtered per stage, so Staging can show what Production does not.
  • Tags and topics are organized for you, with slugs generated at build time.
  • [​[Exclude]] and [​[ExcludeWhere]] filters keep a section out of one stage.
Collections

One page per item from a data source

A data source fetches a list of items at build time. A collection ties it to a template and writes one page per item.

One page per item from a data source
fileReads a folder of JSON files, one item per file, or a single JSON array file.
restFetches from an HTTP endpoint. Secrets come in through environment variables, never through the site's files.
Shortcodes

Ten bundled shortcodes and a plugin interface

Shortcodes add structure to Markdown. They can be nested, and you can add your own through the plugin interface.

article_link   callout   code_tabs   current_year   highlight
leverage_disclaimer   mermaid   toc   vimeo   youtube

Mermaid diagrams are rendered to SVG at build time, so the page needs no script to show them.

Many sites

Many sites, one engine

Every site is its own folder with its own settings, content, templates, and deploy stages. A site name picks which one to build.

Stage isolation

Build with -s Staging or -s Production. Each stage has its own bucket, distribution, and settings, so deploys do not step on each other.

Shared overlay

A site can list shared folders in SharedContent. Narrative copies them under the site's source before each build, and the site's own file always wins.

Canonical values

A placeholder such as [​[canon:key]] resolves from one source-of-truth file at build time, so every site shows the same number.

Contact

Questions about this tool?

Write to Renkara Media Group and a person will answer.