Guides
Elements
Elements control how HTML is generated from the AST. You can customize tag names, attributes, and classes for any element type.
Customization
Use the elements option to override HTML output:
const nizel = useNizel({
elements: {
h1: { class: 'title is-1' },
h2: { class: 'title is-2' },
p: { class: 'content' },
a: { target: '_blank', rel: 'noopener' },
code: { class: 'language-code' },
},
});
Per-Element Options
Each element accepts:
| Property | Type | Description |
|---|---|---|
tag | string | Replace the HTML tag |
class | string | Add CSS class(es) |
attr | object | Add HTML attributes |
attrs | object | Alias for attr |
Replace a Tag
const nizel = useNizel({
elements: {
strong: { tag: 'b' },
em: { tag: 'i' },
},
});
Add Attributes
const nizel = useNizel({
elements: {
a: { attr: { target: '_blank', rel: 'noopener noreferrer' } },
img: { attr: { loading: 'lazy' } },
},
});
Supported Elements
All standard Markdown elements can be customized:
- Headings:
h1throughh6 - Block:
p,blockquote,pre,ul,ol,li - Inline:
a,strong,em,code,del - Media:
img - Other:
hr,br,table,thead,tbody,tr,th,td
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.
-
Template Variables
Nizel supports variable injection before Markdown parsing. Use
{{ expression }}syntax in both frontmatter and body content. -
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. -
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.