Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Details Markdown

Nickolay KondratyevNickolay Kondratyev79 downloads

Render Markdown (headings, lists, tables, links, embeds) inside native HTML details blocks in Reading view.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

An Obsidian plugin that renders Markdown inside native HTML <details>/<summary> blocks. Obsidian intentionally does not parse Markdown inside raw HTML blocks, so headings, lists, tables, internal links, and embeds inside a <details> fold show as literal text. This plugin fixes that: the body renders as real Markdown, visually identical to the same content written outside the block.

Scope: Rendering happens in Reading view. Live Preview (the editor) is not yet supported — there, the block shows Obsidian's native output. Support for Live Preview is planned for a future release.

Supported block shape

<details>
<summary>Summary text</summary>
### Any markdown body
- lists, [[internal links]], tables, embeds, code fences

blank lines in the body are supported (incl. inside code fences)
</details>
  • <details> on its own line; an open attribute is allowed.
  • <summary>...</summary> is optional and single-line, immediately after <details>.
  • The body is everything up to </details>, on its own line.
  • Unsupported, malformed, or unclosed blocks are left untouched (native behavior).
  • Rendering the <summary> text itself as Markdown is out of scope.

Settings

A single toggle enables or disables the plugin. When off, Obsidian's native (literal) behavior returns with nothing left behind.

Installation

From the Community Plugins directory

Settings → Community plugins → Browse → search for "Details Markdown" → Install → Enable.

Manual

Copy manifest.json, main.js, and styles.css into <vault>/.obsidian/plugins/details-markdown/, then enable the plugin in Settings → Community plugins.

Development

npm install
npm test        # unit tests (parser)
npm run build   # typecheck + bundle -> main.js
npm run dev     # watch mode

Manual acceptance tests: test-vault-notes/Details Markdown Acceptance.md.

How it works

Obsidian ends an HTML block at the first blank line, so a <details> body with blank lines is split across several render sections and its tail "escapes" the fold. The plugin re-assembles blocks from raw source (never from rendered DOM):

  • DetailsRangeScanner scans the full note text for supported block line ranges (fence-aware, nesting-aware; unclosed blocks yield no range).
  • SectionRoleClassifier decides per rendered section: opening (starts a block) → render the whole body via MarkdownRenderer.render into the existing <details> element (native <summary> and open attribute preserved); fragment (escaped content inside a block) → hidden, but only once its block's opening actually rendered, so content can never be lost.
  • A MarkdownRenderChild registered via ctx.addChild ties embeds/lifecycles to the note, so nothing leaks when the note closes. A registry reconciles edits: interior edits re-render the fold body in place; deleting a block boundary restores native output.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Render Markdown inside native HTML <details>/<summary> blocks in Reading view. Preserve headings, lists, tables, internal links, embeds and code fences so folded content displays exactly like regular Markdown; leave malformed or unclosed blocks untouched. Keep Live Preview behavior unchanged until support is added.
MarkdownHTML
Details
Current version
0.1.1
Last updated
2 weeks ago
Created
3 weeks ago
Updates
2 releases
Downloads
79
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Support
Author
Nickolay KondratyevNickolay Kondratyevnickolay-kondratyev
GitHubnickolay-kondratyev
  1. Community
  2. Plugins
  3. Markdown
  4. Details Markdown

Related plugins

Custom Views

Create custom HTML views for your notes based on filter rules. Transform how your notes are displayed.

markdown export

Export Markdown to a package, including images.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Outliner

Work with your lists like in Workflowy or Roam Research.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

Various Complements

Complete words similar to auto-completion in an IDE.

Typewriter Mode

Typewriter scroll, writing focus, current line highlight, paragraph dimming, and more!

Chat View

Chat View lets you quickly and easily create elegant Chat UIs in your Markdown Files.

Fantasy Statblocks

Create, manage and view a Fantasy Bestiary with Dungeons and Dragons style statblocks.