Turn your Kindle Notes into Markdown
Use your Kindle app to email your book's highlights and notes as an HTML file. Then drop it here to convert it into Markdown, perfect for Obsidian and other note-taking apps.
Your files never leave your computer—all conversion happens locally in your browser.
Drop Kindle Notebook HTMLs here to convert
or click to choose files
Customize output (advanced)
The text area below is a
Handlebars
template that turns each Kindle file into Markdown. Edit it to
change how your .md files look. Changes are
saved to your browser automatically as you type.
Template variables & syntax reference
Copies a self-contained prompt with the data shape, helpers, template reference, and your current edits (if any). Paste into any chat assistant for help tweaking it.
Inserting values
Wrap a name in double curly braces. Built-in values:
{{title}}— the book's title-
{{author}}— the author or author list -
{{date}}— the moment of conversion (use theformatDatehelper below to render it)
Looping over chapters & entries
{{#each sections}} … {{/each}} repeats its
inner block once per chapter. Inside the loop:
-
{{heading}}— the chapter name (may be empty for entries before any heading) -
{{#each entries}} … {{/each}}— repeats once per highlight, note, or bookmark
Inside an entry:
-
{{type}}—"highlight","note", or"bookmark" -
{{text}}— the highlighted or noted text -
{{location}}— Kindle's location string (e.g.Chapter 1 > Page 19 · Location 285) -
{{color}}— only present for highlights
Showing only one kind of entry
Combine {{#if}} with the eq
helper to render just highlights (or just notes,
bookmarks):
{{#if (eq type "highlight")}}> {{text}}{{/if}}
Formatting dates
Pass {{date}} to the
formatDate helper with a format string:
-
{{formatDate date "yyyy-MM-dd"}}→2024-01-05 -
{{formatDate date "MMMM d, yyyy"}}→January 5, 2024 -
{{formatDate date "yyyy-MM-dd[T]HH:mm"}}→2024-01-05T08:04
Wrap literal characters in [brackets] so they
aren't treated as tokens (the T in ISO
timestamps, for example).
Tokens (examples for Jan 5, 2024 at 08:04:09):
yyyy·yy- year —
2024·24 MMMM·MMM- month name —
January·Jan MM·M- month number —
01·1 dd·d- day of month —
05·5 HH·H- hour (24h) —
08·8 mm·m- minute —
04·4 ss·s- second —
09·9
YAML-safe text
If you embed a value inside a single-quoted YAML string
(the default aliases field does this), wrap
it with {{yamlEscape …}} to double any
apostrophes — otherwise titles like
Surely You're Joking, Mr. Feynman! break the
YAML parser.