Skip to content

Possible feature: Obsidian native rendering (Live Preview / Reading view) #24

Description

@sadigaxund

Recorded analysis from 2026-08-30 so it does not get re-derived. Today the plugin renders through its own side-by-side ItemView, by design; nothing renders in Obsidian's own editing or reading surfaces.

Reading view (markdown post-processor): decline permanently. Obsidian hands post-processors its OWN rendered output block by block. Directive syntax arrives as plain paragraph text, and a container directive spans multiple markdown blocks, so the opener, children, and closer land in separate callbacks with no clean way to reassemble them. The only escape is hijacking the whole document render, which fights Obsidian's renderer cache and every other plugin. Structurally mismatched, not worth building.

Live Preview (CM6 editor extension): feasible, expensive, demand-driven. The render-while-you-type experience needs CodeMirror block widgets replacing directive ranges, syntax reveal when the cursor enters a range, incremental re-parse per keystroke, a React root per widget with correct lifecycle, and interactive components living inside an editable surface. Plugins do pull this off, but it is a permanent maintenance tail (CM6 decoration edge cases, Obsidian updates, theme conflicts). It also puts pressure on the rendering-never-executes invariant, which the separate preview keeps trivially clean. Park as post-1.0, pick up on real user demand.

Cheap first step when appetite exists: a highlight-only CM6 extension that colors directive fences and attributes while editing, the Obsidian analog of the VS Code TextMate grammar. Low risk, no rendering, makes source editing feel supported. This step can ship alone, long before any widget rendering.

No action scheduled.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions