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.

Try:
Standalone HTML

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=light

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.