README file from
GithubEmbed HTML
Obsidian embeds notes, images and PDFs, but an .html file in your vault is just a file you can open — you cannot show it inside a note. So a report, a chart exported from another tool, or a page you built yourself has to live outside your notes, or be flattened into a screenshot.
This plugin embeds HTML files directly in a note, with the same ![[file.html]] syntax you already use, sized how you want, styled to match your theme, and able to run its own JavaScript.
Demo vault
The documentation is an interactive demo vault. Every feature has a note that explains what it does and why you would want it, with real HTML files already in place to embed.
Start reading here — it is plain markdown, so it works on GitHub with nothing installed.
A copy of the vault ships with every release. You can access it via any of the following:
- Running the
Embed HTML: Open demo vault command. - Downloading
embed-html-demo-vault.zipfrom the Releases. It unzips into a singleembed-html-demo-vault-<version>folder. - Browsing its source in
demo-vault/in this repository.
What it does
- Embed an HTML file in a note, with
htm,html,shtml,xhtandxhtmlall supported. 01 Basic Embed · 07 File Extensions - Embed a page from the web or your local network by its address, with
or![[https://host/page.html]]— shown as an isolated page that keeps its own styles and scripts. 14 Remote HTML Pages - Size it — a width, a height, both, auto-fit to the content, or full control with CSS declarations, with defaults in the settings. 02 Custom Size
- Show only part of a page — scroll to an element by id, or extract just that element. 03 Scroll to Element · 04 Extract Element
- It stays a real page — its JavaScript runs, its links work, and its stylesheets, scripts, images and fonts load. 05 JavaScript · 06 Links · 13 External Stylesheets and Assets
- It fits your vault — follows your theme's color scheme, takes a border and background, and can open in its own tab or in your external browser. 09 Appearance · 08 Direct View · 11 Open in External Browser
- Paths work how you expect — relative to the note or from the vault root. 10 Relative and Full Path
- Table headers stay put while you scroll a long table. 12 Sticky Table Headers
See also
| Plugin | Features | How Embed HTML differs |
|---|---|---|
Artifact Embed |
File, URL or inline HTML cards; reload/copy; theme styling; height only | Overlaps on file/URL content; native embed syntax; width and height |
Custom Frames |
Web-app panes; presets and custom styling; configured-frame blocks | Overlaps on web content; also embeds vault HTML files |
HTML Embed |
Unlisted; vault HTML with scripts; sized html-embed blocks |
Overlaps on file embeds; native syntax and web pages too |
HTML Embed Anywhere |
Unlisted; file/URL html-embed blocks; canvas cards; Plotly fitting |
Overlaps on file/URL content; native embed syntax |
HTML Page Preview |
Reading-view HTML embeds; global 16:9 or infinite height | Broader rendering: per-embed sizes; Live Preview too |
HTML Prototype Viewer |
HTML tabs; device-width presets; live reload; html-preview blocks |
Alternative syntax: native embeds; file and web-page content |
HTML Reader |
HTML/MHTML tabs; five trust modes; search and zoom; no note embeds | Different placement: embeds content inside notes |
HTML V Editor |
HTML-file embeds and inline blocks; visual HTML editing; desktop-only | Overlaps on embeds; mobile support; never writes the HTML file |
HTML Viewer Plus |
Sized HTML-file embeds; element selection; zoom/search; MHTML viewer | Overlaps on file embeds; also embeds web pages |
Local HTML Embed |
html-embed blocks; vault files or note-matched files; desktop-only |
Alternative syntax: native embeds; mobile support |
Local Web Page Viewer |
HTML tabs; inlined stylesheets; zoom, bookmarks, scroll memory; desktop/mobile | Different placement: embeds content inside notes |
Style HTML Viewer |
HTML tabs and resizable html-viewer blocks; per-file script consent; diagnostics |
Alternative syntax: native embeds; explicit per-embed dimensions |
ZJ HTML Studio |
Sized HTML-file embeds; local server; trust modes; live reload; desktop-only | Overlaps on file embeds; also web pages; mobile support |
Last searched for similar plugins on 2026-10-26.
Installation
The plugin is available in the official Community Plugins repository.
Beta versions
To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:
- Ensure you have the BRAT plugin installed and enabled.
- Click Install via BRAT.
- An Obsidian pop-up window should appear. In the window, click the
Add pluginbutton once and wait a few seconds for the plugin to install.
Debugging
By default, debug messages for this plugin (id: embed-html) are hidden.
If you need to enable them refer to the documentation.
Changelog
All notable changes to this project will be documented in the CHANGELOG.
Contributing
Contributions are welcome — see CONTRIBUTING to get set up.
Support
Filing an issue (for AI agents and humans)
Open issues through the issue forms, not as blank issues.
To report a bug from inside Obsidian, run the Embed HTML: Report a bug command. It opens the bug form with the plugin version, the Obsidian version and your operating system already filled in.
Filing from the CLI or the API (gh issue create --body, or an AI agent filing for you) skips the form, and gh issue create --template cannot load an issue form. In that case, open the matching form in .github/ISSUE_TEMPLATE/, copy every field as a ### <label> heading in the form's order, and fill in each one. Always state the plugin version, the Obsidian version and your operating system.