Markdown compatibility
What Kirbon edits visually, what it keeps as protected blocks, and how it writes Markdown.
The format
Kirbon reads and writes CommonMark with GitHub Flavored Markdown — tables, task lists, strikethrough and autolinks — plus GitHub alerts for callouts, footnotes and YAML front matter. It never writes hidden metadata or a format of its own into your files.
What Kirbon edits, keeps and leaves out
| Edited in Visual | Kept as protected blocks | Not offered |
|---|---|---|
| Headings, paragraphs, bold, italic, strikethrough, inline code, bulleted, numbered and task lists, quotes, callouts, code blocks, tables, links, images with alt text, caption and size, file links, dividers | HTML blocks, front matter, HTML comments, unknown fenced blocks (Mermaid, math), footnote definitions, link reference definitions, tables with merged or nested cells | Underline, image alignment and wrapping, callout titles, column widths, merged cells — Markdown has no standard way to write them |
Protected blocks are shown in a labelled frame — “HTML block · 6 lines”, “Page properties · 3 fields” — with Edit in Markdown. Visual leaves them exactly as they are.
How Kirbon writes Markdown
- Untouched means untouched. Opening and saving a file without edits gives a byte-identical file — line endings, trailing spaces, the final newline, list and emphasis markers, fences, blank lines, HTML and comments included.
- Only edited blocks are rewritten. Everything else is copied from the original.
- New blocks follow the file’s style: its bullet (
-or*), emphasis markers, fence characters, heading style and line endings. A file without a clear style gets-,**/*, backtick fences,#headings and LF.
| Element | Written as |
|---|---|
| Headings 1–6 | # … ###### — the first # is the page title |
| Bold, italic, strikethrough | **text**, *text*, ~~text~~ |
| Link | [text](../section/page.md#heading) |
| Image |  |
| Image at 50 % | <img src="…" alt="…" width="50%"> |
| Task | - [ ] To do, - [x] Done |
| Table | GFM table with a header row and alignment; a pipe in a cell is escaped with a backslash, <br> is a line break |
| Callout | > [!NOTE], > [!TIP], > [!IMPORTANT], > [!WARNING], > [!CAUTION] |
| Divider | --- |
Links and anchors
Links to other pages are relative paths that keep the .md extension and are URL-encoded where needed (%20 for a space). Heading anchors follow GitHub’s slug rules: lowercase, punctuation removed, spaces as dashes, duplicates numbered -1, -2. Links Kirbon can’t resolve are kept as written and listed in Page Info — nothing is rewritten without you asking.
Files Kirbon can’t read
A file that isn’t valid UTF-8 or contains binary data opens in the Markdown view with a banner explaining why Visual isn’t available. It is never rewritten unless you edit it.