Guides
Safety
Safe output is enabled by default in Nizel.
What Safe Mode Does
When safe: true (the default), Nizel sanitizes output to prevent injection:
- HTML in Markdown is escaped unless explicitly allowed
- Script tags are stripped
- Event handler attributes (
onclick,onerror) are removed - JavaScript URLs (
javascript:...) are stripped from links
Disable Safe Mode
Only disable safe mode when you trust the input source completely:
const nizel = useNizel({ safe: false });
This is useful for internal tools where the Markdown author is trusted and needs full HTML pass-through.
Raw HTML Blocks
CommonMark supports raw HTML blocks. In safe mode, these are escaped:
<div class="custom">
This raw HTML is escaped in safe mode.
</div>
With safe: false, the HTML passes through unchanged.
Inline HTML
Same behavior applies to inline HTML:
This is <strong>inline HTML</strong> in a paragraph.
In safe mode, the <strong> tags are escaped. With safe: false, they render as HTML.
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. -
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. -
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.