Releases: sftwrdotdev/Markpad
Releases ยท sftwrdotdev/Markpad
Release list
Markpad v2.7.0
New Features
- Preview width is configurable: a setting, a shortcut pair to widen/narrow, and the preference persists (#346, #347, #348, #349)

- Editor toolbar : new icons and a show/hide toggle (#282)

- Window tags and pinned sessions rebuilt (#280)

- Moving tabs between windows rebuilt (#279)
- macOS settings menu (#339)

- Floating table-of-contents toggle (#331)

Documents
- A file over 50 KB opened as a truncated preview, and saving wrote that preview back over the whole document (#374)
- A non-UTF-8 file opened as mojibake, and auto-save wrote the mojibake over the original 1.5 s later (#379)
- Dropping two images with the same name in the same second silently replaced the first while the document still linked to it (#383)
- A read failure during session restore evicted the tab and saved the trimmed list, so an unplugged drive lost the tab permanently (#401)
- Re-opening a file that was already open with unsaved edits discarded them, and cleared the dirty flag so nothing said so (#412)
- Two tabs could hold one path with two auto-save timers writing over each other (#413, #416)
- A tab moved between windows could end up open in both, each copy with its own auto-save timer writing over the other (#366).
- Pressing โS while an auto-save was mid-write could leave the older text on disk (#436, #438).
- Quitting with two tagged windows could lose one window's pinned tags (#424).
- A stale preview render could overwrite a newer one (#254), and an interrupted session restore left the app unable to recover (#260).
Security
- Exported HTML skipped the sanitizer entirely (#376)
- The preview never used the shared sanitize policy, so a document's
<style>reached the app's own UI โ reproduced hiding the title bar and fetching a remote beacon (#384) - A link could read as
http://โฆeverywhere the user can see it and open a local file instead (#415) - Imported VS Code theme colours are validated before being injected as CSS (#362), and imported theme slugs are normalized (#301)
- Theme and image file paths are constrained to their directories (#249, #270)
- File IO, decoding and Markdown boundaries hardened on the Rust side (#371)
Export and printing
- Exported HTML now contains rendered math, syntax highlighting and Mermaid diagrams instead of raw source (#411)


- Exported HTML carries the theme, and no longer cuts collapsed sections out of the document (#382)
- PDF exports are readable in every theme; diagrams no longer come out dark-on-dark (#359)

- A PDF exported from edit mode is no longer blank (#407)
- Local images are inlined on Windows (#363)
- Find highlights no longer print, and collapsed matches are revealed (#377)
- Print layout: native controls, full page width, and tighter content rhythm (#329, #333)
- The export menu is no longer greyed out for an unsaved document you're editing (#441)
Editor and preview
- Task checkboxes work in the preview, and the change is written back to the file (#345, #352)
- Three separate LaTeX reports turned out to be one bug :
_{1}becoming italics,\\being eaten so a multi-rowalignedcollapses,\%being eaten so KaTeX treats the rest of the line as a comment. All three are comrak applying Markdown inline rules inside math delimiters; fixed by masking the span before parsing rather than patching one character at a time (#351, #402; closes #174 / #177 / #197) - Escaped dollars stay escaped, and
$$โฆ$$inside a paragraph renders (#422) - The editor context menu is fully localized and follows a language change (#381)
- URLs pasted inside code blocks are no longer turned into links (#381)
- Scroll position returns to the block you left, not to a percentage (#420)
- Heading folds are per-document, and are cleared when a tab follows a link to a different file (#425, #448)
- A leading
---no longer swallows the paragraph after it (#375) Copy Referenceproduces a link Markpad can actually follow (#403)- Preview works without saving first (#421)
- ToC jumps use heading source position (#335)
- Editor options and keyboard shortcuts now do what their labels claim (#369)
- Saving works from reading mode (#365)
- "Save image as" works for local images, and says so honestly for remote ones (#408)
- A relative link to a non-Markdown file resolves against the document instead of the app (#409, #415)
Copy Referenceproduces a link Markpad can follow (#380), and "open the exported file" had never worked because the opener plugin had no path scope (#403)- Live Mode watched the wrong file after a tab switch (#296)
- YouTube embeds open externally instead of failing in place (#338)
- Settings: the modal stays draggable (#312), collapsed toolbar sections are remembered (#286), and every setting syncs across windows instead of the last window overwriting the rest (#370)
- Recent files are merged across windows instead of overwritten (#405)
- The auto-save failure toast no longer repeats (#406)
- A malformed UTF-8 code fence crashed the renderer (#265)
- Window titles update natively (#288); a window created at startup is reused instead of a second one appearing (#318)
Windows
- "Move to New Window" froze the app.
create_transfer_windowbuilt the window synchronously, and on Windows that deadlocks. WebView2 needs the main thread free to pump messages while the window is created (#360) - Right-clicking a tab twice opened the document menu the second time, because the first menu's full-viewport overlay swallowed the click and only called
preventDefault()(#360) - Install failed outright when the Desktop or Start Menu folder did not exist โ this is the cause of the
OS Error 3reports (#400) - Uninstall could terminate unrelated processes with the same name (#358)
- Install and uninstall are recoverable if interrupted (#364)
- Markpad no longer registers itself for plain text files (#302)
- The Install button stays reachable at large system text sizes (#428)
macOS
- PDF export did not work at all (#287)
- Opening several documents at once from Finder kept only one of them (#298, #300)
- The editor paste menu was missing (#266)
Performance
- Startup JavaScript down 81 % : Monaco now loads when you open the editor rather than before the first paint. First paint went from 4770 KB to 904 KB; entering edit mode costs ~330 ms once per window (#423)
- Mermaid-heavy documents ~12ร faster to type in; diagrams are no longer redrawn on every keystroke (2185 ms โ 189 ms on a 20-diagram document) (#419)
Changelog
- fix: restore collapsed toolbar settings by @PathGao in #286
- fix: enable PDF export on macOS by @PathGao in #287
- fix: allow native window title updates by @PathGao in #288
- fix: preserve tabs after document read errors by @PathGao in #293
- fix: route Live Mode changes to the watched file by @PathGao in #296
- fix: allow opening multiple documents by @PathGao in #298
- fix: retain all macOS open-document paths by @PathGao in #300
- fix: normalize imported VS Code theme slugs by @PathGao in #301
- fix: stop associating plain text files by @PathGao in #302
- Fix split scroll sync triggered by typing by @PathGao in #304
- Update vulnerable Markdown rendering dependencies by @PathGao in #306
- Audit production dependencies in pull requests by @PathGao in #308
- fix: delimit parenthesized autolinks by @PathGao in #291
- Update vulnerable Svelte build toolchain by @PathGao in #310
- Add a minimal macOS Settings menu by @PathGao in #339
- fix: open YouTube embeds externally by @PathGao in #338
- chore: remove internal planning documents by @PathGao in #344
- Keep Settings modal drag accessible by @PathGao in #312
- Audit complete dependency lockfile in CI by @PathGao in #314
- Exclude editor bottom padding from split scroll sync by @PathGao in #316
- Reuse the created window handle during startup by @PathGao in https://github.com/sftwrdotd...
Markpad v2.6.13
Summary
Features
- Added independent native windows with menu-based tab transfer.
- Added hover marquee to reveal truncated tab titles.
Fixes
- Tabs & Windows: Fixed tab renaming. App now prompts for unsaved tabs individually on window close and batch close. Menus are guarded when dialogs are active.
- Editor: Pasting a URL over a selected URL replaces it instead of nesting. Unsaved content is preserved when toggling tasks. Prevented stale large-file loads.
Thank you @PathGao!
What's Changed
- fix: review unsaved tabs one at a time on window close; restore window state only by @PathGao in #211
- fix: remove duplicate test:frontmatter script key by @PathGao in #217
- fix: key section folds by unique heading id instead of heading text by @PathGao in #219
- fix: pair code regions by CommonMark rules in markdown preprocessing by @PathGao in #228
- fix: preserve Windows file associations on uninstall by @PathGao in #256
- fix: tab rename never worked โ window.prompt is a no-op in the webview by @PathGao in #224
- fix: pasting a URL over a selected URL replaces it instead of nesting by @PathGao in #229
- feat: reveal truncated tab titles with a hover marquee by @PathGao in #223
- refactor: deterministic fold wrapper ids by @PathGao in #221
- fix: guard menus while dialogs are active by @PathGao in #239
- test: pin raw render_markdown invocations to the pipeline allowlist by @PathGao in #220
- fix: harden Windows installer environment handling by @PathGao in #252
- feat: independent native windows with menu-based tab transfer by @PathGao in #214
- refactor: debounced preview render goes through renderTabPreviewFromRaw by @PathGao in #218
- fix: avoid stale fold height after leaving edit mode by @PathGao in #238
- fix: preserve dirty content when toggling tasks by @PathGao in #245
- fix: ignore stale large-file loads by @PathGao in #247
- ci: gate releases on complete platform artifacts by @PathGao in #241
- fix: confirm dirty tabs before batch close by @PathGao in #243
Full Changelog: v2.6.12...v2.6.13
Markpad v2.6.12
What's Changed
- Support Ctrl+F4 to close active tab on Windows by @Numb006 in #181
- Add file tab actions, Markdown navigation history, and resizable ToC by @daniel-grabowski in #190
- Configurable default mode for new files by @Numb006 in #180
- Improve export, reload, and toolbar workflows by @daniel-grabowski in #195
- Focus the existing window when opening Markdown files by @daniel-grabowski in #193
- Edit YAML frontmatter from the preview by @daniel-grabowski in #194
- Make settings modal stable and sync split scrolling by pixels by @daniel-grabowski in #196
- i18n: complete missing Korean (ko) translation keys by @moduvoice in #203
- fix: restore horizontal scroll for wide tables in preview by @legolev in #206
- fix: keep folded sections aligned after window resize by @PathGao in #210
New Contributors
- @Numb006 made their first contribution in #181
- @daniel-grabowski made their first contribution in #190
- @moduvoice made their first contribution in #203
- @legolev made their first contribution in #206
- @PathGao made their first contribution in #210
Full Changelog: v2.6.11...v2.6.12
What's Changed
- Support Ctrl+F4 to close active tab on Windows by @Numb006 in #181
- Add file tab actions, Markdown navigation history, and resizable ToC by @daniel-grabowski in #190
- Configurable default mode for new files by @Numb006 in #180
- Improve export, reload, and toolbar workflows by @daniel-grabowski in #195
- Focus the existing window when opening Markdown files by @daniel-grabowski in #193
- Edit YAML frontmatter from the preview by @daniel-grabowski in #194
- Make settings modal stable and sync split scrolling by pixels by @daniel-grabowski in #196
- i18n: complete missing Korean (ko) translation keys by @moduvoice in #203
- fix: restore horizontal scroll for wide tables in preview by @legolev in #206
- fix: keep folded sections aligned after window resize by @PathGao in #210
New Contributors
- @Numb006 made their first contribution in #181
- @daniel-grabowski made their first contribution in #190
- @moduvoice made their first contribution in #203
- @legolev made their first contribution in #206
Full Changelog: v2.6.11...v2.6.12
Markpad v2.6.11
Markpad v2.6.10
What's Changed
Full Changelog: v2.6.9...v2.6.10
Markpad v2.6.9
What's Changed
- Fix math block delimiter parsing by @wargoblin in #142
- Fix loose task list checkbox layout by @wargoblin in #140
- Add macOS native File submenu with HIG-conformant Quit by @wargoblin in #143
- Add Ctrl/Cmd+F find-in-text for the markdown preview pane by @roniaxe in #144
New Contributors
Full Changelog: v2.6.8...v2.6.9
Markpad v2.6.8
Summary
No functional changes. Users on version 2.6.7 will receive future 2.6.8+ updates directly through the Check for updates action.
See v2.6.7 release notes for full list of changes
Full Changelog: v2.6.7...v2.6.8
Markpad v2.6.7
What's New
- Toggleable auto-save
- Check for Updates menu item
- Auto-update now live on all platforms (2.6.7+)!
Fixed
- Paste in editor find widget
- Relative markdown link navigation improved
- Snap package credential error fixed
Thanks @wargoblin for the contributions
What's Changed
- Previous/next tab hotkey support by @dayeggpi in #108
- Add configurable auto-save with atomic writes by @wargoblin in #127
- Fix paste into Monaco find widget by @wargoblin in #137
- Fix relative markdown link navigation by @wargoblin in #136
- Move split view shortcut off Ctrl+H by @wargoblin in #135
- Require window-state plugin with size fix by @wargoblin in #131
- Add "Check for Updatesโฆ" menu item and update dialog by @wargoblin in #130
- Activate auto-update: signing, CI, latest.json (cross-platform) by @wargoblin in #132
Full Changelog: v2.6.5...v2.6.7
Markpad v2.6.5
Summary
Small update with several new contributors! Thank you all!
More fixes on the way.
Important
Snap package will be delayed as Snapcraft is down
What's Changed
- Chocolatey pkg update fixed
- fixed zooming for SVG and Mermaid diagrams
- fix(i18n): Mainly for zh-CN and zh-TW, making supplements and corrections by @pansy1110 in #91
- edit-file (ctrl+e) on txt file by @dayeggpi in #105
- fix(editor): fix image directory path handling and enhance security by @maxrks in #112
- Fix macOS markdown file associations by @wargoblin in #113
- [codex] Close window after final tab closes by @wargoblin in #114
- Fix markdown preview wrapping and Windows open-with registration by @KarlDavidRosen in #120
New Contributors
- @pansy1110 made their first contribution in #91
- @dayeggpi made their first contribution in #105
- @wargoblin made their first contribution in #113
- @KarlDavidRosen made their first contribution in #120
Full Changelog: v2.6.4...v2.6.5
Markpad v2.6.4
What's Changed
- Added i18n with 26 new supported languages. (thanks @maxrks!) Full list below
- Improved handling of loading large files and quicker load times overall
- Fixed unresponsive titlebar on hangs #83
Supported Languages
- English
- Japanese
- Chinese (Simplified)
- Chinese (Traditional)
- Korean
- Russian
- Spanish
- French
- German
- Portuguese (Brazil)
- Italian (it)
- Polish (pl)
- Dutch (nl)
- Swedish (sv)
- Portuguese (European) (pt)
- Romanian (ro)
- Hungarian (hu)
- Czech (cs)
- Slovak (sk)
- Greek (el)
- Finnish (fi)
- Danish (da)
- Norwegian (no)
- Vietnamese (vi)
- Indonesian (id)
- Turkish (tr)
Changes
- feat(i18n): add multi-language support and implement app internationalization by @maxrks in #87
- feat: set pasting image default folder & resolve macOS screenshot scale & setting shortcut by @maxrks in #86
- feat(settings): add multi-language support and optimize settings UI by @maxrks in #88
- feat: large file handling improvements by @alecdotdev in #89
New Contributors
Full Changelog: v2.6.3...v2.6.4