# Writing and editing

> Typing in the page, tables, the format bar, flowcharts, source, saving and relational tables

## New documents

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| New document plus | [✅][l-new] | [✅][o-seen] | [✅][t-keys] | [❌][c-seen] |
| Opens ready to type | [✅][l-new] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Untitled names numbered | [✅][l-new] | [✅][o-seen] | ? | [❌][c-seen] |
| No file until saved | [✅][l-new] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Save As picks place | [✅][l-new] | [❌][o-seen] | [✅][t-keys] | [❌][c-seen] |
| Mac format menu | [✅][l-new] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Takes real name | [✅][l-new] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| New file in folder | [✅][l-new] | [✅][o-explorer] | [✅][t-files] | [❌][c-seen] |

## Writing in the page

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| **Type in the page** | [✅][l-inline] | [✅][o-edit] | [✅][t-home] | [❌][c-seen] |
| Blocks edited in place | [✅][l-inline] | [✅][o-edit] | [✅][t-home] | [❌][c-seen] |
| Markup kept for you | [✅][l-inline] | [✅][o-seen] | ? | [❌][c-seen] |
| Exact byte splices | [✅][l-inline] | [✅][o-seen] | ? | [❌][c-seen] |
| Untouched text untouched | [✅][l-inline] | [✅][o-seen] | ? | [❌][c-seen] |
| Checkboxes save instantly | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Task date menu | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Cell edits keep spacing | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Alignment markers survive | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Enter splits blocks | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Shift+Enter line break | [✅][l-inline] | [✅][o-syntax] | [✅][t-keys] | [❌][c-seen] |
| Backspace merges blocks | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Enter continues lists | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Other blocks show source | [✅][l-inline] | [✅][o-edit] | [✅][t-md] | [❌][c-seen] |
| Code edits without fences | [✅][l-inline] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Diagram source or editor | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Right-click never types | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Lossless blocks only | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No typing ring | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Typing reaches buffer | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Opens locked | [✅][l-inline] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Alert markers kept | [✅][l-inline] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |

## XML in place

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Type XML sentences | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Explains source fallback | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Enter repeats element | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Type XML cells | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Comma values separate | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rename element everywhere | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Invalid names refused | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Type attribute values | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Closing quote refused | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Type XML comments | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Double dashes refused | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Full-window table

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Expand table button | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Same look, whole window | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Cards layout kept | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Long cells fold | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Seven-character minimum columns | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Ctrl-wheel wide cells | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Glossary over table | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Ctrl-click keeps table | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Three ways out | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Renaming and email

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| File name heading shown | [✅][l-rename] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rename from heading | [✅][l-rename] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rename followed everywhere | [✅][l-rename] | [✅][o-links] | [❌][t-seen] | [❌][c-seen] |
| Titled headings edit | [✅][l-rename] | ? | ? | [❌][c-seen] |
| Rename sheets from headings | [✅][l-rename] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Type mail in place | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Mail line endings kept | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Enter splits paragraphs | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Move mail paragraphs | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Coded parts explained | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No mail format bar | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Legacy charset preserved | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Missing characters named | [✅][l-email] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Frontmatter fields

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Click values to type | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Enter keeps, Escape abandons | [✅][l-fields] | ? | [❌][t-seen] | [❌][c-seen] |
| Save from a field | [✅][l-fields] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Date field calendar | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Real tick boxes | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Removable tag chips | [✅][l-fields] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No guessed controls | [✅][l-fields] | ? | [❌][t-seen] | [❌][c-seen] |
| Rename a field | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Remove a field | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Suggested field names | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |
| Start new frontmatter | [✅][l-fields] | [✅][o-props] | [✅][t-seen] | [❌][c-seen] |
| Chips hold commas | [✅][l-fields] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Comments and order kept | [✅][l-fields] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Empty frontmatter removed | [✅][l-fields] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hidden when locked | [✅][l-fields] | ? | [❌][t-seen] | [❌][c-seen] |
| Only read names offered | [✅][l-fields] | ? | [❌][t-seen] | [❌][c-seen] |
| Nested fields refused | [✅][l-fields] | ? | [❌][t-seen] | [❌][c-seen] |
| Real dates checked | [✅][l-fields] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Obsidian types honored | [✅][l-fields] | [✅][o-props] | [❌][t-seen] | [❌][c-seen] |

## Deleting

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Emptied blocks removed | [✅][l-deleting] | ? | ? | [❌][c-seen] |
| Blank lines never stack | [✅][l-deleting] | [❌][o-seen] | ? | [❌][c-seen] |
| Highlights cross blocks | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Cross-block delete joins | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Uncuttable blocks whole | [✅][l-deleting] | ? | ? | [❌][c-seen] |
| One undo per delete | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Empty file, blank page | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Select-all widens | [✅][l-deleting] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Locked pages copy | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Opens on release | [✅][l-deleting] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Double-click selection kept | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Links never open blocks | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Merge unopened blocks | [✅][l-deleting] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Ctrl+Z restores deletes | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Footnotes type naturally | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Loose lists type naturally | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Multi-paragraph items use source | [✅][l-deleting] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Last block editable | [✅][l-deleting] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Footnote lines follow markers | [✅][l-deleting] | ? | ? | [❌][c-seen] |

## Block gutter and adding blocks

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Margin handle and plus | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Follows the pointer | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Drag blocks to move | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Escape cancels drag | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Works mid-edit | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Markdown and XML blocks | [✅][l-gutter] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Plus on empty lines | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Plus waits below | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Between any blocks | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Kinds row unfurls | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Thirteen block kinds | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Placeholder until typing | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Five XML block kinds | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rolling gray placeholder | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Pictures in notes

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Choose a picture | [✅][l-pictures] | [✅][o-seen] | [✅][t-images] | [❌][c-seen] |
| Paste picture address | [✅][l-pictures] | [✅][o-seen] | [✅][t-images] | [❌][c-seen] |
| Paste pictures | [✅][l-pictures] | [✅][o-attach] | [✅][t-images] | [❌][c-seen] |
| Saved beside note | [✅][l-pictures] | [✅][o-attach] | [✅][t-images] | [❌][c-seen] |
| Named after note | [✅][l-pictures] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Keeps picture format | [✅][l-pictures] | ? | [✅][t-seen] | [❌][c-seen] |
| Duplicates stored once | [✅][l-pictures] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Unsaved notes asked | [✅][l-pictures] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Pasted text stays | [✅][l-pictures] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Picked files referenced | [✅][l-pictures] | [✅][o-seen] | [✅][t-images] | [❌][c-seen] |
| Paths written for you | [✅][l-pictures] | [✅][o-seen] | [✅][t-images] | [❌][c-seen] |
| Spaces written safely | [✅][l-pictures] | [✅][o-seen] | [✅][t-images] | [❌][c-seen] |
| Delete from right-click | [✅][l-pictures] | ? | [✅][t-images] | [❌][c-seen] |
| Pasted pictures recognized | [✅][l-pictures] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |

## Badge and bar boxes

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Badge tone picker | [✅][l-badge-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Live badge preview | [✅][l-badge-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Badge marks offered | [✅][l-badge-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Never a list item | [✅][l-badge-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tone, label, amount | [✅][l-bar-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Live bar preview | [✅][l-bar-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Enter writes row | [✅][l-bar-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Escape folds away | [✅][l-bar-box] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Table editing

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Tab walks cells | [✅][l-table-edit] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Enter moves down | [✅][l-table-edit] | ? | ? | [❌][c-seen] |
| Tab adds rows | [✅][l-table-edit] | [✅][o-seen] | [✅][t-tables] | [❌][c-seen] |
| Caret lands at end | [✅][l-table-edit] | ? | ? | [❌][c-seen] |
| Row and column grips | [✅][l-table-edit] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Drag rows and columns | [✅][l-table-edit] | [✅][o-seen] | [✅][t-tables] | [❌][c-seen] |
| Drop outside cancels | [✅][l-table-edit] | ? | ? | [❌][c-seen] |
| Align columns | [✅][l-table-edit] | [✅][o-adv] | [✅][t-tables] | [❌][c-seen] |
| Sort writes file | [✅][l-table-edit] | [✅][o-adv] | [❌][t-seen] | [❌][c-seen] |
| Stable sorting | [✅][l-table-edit] | ? | [❌][t-seen] | [❌][c-seen] |
| Add and delete rows | [✅][l-table-edit] | [✅][o-adv] | [✅][t-tables] | [❌][c-seen] |
| Last row protected | [✅][l-table-edit] | ? | ? | [❌][c-seen] |
| Copy as CSV | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Markdown tables when unlocked | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| File order restorable | [✅][l-table-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Table formulas

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Five column totals | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Number and rule together | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Totals kept right | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Quiet total bar | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Totals hold in sorts | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hand-written TBLFM rules | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| References and ranges | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Four operations, brackets | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Decimals follow inputs | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Bad rules ignored | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Edits recalculate formulas | [✅][l-formulas] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Format bar

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Bar over selection | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | [✅][c-seen] |
| Bold button | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Italic button | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Strikethrough button | [✅][l-format-bar] | [❌][o-seen] | ? | [❌][c-seen] |
| Code button | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Link button | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Lit current format | [✅][l-format-bar] | [❌][o-seen] | ? | [❌][c-seen] |
| Press again removes | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Joins code spans | [✅][l-format-bar] | ? | ? | [❌][c-seen] |
| Selection kept after | [✅][l-format-bar] | ? | ? | [❌][c-seen] |
| Link box prefilled | [✅][l-format-bar] | [❌][o-seen] | ? | [❌][c-seen] |
| Badge from bar | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Block type buttons | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Grays at limits | [✅][l-format-bar] | [❌][o-seen] | ? | [❌][c-seen] |
| Heading level steps | [✅][l-format-bar] | [✅][o-seen] | [✅][t-keys] | [❌][c-seen] |
| Copy as words | [✅][l-format-bar] | [❌][o-seen] | [✅][t-seen] | [✅][c-seen] |
| Theme-color highlight | [✅][l-format-bar] | [✅][o-seen] | [✅][t-seen] | [✅][c-seen] |
| Overlapping highlights join | [✅][l-format-bar] | ? | ? | ? |
| Annotate as footnote | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Remove notes easily | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | [✅][c-seen] |
| Notes leave with markers | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | ? |
| Annotate while locked | [✅][l-format-bar] | [❌][o-seen] | [❌][t-seen] | [✅][c-seen] |
| One undo each | [✅][l-format-bar] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Keyboard formatting | [✅][l-format-bar] | [✅][o-shortcuts] | [✅][t-keys] | [❌][c-seen] |
| Backticks fenced safely | [✅][l-format-bar] | ? | ? | [❌][c-seen] |
| No empty formatting | [✅][l-format-bar] | ? | ? | [❌][c-seen] |

## Padlock and undo

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Page and source padlocks | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Padlocks remembered | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| New documents unlocked | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Locked yet interactive | [✅][l-padlock] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Absent when uneditable | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Flipping keeps place | [✅][l-padlock] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Locked source says so | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tray per view | [✅][l-padlock] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Undo button | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Redo button | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Word-at-a-time undo | [✅][l-undo] | [❌][o-seen] | ? | [❌][c-seen] |
| Undo groups end sensibly | [✅][l-undo] | ? | ? | [❌][c-seen] |
| Whole-edit undo after | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Save clears history | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Flowchart own history | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Undo file deletes | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Per-document undo | [✅][l-undo] | [✅][o-seen] | [✅][t-seen] | [✅][c-edit] |
| Redo keeps displaced | [✅][l-undo] | ? | ? | [❌][c-seen] |
| Save clears both | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Typing runs grouped | [✅][l-undo] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Offsets checked | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| One-byte task flips | [✅][l-undo] | [✅][o-seen] | ? | [❌][c-seen] |
| One date spelling | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tasks named by place | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Blocks mapped to bytes | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Nested footnotes mapped | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hidden blocks undrawn | [✅][l-undo] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Flowchart editor

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Start from insert row | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Open from any diagram | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Canvas beside Mermaid text | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Each follows other | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Movable divider | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Canvas minimum width | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Nothing written until Save | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Save lands in place | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Cancel writes nothing | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Mermaid's own drawing | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Mermaid refusals explained | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Double-click adds box | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Shape picker sheet | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Shapes grouped by purpose | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Resizable shape picker | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Plus adds joined box | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Drag to connect | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Loop to same box | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Select to reshape | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Link, icon, picture fields | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rename boxes in place | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Drop box onto line | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Move between groups | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Wide line hit area | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Repoint line ends | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Box right-click menu | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Delete boxes | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Own undo and redo | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Pointer hint line | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| First box sets direction | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Flow control turns | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Mermaid lays out | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Pan any diagram | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Zoom and Ctrl-scroll | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Header moves window | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Five export formats | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Typed ending wins | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Forty-seven shapes | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Every connector style | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Line labels and stretch | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Animated lines | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Self-loops drawn | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Subgraph directions | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Quoted and Markdown labels | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Colors carried through | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Front matter kept | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Sized boxes fail closed | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Names stopping line | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Other diagrams previewed | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Spelling tidied on save | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Picker quarter height | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Fields in picker head | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| More columns when short | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Canvas press closes picker | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Invisible hit lines | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Lines brighten on hover | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hint names gestures | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Self-loop support | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Drop targets light | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Pictures stay on shrink | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Shape pictures redrawn | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Drawings cached, capped | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Menu names gestures | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Flowchart shapes

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Process shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Decision shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Input shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Output shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Document shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Multi-document shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Lined document | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tagged document | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Database shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Stored data | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Disk storage | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Direct access storage | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Internal storage | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Manual input | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Manual operation | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Manual file | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Preparation shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Subprocess shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Divided process | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Lined process | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tagged process | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Multi-process shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Priority action | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Delay shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Display shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Paper tape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Loop limit | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Collate shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Extract shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Junction shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Fork or join | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Event shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Flag shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Bang shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Communication link | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Start dot | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Stop dot | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Circle shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Double circle | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Comment shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Right comment shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Two-sided comment shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Terminal shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Summary shape | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Flowchart lines and layout

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Solid lines | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Dotted lines | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Thick lines | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Invisible lines | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Arrow, circle, cross ends | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Two-way lines | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Label a line | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Reverse a line | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Take box out | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Add box before, after | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Duplicate a box | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Delete box or line | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| New group from box | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Move into group | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Take out of group | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rename a group | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Ungroup, keep boxes | [✅][l-flow-draw] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Top-down layout | [✅][l-flow-direction] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Bottom-up layout | [✅][l-flow-direction] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Left-to-right layout | [✅][l-flow-direction] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Right-to-left layout | [✅][l-flow-direction] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| New flowchart | [✅][l-flow] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Code view

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| One-press source view | [✅][l-code-view] | [✅][o-edit] | [✅][t-keys] | [❌][c-seen] |
| Stays in source | [✅][l-code-view] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Theme syntax colors | [✅][l-code-view] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Five languages colored | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| JSON comments colored | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Others as plain text | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Recolors on theme | [✅][l-code-view] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Color squares shown | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Color words ignored | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Wrapped source lines | [✅][l-code-view] | [✅][o-seen] | [✅][t-seen] | ? |
| Pinned line numbers | [✅][l-code-view] | [✅][o-seen] | [❌][t-seen] | ? |
| Refusals explained | [✅][l-code-view] | ? | ? | [❌][c-seen] |
| Source minimap | [✅][l-code-view] | [❌][o-seen] | [❌][t-seen] | ? |
| Place kept both ways | [✅][l-code-view] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Exact spot returned | [✅][l-code-view] | ? | ? | [❌][c-seen] |

## Source editing

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Monaco editor built in | [✅][l-source-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Locked source copies | [✅][l-source-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Full editing basics | [✅][l-source-edit] | [✅][o-seen] | [✅][t-seen] | [✅][c-seen] |
| Tab indents lines | [✅][l-source-edit] | [✅][o-seen] | [✅][t-keys] | [✅][c-seen] |
| Colors as you type | [✅][l-source-edit] | [✅][o-seen] | [✅][t-seen] | [✅][c-edit] |
| Multi-megabyte files quick | [✅][l-source-edit] | ? | ? | ? |
| Sends only edits | [✅][l-source-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Buffers survive closing | [✅][l-source-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Reading shows unsaved | [✅][l-source-edit] | [❌][o-seen] | ? | ? |
| Current heading pinned | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Deeper headings stack | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Five rows maximum | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Click pinned heading | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Pinned in source | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Five-row source trail | [✅][l-pinned] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Typing help

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Note name completion | [✅][l-typing-help] | [✅][o-links] | [❌][t-seen] | [❌][c-seen] |
| Aliases in completion | [✅][l-typing-help] | [✅][o-aliases] | [❌][t-seen] | [❌][c-seen] |
| Heading completion | [✅][l-typing-help] | [✅][o-links] | [❌][t-seen] | [❌][c-seen] |
| Anchor completion | [✅][l-typing-help] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hover wiki openings | [✅][l-typing-help] | [✅][o-preview] | [❌][t-seen] | [❌][c-seen] |
| Broken links underlined | [✅][l-typing-help] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Duplicate names warned | [✅][l-typing-help] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Only on triggers | [✅][l-typing-help] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Wand toggles help | [✅][l-typing-help] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Checks off main thread | [✅][l-typing-help] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| File names before aliases | [✅][l-typing-help] | ? | [❌][t-seen] | [❌][c-seen] |
| Missing notes left alone | [✅][l-typing-help] | ? | [❌][t-seen] | [❌][c-seen] |
| Cross-note heading completion | [✅][l-typing-help] | [✅][o-links] | [❌][t-seen] | [❌][c-seen] |

## Saving

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Save appears on typing | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Green Save and dot | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Undo clears unsaved | [✅][l-save] | [❌][o-seen] | ? | [❌][c-seen] |
| Ctrl+S saves | [✅][l-save] | [✅][o-seen] | [✅][t-keys] | [❌][c-seen] |
| Refused saves explained | [✅][l-save] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Edits kept on close | [✅][l-save] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Own saves never reload | [✅][l-save] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Original encoding saved | [✅][l-save] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Missing file, nothing changed | [✅][l-write-fail] | ? | ? | [❌][c-seen] |
| Failed save indicators | [✅][l-write-fail] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Failed ticks reverted | [✅][l-write-fail] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Flowchart kept on failure | [✅][l-write-fail] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Image address kept | [✅][l-write-fail] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Clean buffers reload | [✅][l-external] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Source refreshes in place | [✅][l-external] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Background tabs refresh | [✅][l-external] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Office files reload | [✅][l-external] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Unsaved edits kept | [✅][l-external] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Big documents fetched | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Unsaved edits rendered | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Plain-word refusals | [✅][l-save] | [❌][o-seen] | ? | [❌][c-seen] |
| Code edits as changes | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| First save asks | [✅][l-save] | [❌][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Cell writes keep spacing | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Multi-block single undo | [✅][l-save] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Field edits undo once | [✅][l-save] | ? | [❌][t-seen] | [❌][c-seen] |
| Block drags undo once | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Refused ticks restored | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Pending ticks keep Save | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No redraw when unchanged | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Shared source buffer | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Exports off main thread | [✅][l-save] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Editing every format

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Source for every format | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Office part XML | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No book source view | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Tables fully editable | [✅][l-formats] | [✅][o-seen] | [✅][t-tables] | [❌][c-seen] |
| Hidden HTML editable | [✅][l-formats] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |
| Raw HTML read-only | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| HTML pages read-only | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| JSON values editable | [✅][l-data-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| YAML values editable | [✅][l-data-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Read-only YAML explained | [✅][l-data-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| INI fully editable | [✅][l-data-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Word paragraphs editable | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Spreadsheet cells editable | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Email lines editable | [✅][l-formats] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| No data gutter | [✅][l-data-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Relational tables

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Lens bar on tables | [✅][l-rdb-open] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Four table views | [✅][l-rdb-views] | [✅][o-bases-views] | [❌][t-seen] | [❌][c-seen] |
| Sort and restore | [✅][l-rdb-views] | [✅][o-bases-views] | [❌][t-seen] | [❌][c-seen] |
| Filter three ways | [✅][l-rdb-views] | [✅][o-bases-views] | [❌][t-seen] | [❌][c-seen] |
| Several filters together | [✅][l-rdb-views] | [✅][o-bases-views] | [❌][t-seen] | [❌][c-seen] |
| Column types recognized | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Field picker per view | [✅][l-rdb-views] | [✅][o-bases-views] | [❌][t-seen] | [❌][c-seen] |
| Views survive edits | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Views never write | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Links to other rows | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Hover shows row | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Missing rows marked | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Describe writes correction | [✅][l-rdb-describe] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Malformed comments ignored | [✅][l-rdb-describe] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Cell pickers | [✅][l-rdb-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Board drags write cell | [✅][l-rdb-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| One undo per change | [✅][l-rdb-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Types guessed from values | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Repeated values become choices | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| First column keys | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Relations follow links | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Rollup columns | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Reciprocal columns | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Multi-relation cells | [✅][l-rdb-relations] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Relation picker | [✅][l-rdb-edit] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Unknown types refused | [✅][l-rdb-describe] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Describe on command | [✅][l-rdb-describe] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Views survive redraw | [✅][l-rdb-views] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |

## Menus in the page

| Feature | Leaftext | Obsidian | Typora | Calibre |
| --- | --- | --- | --- | --- |
| Table right-click menu | [✅][l-table-edit] | [✅][o-adv] | [✅][t-tables] | [❌][c-seen] |
| Link right-click menu | [✅][l-open-links] | [✅][o-seen] | [✅][t-seen] | ? |
| File right-click menu | [✅][l-file-actions] | [✅][o-explorer] | [✅][t-files] | [❌][c-seen] |
| Folder right-click menu | [✅][l-file-actions] | [✅][o-explorer] | [✅][t-files] | [❌][c-seen] |
| Picture right-click menu | [✅][l-picture-actions] | [✅][o-seen] | [✅][t-seen] | [✅][c-viewer] |
| Tab right-click menu | [✅][l-tabs] | [✅][o-tabs] | [❌][t-seen] | [❌][c-seen] |
| Task date menu | [✅][l-inline] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Vault panel menu | [✅][l-vaults] | [✅][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Insert row menu | [✅][l-adding] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Diagram export menu | [✅][l-flow-export] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Favorite repoint menu | [✅][l-favorites] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Put back favorites | [✅][l-favorites] | [❌][o-seen] | [❌][t-seen] | [❌][c-seen] |
| Blank-page right-click menu | [✅][l-file-actions] | [✅][o-seen] | [✅][t-seen] | [❌][c-seen] |

[l-new]: ../01-features/07-editing.md#new-document
[l-inline]: ../01-features/07-editing.md#inline-editing-the-reading-view
[l-rename]: ../01-features/07-editing.md#renaming-from-the-heading
[l-email]: ../01-features/07-editing.md#editing-an-email
[l-fields]: ../01-features/07-editing.md#the-fields-at-the-top-of-a-note
[l-deleting]: ../01-features/07-editing.md#deleting
[l-gutter]: ../01-features/07-editing.md#the-block-gutter
[l-adding]: ../01-features/07-editing.md#adding-a-block
[l-pictures]: ../01-features/07-editing.md#images
[l-badge-box]: ../01-features/07-editing.md#badges
[l-bar-box]: ../01-features/07-editing.md#bars
[l-table-edit]: ../01-features/07-editing.md#editing-a-table
[l-formulas]: ../01-features/07-editing.md#a-table-that-adds-itself-up
[l-format-bar]: ../01-features/07-editing.md#the-format-bar
[l-padlock]: ../01-features/07-editing.md#the-padlock
[l-undo]: ../01-features/07-editing.md#undo
[l-flow]: ../01-features/07-editing.md#the-flowchart-editor
[l-flow-draw]: ../01-features/07-editing.md#what-it-can-draw
[l-flow-direction]: ../01-features/07-editing.md#which-way-it-runs
[l-flow-export]: ../01-features/07-editing.md#export
[l-code-view]: ../01-features/07-editing.md#code-view
[l-source-edit]: ../01-features/07-editing.md#editing-the-source
[l-pinned]: ../01-features/07-editing.md#pinned-headings
[l-typing-help]: ../01-features/07-editing.md#typing-help
[l-save]: ../01-features/07-editing.md#save
[l-write-fail]: ../01-features/07-editing.md#when-the-app-cannot-write-it
[l-external]: ../01-features/07-editing.md#external-changes
[l-formats]: ../01-features/07-editing.md#formats
[l-data-edit]: ../01-features/07-editing.md#editing-data-files
[l-rdb-open]: ../01-features/08-relational-tables.md#open-a-relational-table
[l-rdb-views]: ../01-features/08-relational-tables.md#views-sort-and-filter
[l-rdb-relations]: ../01-features/08-relational-tables.md#relations
[l-rdb-describe]: ../01-features/08-relational-tables.md#describe-a-table
[l-rdb-edit]: ../01-features/08-relational-tables.md#editing-a-relational-table
[l-open-links]: ../01-features/02-navigation.md#opening-a-link-in-a-new-page
[l-tabs]: ../01-features/02-navigation.md#tabs
[l-favorites]: ../01-features/02-navigation.md#favorites
[l-file-actions]: ../01-features/03-library.md#file-actions
[l-picture-actions]: ../01-features/03-library.md#right-click-a-picture
[l-vaults]: ../01-features/03-library.md#vaults
[o-edit]: https://obsidian.md/help/edit-and-read
[o-syntax]: https://obsidian.md/help/syntax
[o-adv]: https://obsidian.md/help/advanced-syntax
[o-links]: https://obsidian.md/help/links
[o-aliases]: https://obsidian.md/help/aliases
[o-preview]: https://obsidian.md/help/plugins/page-preview
[o-props]: https://obsidian.md/help/properties
[o-attach]: https://obsidian.md/help/attachments
[o-explorer]: https://obsidian.md/help/plugins/file-explorer
[o-shortcuts]: https://obsidian.md/help/editing-shortcuts
[o-tabs]: https://obsidian.md/help/tabs
[o-bases-views]: https://obsidian.md/help/bases/views
[t-home]: https://typora.io/
[t-keys]: https://support.typora.io/Shortcut-Keys/
[t-md]: https://support.typora.io/Markdown-Reference/
[t-files]: https://support.typora.io/File-Management/
[t-images]: https://support.typora.io/Images/
[t-tables]: https://support.typora.io/Table-Editing/
[c-edit]: https://manual.calibre-ebook.com/edit.html
[c-viewer]: https://manual.calibre-ebook.com/viewer.html
[c-seen]: ../05-compare.md#calibre
[o-seen]: ../05-compare.md#obsidian
[t-seen]: ../05-compare.md#typora
