github zhitongblog/solomd v3.6.0
SoloMD v3.6.0

latest releases: v4.11.11, v4.11.11-wintest, v4.11.10...
3 months ago

TL;DR

v3.6 ships live-edit image / table inline rendering (#44 — the long-standing live-edit gap) plus 5 polish fixes rolled in from rapid user feedback after v3.5.5.

Auto-update: existing v3.0.x+ installs see the in-app prompt within 24h. brew upgrade --cask solomd works on Mac.


🔨 #44 — Live-edit image & table block widgets

In live-edit view mode (the toolbar pen-on-paper icon), markdown source is shown inline with formatting. Until v3.6, two block-level kinds didn't render in place:

  • Image lines![alt](url) showed as raw source even when the line was nothing else
  • GFM tables| col1 | col2 |\n|---|---|\n|...| rendered as text rows

v3.6 adds two CodeMirror block decorations (app/src/lib/cm-live-blocks.ts):

  • A whole-line image collapses to an <img> widget, src resolved through the same resolveImageSrc path used by the Preview pane (relative to workspace + active note's directory)
  • A table block (header + separator + body rows) collapses to a real <table>, rendered through the same markdown-it pipeline

Move the cursor onto any line inside the matched block → the widget unmounts and the source returns. No view-mode switch needed.


✅ Five polish fixes

  1. AI button → wrong settings location. Clicking the toolbar AI button when AI is disabled used to open Settings on the default basics tab. Now the solomd:open-settings event takes a detail.section, and AI entry points (toolbar + AIRewriteOverlay) route to the integrations section directly.

  2. Image export crop-to-content. Short notes used to export with a tall blank area below them — html2canvas was capturing more than the rendered article's bounding box. Fix: pass explicit width / height / windowWidth / windowHeight from getBoundingClientRect() so the canvas exactly matches the rendered DOM.

  3. "Created with SoloMD" watermark made user-controlled. Previously hardcoded as a footer on every PNG export. New setting imageExportBranding (default ON for visibility, but explicitly toggleable in Settings → Export). When off, exports skip the footer + use tighter bottom padding.

  4. Folder picker remembers last workspace. useFiles.openFolder() now passes defaultPath: workspace.currentFolder to the Tauri folder dialog. Without it, the OS picker reopened at the system default each time, ignoring the workspace SoloMD already had loaded.

  5. Mac narrow-window toolbar overflow (#181). When the window was narrow enough that the toolbar's natural width exceeded it, right-side critical buttons (AI / Sponsor / Settings) were silently clipped. v3.6 sets .toolbar to overflow-x: auto with hidden scrollbar + flex-shrink: 0 on every child group; right-edge buttons stay reachable via two-finger swipe at any width.


📥 Download

# Mac
brew upgrade --cask solomd

# Or grab dmg / msi / AppImage / deb / rpm from Assets below

CLI / MCP server bumped to 3.6.0 with the rest:

curl -fsSL https://solomd.app/install.sh | bash      # Mac/Linux
irm https://solomd.app/install.ps1 | iex             # Windows PowerShell

What's next — v3.7

iPad / Mac App Store resubmission, plus iterating on whatever lands in Discussions + issues over the next cycle.

Full Changelog: v3.5.5...v3.6.0

Don't miss a new solomd release

NewReleases is sending notifications on new releases.