Export Img

approved

by 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.

47 downloadsUpdated 13d agoMIT

Export Img

Export Img — export Markdown notes as images that approximate Obsidian Reading view.
Themes · Callouts · Code · Math · Mermaid · Embeds · Frontmatter · Author · Watermark

release obsidian pnpm license


What it does

Export Img opens an Export Studio that:

  1. Renders the note with Obsidian’s MarkdownRenderer
  2. Loads remote images through Obsidian requestUrl into a session cache (status shows progress; first preview waits until they are ready)
  3. Fits wide blocks to the export width and optionally clamps media height
  4. Settles images, fonts, and diagrams, then captures with modern-screenshot

Studio preview stays at for speed. Copy / Save use your export scale (default ) with font embedding.


Install

  1. Community plugins → search Export Img (after publish), or
  2. Manual: put main.js, manifest.json, and styles.css from 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

ActionHow
Export noteCommand / file menu → Export Img
Export selectionCommand / editor menu (optional quick-copy skips Studio)
Export folderFolder menu → ZIP of images (desktop)
Refresh previewPreview 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

SettingBehavior
Max media heightCaps embeds, Mermaid, and other wide blocks after width fit. 0 / empty = no limit
Media alignmentLeft 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: 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

PathScaleFontsIntent
Studio previewNoFast feedback
Copy / Save1× / 2× / 3×YesShareable 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.