Configurable Markdown Parser Options
Saturday, 05 July 2025 - ⧖ 4 minMarmite now supports configurable markdown parser options through the markdown_parser section in your marmite.yaml configuration file. This allows you to customize how your markdown content is processed and rendered.
Configuration Structure
Add a markdown_parser section to your marmite.yaml file with the following structure:
markdown_parser :
render :
unsafe : true # Allow/disallow unsafe HTML (default: true)
ignore_empty_links : true # Ignore empty link references (default: true)
figure_with_caption : true # Wrap images in figure tags (default: true)
parse :
relaxed_tasklist_matching : true # Allow relaxed task list syntax (default: true)
extension :
tagfilter : false # Enable/disable tag filtering (default: false)
strikethrough : true # Enable/disable ~~strikethrough~~ (default: true)
table : true # Enable/disable table support (default: true)
autolink : true # Enable/disable automatic link detection (default: true)
tasklist : true # Enable/disable task lists (default: true)
footnotes : true # Enable/disable footnote support (default: true)
description_lists : true # Enable/disable description lists (default: true)
multiline_block_quotes : true # Enable/disable multiline block quotes (default: true)
underline : true # Enable/disable __underline__ syntax (default: true)
spoiler : true # Enable/disable spoiler text (default: true)
greentext : false # Enable/disable greentext (default: false)
shortcodes : true # Enable/disable shortcodes (default: true)
wikilinks_title_before_pipe : true # Wiki-style links with title before pipe (default: true)
wikilinks_title_after_pipe : false # Wiki-style links with title after pipe (default: false)
alerts : true # Enable/disable alert blocks (default: true)
Security Considerations
The unsafe option controls whether raw HTML is allowed in your markdown content:
unsafe: true(default) - Allows all HTML tags, including<script>and other potentially dangerous elementsunsafe: false- Escapes all HTML tags for security, rendering them as text
For public sites or when processing untrusted content, consider setting unsafe: false.
Extension Options
Strikethrough
strikethrough : true # ~~text~~ → <del>text</del>
strikethrough : false # ~~text~~ → ~~text~~
Underline
underline : true # __text__ → <u>text</u>
underline : false # __text__ → <strong>text</strong>
Tables
table : true # Enables GitHub-style table syntax
Task Lists
tasklist : true # Enables - [x] checked and - [ ] unchecked syntax
Footnotes
footnotes : true # Enables footnote syntax with [^1] references
Partial Configuration
You only need to specify the options you want to change from the defaults. For example, to disable unsafe HTML and strikethrough:
markdown_parser :
render :
unsafe : false
extension :
strikethrough : false
All other options will use their default values.
Backward Compatibility
If no markdown_parser section is specified in your configuration, Marmite will use the same default settings as before, ensuring backward compatibility with existing sites.
Please consider giving a ☆ on Marmite Github repository, that helps a lot!