Advanced HTML Export
pendingby fnumatic
Export notes as self-contained HTML files with advanced features.
Obsidian Advanced HTML Export
Export Obsidian notes as self-contained HTML files with advanced features for sharing and archiving.
Pitch
Turn your entire wiki into a single HTML file. Export one note or your whole network of linked notes — either way, you get one portable, self-contained file that's easy to share, archive, or send to anyone. No broken links, no missing assets, no hassle.
What is this plugin for
The Advanced HTML Export plugin allows you to export individual Obsidian notes as self-contained HTML files. Key features include:
- Self-contained exports: All CSS is embedded, no external dependencies
- Clean formatting: Uses GitHub-style markdown rendering with responsive design
- Safe filenames: Automatically generates web-safe filenames
- Progress feedback: Shows export progress and completion notifications
- Current file export: Quick export of the currently active note via command palette
- Bulk wiki export: Export entire wikis as single HTML with SPA navigation
- Wiki link resolution: Automatically resolves [[Wiki Links]] across all notes
- Sidebar navigation: Collapsible sidebar with page list and search
Why another HTML export plugin
While Obsidian has built-in HTML export capabilities, this plugin offers several advantages:
- Clean export of inline nested notes: Properly handles and displays nested note structures with clean formatting
- TOC with fully working links: Generates table of contents with functional internal links for navigation within complex documents
- Export renderings of other plugins: Captures and exports the rendered output from other Obsidian plugins (like Dataview, Kanban, etc.)
- Smallest HTML files possible: Produces highly optimized, minimal HTML files even when embedding images and other assets
Wiki Export
Export a network of linked notes as a single HTML file with single-page application navigation.
Features
- Single HTML file: All notes embedded in one portable file
- SPA navigation: Instant page switches without reload
- History support: Browser back/forward buttons work
- Breadcrumb navigation: Shows current location in wiki
- Collapsible sidebar: Hide/show navigation panel
- Page search: Filter pages in sidebar
Usage
- Open any note in the wiki
- Run "Export wiki as HTML" from command palette
- All linked notes are collected and exported
- Open the HTML file - navigate between pages using the sidebar or links
Embedding Excalidraw into your Notes and Exporting
Prerequisites
Ensure you have the Obsidian Excalidraw Plugin installed and enabled.
Configuration
To include Excalidraw diagrams in your exported HTML, configure the following settings in the Excalidraw plugin:
-
Open Excalidraw Settings
- Go to
Settings → Community Plugins → Excalidraw
- Go to
-
Enable SVG Export
- Find the "Export" section
- Enable "Export as native SVG"
- This ensures diagrams are embedded as actual SVG markup rather than temporary blob URLs
Usage
Once configured, embed Excalidraw diagrams in your notes using wiki-links:
![[my-diagram.excalidraw]]
The diagrams will be automatically converted to embedded SVG when exporting to HTML.
Troubleshooting
Problem: Excalidraw diagrams appear as empty placeholders or don't render
Solution: Verify "Export as native SVG" is enabled in Excalidraw settings
Installation
Via BRAT Plugin (Recommended)
- Install the BRAT plugin from Obsidian's community plugins
- Open BRAT settings and add this repository:
fnumatic/obsidian-advanced-html-export - Enable the plugin in your Obsidian settings
Manual Installation
- Download the latest release from the GitHub releases page
- Extract the files to your vault's
.obsidian/plugins/obsidian-advanced-html-export/directory - Reload Obsidian and enable the plugin in settings
Usage
Single File Export
- Open any note in Obsidian
- Use the command palette (
Ctrl/Cmd + P) and search for "Export Current File as HTML" - The file will be exported as a self-contained HTML file and downloaded to your default downloads folder
- Open the HTML file in any web browser to view the formatted note
Wiki Export
- Open any note in your wiki (a note with [[Wiki Links]] to other notes)
- Use the command palette (
Ctrl/Cmd + P) and search for "Export wiki as HTML" - All linked notes are collected and exported to a single HTML file
- Open the HTML file to navigate between pages using the sidebar or links
Development Process
Prerequisites
- Node.js 22 (LTS)
- A package manager (pnpm, npm, or yarn)
Setup
- Clone the repository
- Install dependencies:
pnpm install
Development
-
Start development server:
pnpm devThis launches an interactive development environment that:
- Scans for Obsidian vaults that have been opened at least once
- Presents a menu to select which vault to develop against
- Builds the plugin in watch mode with source maps
- Automatically copies updated plugin files to the selected vault on each change
Plugin Hot Reload in Obsidian
For automatic plugin reloading in Obsidian without restarting the app, install the Hot Reload plugin from the Obsidian community plugins. This allows your changes to be reflected immediately in the running Obsidian instance.
Building
- Build for production:
pnpm build - Preview the built plugin:
pnpm preview
Testing
- Run all tests:
pnpm test - Run tests in watch mode:
pnpm test:watch - Type check:
pnpm type-check
Release procedure
The release process uses release-it for automated versioning and publishing.
Artifacts generated
- Built plugin files (main.js, manifest.json, styles.css)
- CHANGELOG.md with release notes
- GitHub release with attached plugin zip
- Version tags in git
GitHub Actions
release.yml: Triggers on version tags, builds and releases to GitHubbeta-release.yml: Triggers on beta branches/tags for pre-releases
Local testing of GitHub Actions
Use the act tool to test workflows locally:
# Install act
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | bash
# Test release workflow
act -j release
# Test beta release
act -j beta-release
Standing on shoulders of giants
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.