Skip to content

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 VisualKept as protected blocksNot 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, dividersHTML blocks, front matter, HTML comments, unknown fenced blocks (Mermaid, math), footnote definitions, link reference definitions, tables with merged or nested cellsUnderline, 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.
ElementWritten as
Headings 1–6# … ###### — the first # is the page title
Bold, italic, strikethrough**text**, *text*, ~~text~~
Link[text](../section/page.md#heading)
Image![alt](../assets/page/image.png "Caption")
Image at 50 %<img src="…" alt="…" width="50%">
Task- [ ] To do, - [x] Done
TableGFM 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 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.