Export Img
approvedby Egoism
Export notes as images with reading-view fidelity (callouts, code, embeds, Mermaid, and more). - This plugin has not been manually reviewed by Obsidian staff.
Export Img — export Markdown notes as images that approximate Obsidian Reading view.
Themes · Callouts · Code · Math · Mermaid · Embeds · Frontmatter · Author · Watermark
What it does
Export Img opens an Export Studio that:
- Renders the note with Obsidian’s
MarkdownRenderer - Loads remote images through Obsidian
requestUrlinto a session cache (status shows progress; first preview waits until they are ready) - Fits wide blocks to the export width and optionally clamps media height
- Settles images, fonts, and diagrams, then captures with modern-screenshot
Studio preview stays at 1× for speed. Copy / Save use your export scale (default 2×) with font embedding.
Install
- Community plugins → search Export Img (after publish), or
- Manual: put
main.js,manifest.json, andstyles.cssfrom Releases into.obsidian/plugins/export-img/
Requires Obsidian 1.5.7+. Plugin id: export-img.
Contributors and branch model: README.dev.md · HANDOFF.md.
Current development branch: v1.0.9
Usage
| Action | How |
|---|---|
| Export note | Command / file menu → Export Img |
| Export selection | Command / editor menu (optional quick-copy skips Studio) |
| Export folder | Folder menu → ZIP of images (desktop) |
| Refresh preview | Preview pane Update preview control (bottom-right) |
Settings open from Settings → Export Img. Author/watermark fields there are prefill only — enable them with the toggles inside Export Studio. Save writes the studio draft back to plugin settings (Copy does not).
Features
Export Studio
- Live bitmap preview with pan / zoom (kept across updates; first open + double-click/tap re-fit)
- Shared controls for width, theme, padding, split, media limits, decorations
- Settle status (idle / rendering / ready / timed out) plus remote-image loading progress
- On timeout, Copy/Save stay disabled until you confirm Export anyway
- Update preview (preview pane) rebuilds / re-captures; Copy / Save also refresh when the preview is stale
- Optional Auto re-render preview on config change (default on desktop, off on mobile)
Media layout
| Setting | Behavior |
|---|---|
| Max media height | Caps embeds, Mermaid, and other wide blocks after width fit. 0 / empty = no limit |
| Media alignment | Left or Center, applied only to media that reaches that height cap. Shorter media keeps the note’s own layout |
HTML badge rows (several inline <img>s in one paragraph) stay horizontal — only Obsidian embed images use block layout.
Remote images
- Network
http(s)images are fetched once per plugin session and reused from an in-memory blob cache - Rejects non-image MIME types and payloads over ~12 MB; failures show a notice
- Title bar shows loading progress until hydrate finishes, then the first preview is captured
- Cache is cleared when the plugin unloads
Decorations
- Author bar — toggle (Studio only), name, bio, alignment, avatar (upload / vault file as data URL / remote URL)
- Watermark — toggle (Studio only), text or image, opacity and rotation
Long notes
- Split: off · fixed height · horizontal rules
- Default fixed page height ≈
width × 1.414(A4). Blocks are never cut mid-element.
Batch & selection
- Folder export → ZIP on desktop; vault attachments per image on mobile
- Selection export; optional quick copy without opening Studio
Desktop & mobile
Desktop is the primary target (Studio, clipboard, ZIP).
On mobile:
- Save writes images into the vault as attachments (Notice shows the path). Prefer this over Copy.
- Copy may be unavailable
- Multi-page / folder exports save one vault file per page (no ZIP on mobile)
- Studio: compact inputs, normal label sizes; pinch-zoom / double-tap fit; preview fits ~94% width with 3% gutters
- Modal keeps side margins from the screen edge (~92vw)
- Changing settings does not auto-refresh by default on mobile — tap Update preview, or Copy / Save (they refresh first). Desktop defaults to auto re-render; toggle in settings.
- Full capability: 3× scale and user-controlled Split (no forced auto-pagination). Heavy exports show an advisory notice; enable Split or lower scale if the device struggles
- Render wait timeout capped at 5s
Resolution
| Path | Scale | Fonts | Intent |
|---|---|---|---|
| Studio preview | 1× | No | Fast feedback |
| Copy / Save | 1× / 2× / 3× | Yes | Shareable sharpness |
Limits vs Reading view
Exports approximate Reading view; they are not a screenshot of the open pane:
- Offscreen render host, not the live Reading DOM
- Wide blocks are fitted to the chosen width
- “Frontmatter” is a simplified property table, not the Obsidian Properties UI
- Forced light/dark copies app theme CSS variables onto the export host; community themes that style via
body.theme-*descendant selectors (not variables) may still partially follow the shell - Math settles when MathJax containers are present; complex equations may still soft-timeout
- Community themes and plugin widgets may differ
- Code blocks and tables keep Reading column width (not shrink-to-fit); very long lines may extend the bitmap
- Preview is 1× without fonts; export uses your scale with fonts
- Slow assets may soft-timeout (status: Timed out — export blocked until confirmed)
Credits
Inspired by the community Export Image plugin — this project is a full rewrite and enhancement, focused on Reading-view fidelity.
Capture: modern-screenshot.
License
MIT · Egoism (@379949990)
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.