Guides
Template Variables
Nizel supports variable injection before Markdown parsing. Use {{ expression }} syntax in both frontmatter and body content.
Basic Usage
const { html } = await nizel(
'# Hello {{ name }}',
{ variables: { name: 'World' } },
);
// <h1>Hello World</h1>
In Frontmatter
const { meta } = await nizel(`
---
title:
slug:
---
Content here.
`, { variables: { product: { name: 'nizel handbook' } } });
// meta.title === 'Nizel Handbook'
// meta.slug === 'nizel-handbook'
In Body
const { html } = await nizel(
`Price: €0.00`,
{ variables: { price: 29.99 } },
);
From Frontmatter
Values declared in frontmatter are available as body template variables:
---
entityName: Henk
documentName: "{{ entityName }} service agreement"
---
#
This agreement is between {{ entityName }} and the customer.
Use {{ frontmatter.entityName }} or {{ meta.entityName }} when you want to be explicit about where the value came from. Runtime variables and data override same-name frontmatter values.
Nested Access
Dot notation works for nested objects:
{{ user.name }}
{{ config.theme.primary }}
{{ items.length }}
Filters
Variables can be piped through filters:
$0.00
NaN January,February,March,April,May,June,July,August,September,October,November,December NaN
See Filters for the full list.
Guides
More Pages
-
Getting Started
The main call returns a structured object:
-
API Reference
Creates a Nizel processor instance.
-
Result Object
Nizel returns a structured result object from every parse call.
-
Pipeline
Nizel processes content in a predictable order.
-
Filters
Filters transform template values before Markdown parsing. Nizel includes built-in filters from
@sil/formatand@sil/case. -
Frontmatter
Nizel extracts a leading frontmatter block before template rendering and Markdown parsing.
-
Table of Contents
Nizel collects headings into
result.tocwhentoc: trueis set. -
Elements
Elements control how HTML is generated from the AST. You can customize tag names, attributes, and classes for any element type.
-
Plugins
Plugins bundle functionality into reusable extensions that hook into the Nizel pipeline.
-
NizelKit for Native Apps
nizel-kitis the browser/WebView bundle for native apps that want Nizel rendering with user-selectable plugins. -
Presets
Nizel exposes built-in option bundles for common use cases.
-
Styling
nizel-styleships scoped CSS for rendered Markdown content and official Nizel plugin output. -
Nizel Format
nizel-formatformats Markdown source text. Use it when an app needs consistent Markdown before saving, syncing, or rendering. -
Safety
Safe output is enabled by default in Nizel.
-
Testing
Nizel's test suite protects the Markdown behavior documented for the package.
-
Transforms
Transforms receive the normalized AST after parsing and before rendering. They let you modify the content tree programmatically.
-
Benchmarks
Per-plugin overhead can be measured with:
-
HTML to Markdown
Nizel exposes
htmlToMarkdown(html, options)for importing semantic HTML into Markdown.