Export Markdown Notes to HTML
Paste Markdown notes and get one offline-friendly HTML document with embedded styling, sanitized rendered Markdown and a linked table of contents.
Bundle Markdown notes into one portable page
Use this exporter when several Markdown notes need to travel as a single file: meeting notes, a project handbook, a research digest, or a release checklist. It renders CommonMark plus common GitHub-flavored Markdown features, sanitizes the HTML, adds stable heading anchors, generates an optional linked table of contents, and embeds all CSS directly in the output.
Worked example
Paste notes like this:
# Project handbook
## Setup
Run the installer.
## Release checklist
- [ ] Tests pass
- [ ] Changelog updated
# Operations
## Rollback
Restore the previous build.
Choose Split notes by: Level-1 headings, Table of contents: Sticky
sidebar, TOC depth: 3, turn on Number sections, set the title to
Project Handbook, and export. The result is one complete HTML document you can
save as .html, send to someone else, or open offline.
Limits and edge cases
Remote images are not fetched and inlined; images that are already data: URIs
stay embedded. Code blocks are styled as readable monospace blocks, but the tool
does not ship a language highlighter. Raw HTML from the notes is sanitized, so
scripts, event handlers and unsafe links are removed before the output is
wrapped.
FAQ
Can I export multiple real files or a folder?
Paste their Markdown into the notes field. Use level-1 headings when each note
already starts with # Title, or thematic breaks (---) when you want explicit
boundaries between pasted notes.
Is the output really self-contained?
Yes. The exporter returns one <!doctype html> document with embedded CSS and no
external JavaScript, fonts or stylesheets. Remote images are the exception: the
tool does not fetch and embed them for you.
Why sanitize the Markdown output?
The exported file is meant to be shared. Sanitizing strips scripts, inline event
handlers and javascript: links so a pasted note cannot turn into an active
HTML payload in the final document.
How does the table of contents choose headings?
Every rendered heading receives a unique slug anchor. The TOC depth controls the
deepest heading level listed, from 1 through 6; headings deeper than that
still appear in the document but are omitted from the TOC.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool notes-to-html-export "# Project notes
## Decisions
- Use one portable HTML export.
# Meeting notes
## Actions
- [ ] Send the summary."New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/notes-to-html-export/?notes=%23%20Project%20notes%0A%0A%23%23%20Decisions%0A%0A-%20Use%20one%20portable%20HTML%20export.%0A%0A%23%20Meeting%20notes%0A%0A%23%23%20Actions%0A%0A-%20%5B%20%5D%20Send%20the%20summary.&split=heading&toc=sidebar&toc_depth=3&number_sections=true&title=Notes&theme=lightMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
