thdngan17 downloadsTurn every deletion into a visible strikethrough, and keep a history of thought process with color-coded highlights and an annotation sidebar.
Every word counts.
In the age of digital perfection, we often lose the messy, authentic process of thinking and writing. Every backspace erases not just letters, but the story of how an idea came to be.
Permanent Ink turns your Obsidian editor into a canvas where thoughts layer upon each other. When you hit Backspace or Delete, words don't vanish, they get crossed out, creating a visible record of your mind at work.
Picture this: you're writing and type "she walked nervously" but then change it to "she paced." With Permanent Ink, you get she ~~walked nervously~~ paced. The evolution preserved. Your false starts become your marginalia.
This plugin was built on top of ideas from jancbeck/obsidian-note-annotations. What started as a few personal modifications grew into something different enough to live on its own.
The core of the plugin. When active (shown as Permanent Ink: ON in your status bar), the editor enforces a write-forward discipline:
~~strikethrough~~.Ctrl/Cmd+Z and Ctrl/Cmd+X do nothing in restricted mode.== or ~~ markers.Toggle the mode by clicking the status bar item or running the Toggle editing mode command.
Select any text and press H (or use the Highlight selection command) to wrap it in ==highlight==.
In the live preview editor, highlights render as colored spans. Clicking one opens a popover where you can:
==text==<!--your comment @colorname-->)The color palette options are configurable in the plugin settings.
Select text and press Backspace, Delete, or use the Strikethrough selection command to wrap it in ~~strikethrough~~.
Like highlights, clicking a strikethrough in live preview opens the same popover, where you can attach a comment or remove it.
Whenever you select text with your mouse or finger, a small floating toolbar appears near the selection with two options:
The popup is draggable. You can also use keyboard shortcuts (H for highlight, Backspace/Delete for strikethrough) while it's open.
Click the quote icon in the ribbon to open a sidebar panel listing every highlight and strikethrough in the current document.
Each card shows the annotated text, its type, and any attached comment. Clicking a card scrolls the editor to that annotation and briefly flashes a border around it. From the card you can:
The sidebar updates automatically as you edit.
A lightweight indentation system built for restricted mode. On the last line of the document, pressing Tab inserts a $\quad$ block at the start of the line (rendered as indentation in the editor). Pressing Tab again adds another \quad to deepen it.
In restricted mode, Backspace and arrow keys are aware of these blocks and skip over them cleanly rather than landing the cursor inside the LaTeX syntax.
Highlights and strikethroughs with comments render correctly in Obsidian's reading view. The color is applied as a background, and hovering over an annotated word shows the comment as a tooltip.
.obsidian/plugins/permanent-ink/ inside your vault.Open Settings → Permanent Ink to adjust:
Expand selection: when enabled, highlight and strikethrough commands automatically expand the selection to cover complete words. This prevents broken markdown rendering from partial-word selections. Hold Alt while selecting to override this on the fly.
Highlighting color options: a comma-separated list of CSS color names that appear in the color palette. Requires an app reload to take effect.
| Key | Behavior |
|---|---|
| Typing | Moves cursor to end of document, then types normally |
Backspace / Delete |
Applies strikethrough to selection or nearest word |
Tab |
Adds $\quad$ indentation on the last line |
Enter |
Blocked unless cursor is at the very end of the document |
Ctrl/Cmd+Z |
Blocked |
Ctrl/Cmd+X |
Blocked |
| Arrow keys | Navigation, with smart skipping around annotation blocks and quad indentation |
"The first draft of anything is shit." — Ernest Hemingway.
Maybe that's exactly why we should keep it around.