v0.20.0-rc.1
Pre-release
Immutable release. Only release title and notes can be modified.
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- fix(desktop): resolve Homebrew/standard bin dirs for GUI launches by @Jocs in #4796
- fix(muya): show and slug TOC headings by rendered plain text (#3516) by @Jocs in #4811
- Add UKey Wallet sponsor to README and website by @Jocs in #4819
- fix(desktop): apply editor max-width preference to @muyajs/core content column (#4828) by @Jocs in #4830
- Add Bengali README and links by @FahimFBA in #4823
- fix(muya): skip identity operations during deferred flush by @tech-hoon in #4815
- fix(muya): harden History against identity (null) json-change ops by @Jocs in #4838
- fix(muya): stop inline math showing a scrollbar for trailing sub/superscripts (#4837) by @Jocs in #4839
- fix(muya): isolate mermaid render failures during export (#4812) by @Jocs in #4840
- fix(desktop): correct English typos in locale and preference schema (#4787) by @Jocs in #4845
- fix(muya): stop double percent-encoding autolink hrefs by @Jocs in #4841
- fix(muya): keep pasted list items in order when merging mid-list by @Jocs in #4842
- fix(desktop): confirm before opening executable link targets (code execution) by @Jocs in #4843
- fix(muya): keep soft line breaks when exporting to HTML/PDF by @Jocs in #4844
- fix(muya): show escaped pipe in table cell code as | not | (#4849) by @Jocs in #4850
- fix(muya): preserve fenced code block info string on round-trip (#4770) by @Jocs in #4846
- fix(muya): load Prism component dependencies in order (fixes flaky c++ load) by @Jocs in #4861
- refactor(muya): treat the code fence info string as the source of truth (CommonMark) by @Jocs in #4856
- fix(muya): call h1-h6 "headings" not "headers" in the insert menu by @Jocs in #4854
- fix(desktop): don't crash on unwatchable image directories (UNC/WSL paths) by @Jocs in #4853
- fix(desktop): save files atomically to prevent data loss on crash by @Jocs in #4852
- fix(desktop): make crash-recovery buffer writes durable against power loss by @Jocs in #4864
- fix(muya): render extensionless remote images served with a charset (shields.io badges) by @Jocs in #4857
- fix(muya): follow the link when modifier-clicking a linked image by @Jocs in #4858
- fix(muya): follow the link on Ctrl/Cmd-click for reference-linked and raw-HTML linked images (#4865) by @Jocs in #4866
- fix(desktop): keep TOC collapse state across tab switches by @Jocs in #4860
- fix(desktop): flush pending edits before saving (dropped last keystroke) by @Jocs in #4859
New Contributors
- @FahimFBA made their first contribution in #4823
- @tech-hoon made their first contribution in #4815
Full Changelog: v0.20.0-beta.5...v0.20.0-rc.1
v0.20.0-beta.5
Pre-release
Immutable release. Only release title and notes can be modified.
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- fix(muya): scroll wide math blocks instead of clipping by @Jocs in #4751
- fix(desktop): route undo/redo to CodeMirror in source code mode by @Jocs in #4752
- fix(muya): leave Tab to the IME during composition by @Jocs in #4753
- fix(desktop): add a context menu to the sidebar root folder by @Jocs in #4754
- fix(muya): preserve code fence length on serialize by @Jocs in #4755
- fix(muya): refresh math/diagram preview on undo by @Jocs in #4756
- fix(desktop): resolve relative local links on export by @Jocs in #4757
- fix(muya): require a word boundary before an emoji shortcode by @Jocs in #4758
- fix(desktop): don't overwrite an existing file when creating from the sidebar by @Jocs in #4759
- fix(desktop): ignore content-identical file-change events by @Jocs in #4760
- fix(desktop): make the source-mode selection visible on dark themes by @Jocs in #4771
- fix(desktop): persist export dialog options across sessions by @Jocs in #4768
- fix(muya): convert $$ to a math block in place inside a list item by @Jocs in #4767
- fix(muya): self-close generated tags for JSX/MDX compatibility by @Jocs in #4766
- fix(muya): preserve current-line indent on Enter in code fences by @Jocs in #4761
- fix(muya): make autolinks and bare URLs followable on Cmd/Ctrl-click by @Jocs in #4763
- fix(muya): exclude selection whitespace when applying inline format by @Jocs in #4762
- fix(desktop): make empty-state CTA button labels readable in all themes by @Jocs in #4775
- fix(muya): surface the KaTeX parse error for invalid math by @Jocs in #4764
- fix(desktop): keep sidebar width + tree collapse state across icon toggle by @Jocs in #4769
- fix(muya): recognize
c++/h++as aliases for the cpp code grammar by @Jocs in #4794 - fix(muya): don't highlight LaTeX
\%as a comment by @Jocs in #4795 - fix(muya): recolor sequence-diagram text/boxes for dark themes by @Jocs in #4800
- fix(muya): keep image resize handles attached on layout reflow by @Jocs in #4802
- fix(muya): make cpp c++/h++ alias registration idempotent by @Jocs in #4816
- fix(desktop): preserve TOC collapse state across content edits by @Jocs in #4803
- fix(desktop): make Paragraph/Format commands inert in source mode (grey out menus) by @Jocs in #4810
- fix(desktop): New File on a collapsed sidebar folder expands it by @Jocs in #4809
- fix(desktop): select the query when re-opening the Find bar by @Jocs in #4807
- fix(desktop): keep diagram content when exporting with Header & Footer by @Jocs in #4805
- fix(desktop): list bundled fonts in the font picker by @Jocs in #4801
- fix(desktop): remove doubled Edit-menu separator on Windows/Linux by @Jocs in #4797
- fix(desktop): generate a PDF outline from headings on export by @Jocs in #4798
- fix(desktop): avoid PDF/print page breaks right after a heading by @Jocs in #4799
Full Changelog: v0.20.0-beta.4...v0.20.0-beta.5
v0.20.0-beta.4
Pre-release
Immutable release. Only release title and notes can be modified.
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- fix(renderer): keep the key bindings hover row readable on dark themes by @FurkaanBoraa in #4719
- fix(renderer): make the custom dictionary table readable on dark themes by @FurkaanBoraa in #4721
- feat(muya): self-contained editor typography via --mu-* options by @Jocs in #4722
- refactor(desktop): consume muya self-contained typography, remove shell style injection by @Jocs in #4726
- fix(muya): move preview toolbar to the block's top-right by @Jocs in #4734
- fix(renderer): hide muya float tools in source-code mode by @Jocs in #4732
- fix(desktop): remove duplicate title when using the native title bar by @Jocs in #4630
- fix(muya): keep a nested sublist when forward-deleting an empty list item (#1845) by @Jocs in #4725
- fix(muya): remove the inner format when un-toggling a nested inline run (#2063) by @Jocs in #4727
- docs: add commenting guidelines by @Jocs in #4738
- fix(muya): escape parentheses in inserted image paths (#3060) by @Jocs in #4728
- fix(muya): decode HTML entities in fetched page titles when pasting a URL (#2525) by @Jocs in #4729
- fix(muya): reset search state when the document is replaced (#1932) by @Jocs in #4730
- fix(muya): split on Enter over a cross-block selection (#2443) by @Jocs in #4735
- fix(muya): let Enter replace a selection when the format toolbar is shown (#3196) by @Jocs in #4736
- fix(muya): stop punctuation after a link wrapping to its own line (#2258, #3025) by @Jocs in #4737
- chore: audit Claude-authored comments against the commenting guidelines by @Jocs in #4740
- fix: normalize HTML task-list paste by @Renakoni in #4710
- fix: preserve bare URL HTML links on paste by @Renakoni in #4711
- fix: preserve whitespace-only plain text paste by @Renakoni in #4706
- fix: preserve nested HTML lists under ordered parents by @Renakoni in #4709
- fix: prevent nested empty list items from becoming setext headings by @Renakoni in #4697
- fix: preserve empty task list items when parsing markdown by @Renakoni in #4696
- fix: remove ~1s sidebar delay for newly created files (#3955) by @Jocs in #4744
- fix(i18n): degrade malformed translations to raw text instead of crashing (#4046) by @Jocs in #4745
- fix: vertically center task list checkbox with item text by @Jocs in #4750
- fix(desktop): prefer UTF-8 when a file is valid UTF-8 instead of trusting ced (#3151) by @Jocs in #4739
- fix(desktop): scroll the view up when the caret moves above the viewport (#3329) by @Jocs in #4742
- fix: scroll the active tab into view on tab switch (#3958) by @Jocs in #4743
Full Changelog: v0.20.0-beta.3...v0.20.0-beta.4
v0.20.0-beta.3
Pre-release
Immutable release. Only release title and notes can be modified.
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- fix(desktop): restore vue-tsc typecheck (vite 7 PluginOption) by @Jocs in #4667
- fix(release): support immutable releases (draft-then-promote) + docs by @Jocs in #4666
- fix(muya): undo/redo corruption on coalesced paragraph→list + text edits by @Jocs in #4669
- fix(renderer): keep find-bar prefill from being clobbered on open by @NSO73 in #4646
- fix(muya): preserve nested-list indentation in RTL mode by @Jocs in #4676
- fix(muya): load mhchem onto the same katex instance so \ce renders (#4670) by @Jocs in #4674
- fix(muya): keep inline links that are followed by a bare URL or text (#4671) by @Jocs in #4672
- fix(keybinding): sync menu bar and command palette when keybindings change by @Jocs in #4681
- fix(muya): guard detached code block in language selector (#4654) by @Jocs in #4677
- test(e2e): stabilize flaky search-prefill test (wait for selection commit) by @Jocs in #4682
- fix: export PDF/HTML/print in the editor's text direction (RTL) by @Jocs in #4678
- fix(muya): create a code-block when typing ``` + Enter inside block-quotes and lists by @Jocs in #4689
- fix(muya): prevent undo/redo exceptions from permanently disabling history (#4685) by @Jocs in #4692
- fix(muya): auto-hide inline markers when holding an arrow key out of a token by @Jocs in #4694
- test(e2e): replace fixed waits with expect.poll in editor-input by @NSO73 in #4695
- fix: normalize first-row colspan table paste by @Renakoni in #4707
- fix(renderer): use the theme text colour for the key bindings list (#3937) by @FurkaanBoraa in #4713
- fix: wrap selected text when typing auto-pair characters by @Renakoni in #4698
- fix(muya): skip empty sibling containers in caret navigation (#4644 follow-up) by @FurkaanBoraa in #4715
- fix(muya): stop the paragraph front-menu from acting on a stale block (#4686) by @Jocs in #4714
- fix(muya): re-sync the live tree from json state when an undo/redo apply throws by @Jocs in #4717
- fix(desktop): paint the launch window in the active theme's background (#3957) by @FurkaanBoraa in #4718
New Contributors
Full Changelog: v0.20.0-beta.2...v0.20.0-beta.3
v0.20.0-beta.2
Pre-release
Immutable release. Only release title and notes can be modified.
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- chore(release): v0.19.0 release branch (DO NOT MERGE until stable) by @Jocs in #4269
- chore: bump develop to 0.20.0-dev by @Jocs in #4296
- docs(release): update Step 7 asset list to 24 by @Jocs in #4298
- docs(end-user): align user docs with 0.19 prefs and platform matrix by @Jocs in #4300
- docs(dev): sync developer docs with current codebase by @Jocs in #4299
- chore: convert repo to pnpm monorepo (packages/desktop, muyajs, website) by @Jocs in #4302
- refactor(website): migrate to Next.js 15 + Cloudflare Workers CI by @Jocs in #4305
- feat(website): serve www.marktext.me (301 → apex) by @Jocs in #4308
- fix(website): www→apex redirect (middleware) + smarter preview-URL parsing by @Jocs in #4309
- ci(website): enable Preview URLs on marktext-website Worker by @Jocs in #4311
- refactor(website): redesign landing page, drop markdown engine deps by @Jocs in #4312
- feat(muya): migrate TS rewrite to packages/muya alongside legacy muyajs by @Jocs in #4314
- feat(website): add /docs route and consolidate docs/ under packages/website/ by @Jocs in #4316
- fix: replace remaining absolute raw.githubusercontent.com URLs with relative paths in READMEs by @Jocs with @Copilot in #4329
- fix(website): serve prerendered docs pages via static-assets cache by @Jocs in #4335
- fix(website): open download buttons in new tab pointing to releases page by @Jocs in #4336
- refactor(website): simplify docs subtree (palette / sidebar / markdown / nav) by @Jocs in #4349
- refactor(website): simplify landing page (helpers, types, data-driven blocks) by @Jocs in #4350
- chore(website): tighten middleware matcher; drop unused 'use client' by @Jocs in #4351
- fix(muyajs): preserve nested lists of differing types (#4341) by @Jocs in #4354
- fix(muyajs): allow CJK ideographs as flanking boundary for emphasis by @Jocs in #4355
- fix(muyajs): clamp setStart offset to legal range to prevent IndexSizeError (#2800) by @Jocs in #4358
- fix(muyajs): null-guard list block paths to prevent renderer crash (#4346) by @Jocs in #4359
- fix: restore local builds after monorepo split by @Jocs in #4361
- fix(release): add repository field for electron-builder by @Jocs in #4368
- fix(muyajs): split correct paragraph on Enter in multi-block list items (#4374) by @Jocs in #4376
- fix(renderer): improve graphite contrast and unify accent colors (#4377) by @Jocs in #4378
- feat(muya): expose desktop-required public API accessors by @Jocs in #4381
- feat(muya): expose themeable CSS variables and diagram theming by @Jocs in #4382
- feat(muya): add block duplicate/insert/delete public API by @Jocs in #4384
- feat(muya): restore flowchart and sequence diagrams by @Jocs in #4385
- feat(muya): add ImagePathPicker floating autocomplete UI by @Jocs in #4386
- fix(muya): unbreak lint:css (stylelint 17 compatibility) by @Jocs in #4388
- feat(muya): add cursorCoords + active formats to selection-change by @Jocs in #4387
- feat(muya): implement focus mode (dim inactive blocks) by @Jocs in #4389
- feat(muya): emit format-click and preview-image interaction events by @Jocs in #4390
- feat(muya): add updateParagraph block-type conversion API by @Jocs in #4391
- feat(muya): add runtime setOptions / setFont / setTabSize / setListIndentation by @Jocs in #4393
- feat(muya): add spellcheck word-replacement API by @Jocs in #4392
- feat(muya): serialize/restore undo history by @Jocs in #4394
- feat(muya): add invalidateImageCache by @Jocs in #4396
- test(muya): port MarkText regression cases (#4341/#4307/#4190) by @Jocs in #4399
- feat(muya): add createTable / insertImage / setCursor API by @Jocs in #4397
- feat(muya): add clipboardFilePath paste hook by @Jocs in #4398
- fix(muya): treat CJK as punctuation for strong/em flanking (#4307) by @Jocs in #4401
- feat(desktop): consume @muyajs/core in util files (markdownToHtml/pdf/dompurify/printService/sourceCode/icon) by @Jocs in #4402
- feat(desktop): add kebab-case editor CSS vars to themes for @muyajs/core by @Jocs in #4404
- feat(desktop): migrate editor.vue to @muyajs/core engine by @Jocs in #4406
- fix(i18n): unify quick-insert hint to "/" trigger by @Jocs in #4405
- test(parity): failing-test scoreboard for #4406 muyajs→@muyajs/core gaps by @Jocs in #4407
- fix(muya): insertParagraph immediate-block anchoring in nested blocks (PG13) by @Jocs in #4408
- fix(muya): consume autoCheck + hideLinkPopup options (PG3/PG12) by @Jocs in #4409
- feat(muya): expose block affiliation in selection-change (PG1) by @Jocs in #4410
- feat(muya): restore clipboard image paste + imageAction routing + copyAsRich (PG5/PG6/PG9) by @Jocs in #4411
- fix(muya): inline export CSS + heading ids for offline export & TOC anchors (PG7/PG8) by @Jocs in #4412
- feat(muya): emit preview-image + heading-copy-link events (PG10/PG11) by @Jocs in #4414
- feat(muya): restore drag-and-drop image insertion (PG4) by @Jocs in #4413
- feat(desktop): wire @muyajs/core parity APIs (menu state, copyAsRich, heading-link, source cursor, saved indicator) by @Jocs in #4415
- fix(desktop): pass imageAction + getPathForFile to Muya constructor (re-activate PG4/5/6) by @Jocs in #4417
- fix(muya): resolve pre-existing lint:css no-descending-specificity by @Jocs in #4419
- fix(muya): record source-mode bulk edit as a single undo boundary (PG14) by @Jocs in #4420
- test(desktop): remove redundant muyajs-engine unit specs (Phase F) by @Jocs in #4422
- fix(desktop): retarget theme.ts editor CSS at muya mu-* classes (E4) by @Jocs in #4421
- fix(desktop): port print image-src resolution off muyajs (last muya/lib import) by @Jocs in #4423
- fix(muya): crash typing '#' — guard I18n.t + add heading-copy-link locale key by @Jocs in #4424
- fix(muya): add missing image i18n keys ('Click to add an image' / 'Load image failed') by @Jocs in #4427
- fix(muya): render relative image paths anchored to the document dir (Phase G blocker) by @Jocs in #4428
- fix(desktop): Edit▸Replace action + saved-indicator false-clean (Phase G) by @Jocs in #4431
- fix(muya): preserve drive/UNC roots in relative image path resolution (#4428 review follow-up) by @Jocs in #4430
- fix: source-mode cursor sync + language-switch hint refresh (Phase G G7/G8) by @Jocs in #4432
- fix(muya): updateParagraph data-loss on list/quote + front-matter insertion + frontmatterType lang (Phase G) by @Jocs in #4429
- test: cover @muyajs/core migration regression gaps (Phase G) by @Jocs in #4434
- fix(muya): restore cross-cell table selection + resolve dead TableChessboard picker (Phase G) by @Jocs in #4435
- test(muya): de-flake heading-locale + backspace regressi...
v0.19.1
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- chore(release): v0.19.0 release branch (DO NOT MERGE until stable) by @Jocs in #4269
- chore: bump develop to 0.20.0-dev by @Jocs in #4296
- docs(release): update Step 7 asset list to 24 by @Jocs in #4298
- docs(end-user): align user docs with 0.19 prefs and platform matrix by @Jocs in #4300
- docs(dev): sync developer docs with current codebase by @Jocs in #4299
- chore: convert repo to pnpm monorepo (packages/desktop, muyajs, website) by @Jocs in #4302
- refactor(website): migrate to Next.js 15 + Cloudflare Workers CI by @Jocs in #4305
- feat(website): serve www.marktext.me (301 → apex) by @Jocs in #4308
- fix(website): www→apex redirect (middleware) + smarter preview-URL parsing by @Jocs in #4309
- ci(website): enable Preview URLs on marktext-website Worker by @Jocs in #4311
- refactor(website): redesign landing page, drop markdown engine deps by @Jocs in #4312
- feat(muya): migrate TS rewrite to packages/muya alongside legacy muyajs by @Jocs in #4314
- feat(website): add /docs route and consolidate docs/ under packages/website/ by @Jocs in #4316
- fix: replace remaining absolute raw.githubusercontent.com URLs with relative paths in READMEs by @Copilot in #4329
- fix(website): serve prerendered docs pages via static-assets cache by @Jocs in #4335
- fix(website): open download buttons in new tab pointing to releases page by @Jocs in #4336
- refactor(website): simplify docs subtree (palette / sidebar / markdown / nav) by @Jocs in #4349
- refactor(website): simplify landing page (helpers, types, data-driven blocks) by @Jocs in #4350
- chore(website): tighten middleware matcher; drop unused 'use client' by @Jocs in #4351
- fix(muyajs): preserve nested lists of differing types (#4341) by @Jocs in #4354
- fix(muyajs): allow CJK ideographs as flanking boundary for emphasis by @Jocs in #4355
- fix(muyajs): clamp setStart offset to legal range to prevent IndexSizeError (#2800) by @Jocs in #4358
- fix(muyajs): null-guard list block paths to prevent renderer crash (#4346) by @Jocs in #4359
- fix: restore local builds after monorepo split by @Jocs in #4361
New Contributors
- @Copilot made their first contribution in #4329
Full Changelog: v0.19.0...v0.19.1
v0.19.0
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- Ignore empty key bindings by @fxha in #3077
- Update auto pair quote logic by @Lorilandly in #2960
- Fix image paste handler is not executed by @fxha in #3076
- Add experimental native support for Apple M1 by @fxha in #3089
- Update dependencies by @fxha in #3096
- Fix: "delete" shortcut on a selected image deletes the text after it (#2816) by @kiyoka in #3088
- Fix links to macOS releases by @yous in #3099
- Fix typo in the DataCenter class init method by @vdeschuy in #3104
- 0.17.1 by @fxha in #3105
- Fixed multi line highlight. by @or1ko in #3115
- Don't copy (or on cut) empty data to the clipboard, matches native behavior by @mitchcapper in #3130
- Upgrade Electron to v17 by @fxha in #3138
- Remove Wayland workaround by @fxha in #3147
- Refactor menu actions and shortcut handling by @fxha in #3032
- Replace node-spellchecker with Electron builtin spell checker by @fxha in #2895
- Remove expired "marktext.app" domain by @CouldBeThis in #3350
- fix wrong logo path in ko.md by @heli-os in #3576
- Update Traditional Chinese translation of README by @ChiahongHong in #3264
- Update dependencies by @fxha in #3213
- Add .mdx extension support by @davidknezic in #3438
- FIX: 'yarn run test:specs' command fails to load @markedjs/html-differ (#3330) by @kiyoka in #3331
- fix #3150: Win32 error in renderer process by @fxha in #3214
- Fix roadmap link by @fulldecent in #3678
- upgrade to mermaid 10 by @ivy-rew in #3734
- [i18n] Improve portuguese translation on the README by @tiagozip in #3813
- chore: update readme add Inkio and remove broken link by @Jocs in #4084
- chore: Update outdated GitHub Actions versions by @pgoslatara in #4113
- Add arabic lang for doc by @Almohawis in #4097
- chore: update readme file by @Jocs in #4136
- docs: improve grammar & punctuation by @RightWrite in #3939
- add .claude .agents to gitignore by @chongchonghe in #4172
- Note added according to the issue #2208 by @aespondac in #3867
- fix: upload failure with github (#3588) by @left0ver in #3589
- Fix not colored emojis on popup by @fxha in #3215
- fix issue 3268 by @hahaha28 in #3269
- fix: #4153 suppress EPIPE crash in main process by @Wordbe in #4154
- New feature: Opening image file with the external tool (#2321) by @kiyoka in #3007
- fix: guard null imageContainer.firstChild in getImageInfo by @Jocs in #4193
- fix: prevent querySelector crash on empty heading slug by @Bowl42 in #4135
- Re-Factor MarkText with electron-vite by @Tkaixiang in #4001
- fix: restore docs accidentally deleted in PR #4001 (electron-vite refactor) by @Jocs in #4196
- restore: recover accidentally deleted tests from PR #4001 by @Jocs in #4197
- chore: upgrade project dependencies to latest compatible versions by @Jocs in #4199
- translate: convert all Chinese code comments to English by @Jocs in #4201
- fix: fix ESLint configuration and resolve all lint errors by @Jocs in #4202
- fix: resolve post-refactor regressions from electron-vite migration by @Jocs in #4203
- Make native menu theme follow app theme by @johnsmith507 in #4205
- feat: add GitHub Sponsors button to repository by @Jocs in #4207
- feat: update sponsor by @Jocs in #4208
- i18n: translate sponsor section in all language READMEs by @Jocs in #4209
- fix: support Node v24+ with native-keymap C++20 patch and automated postinstall by @Jocs in #4211
- fix: ensure npm run dev works after npm install on Node v24+ by @Jocs in #4212
- feat: migrate package manager from npm to pnpm by @Jocs in #4213
- docs: display special sponsor as a Markdown table by @Jocs in #4215
- docs: update stale references and add CLAUDE.md by @Jocs in #4216
- ci: replace manual test_pr with automated PR workflows by @Jocs in #4218
- fix: word count tooltip not showing on macOS by @Jocs in #4219
- fix: restore image fullscreen viewer broken by view-image removal by @Jocs in #4221
- feat: restore third-party license tooling and add CI validation by @Jocs in #4220
- fix: prevent crash in normalizeTable when body row has more cells than header by @Jocs in #4222
- fix: skip conflict detection for unbound shortcuts in keybinding loader by @Jocs in #4223
- fix: avoid reloading existing i18n locales by @cerredz in #4224
- fix: migrate jsconfig.json away from deprecated baseUrl (TS 6.0) by @Jocs in #4225
- fix: remove unused languine dependency (resolves CVE-2026-41650) by @Jocs in #4226
- chore: remove unused deps and upgrade all dependencies to latest by @Jocs in #4227
- ci: add Claude Code Action workflow by @Jocs in #4228
- fix: add pnpm-workspace.yaml to approve build scripts for native deps by @Jocs in #4230
- fix: build error when build mac target by @Jocs in #4232
- fix: use default font smoothing by @cerredz in #4217
- docs: update CommonMark Spec links to latest version by @Jocs in #4235
- fix: #4151 preserve scroll position on external file change by @Wordbe in #4152
- fix: Internal image cache isn't reset if failed to load (#3001) by @kiyoka in #3010
- Allow scrolling down even if no contents below by @szdytom in #3405
- Added Arch Linux to development dependencies in BUILD.md by @lawgimenez in #3381
- fix(i18n): capitalize GitHub in English and Portuguese locale strings by @Blueteemo in #4238
- docs: expand CLAUDE.md with single-test recipes and dev script catalog by @Jocs in #4239
- fix: unblock local lint and vitest runs by @Jocs in #4240
- test(e2e): broaden Playwright coverage with menu/IPC-driven specs by @Jocs in #4241
- fix(ui): repair Insert Table dialog wrap and overhaul Help menu by @Jocs in #4242
- fix(source-view): stop styling math subscripts as emphasis (#4121) by @Jocs in #4243
- feat(security): sandbox the renderer (contextIsolation, nodeIntegration: false, sandbox: true) by @Jocs in #4244
- feat(ts): migrate the entire project to TypeScript by @Jocs in #4247
- refactor(stores): type editor + preferences Pinia stores (TS migration follow-up 1/6) by @Jocs in #4249
- refactor(renderer): type prefComponents schemas + leaf SFC controls (TS migration follow-up 2/6) by @Jocs in #4250
- refactor(test): port specs to strict TS — drop @ts-nocheck, ESM imports (TS migration follow-up 3/6) by @Jocs in #4251
- refactor(renderer): type...
v0.19.0-rc.4
Pre-release
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- fix(preferences): update broken doc links to correct develop-branch paths by @Jocs in #4281
- fix(build): restore dedicated .md file icon on Windows by @Blueteemo in #4284
Full Changelog: v0.19.0-rc.3...v0.19.0-rc.4
v0.19.0-rc.3
Pre-release
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
What's Changed
- docs(release): expand RELEASE.md into a step-by-step playbook by @Jocs in #4270
- fix(release): restore updater metadata artifacts by @Jocs in #4272
- fix(sidebar): create-file button works in non-English locales by @Jocs in #4273
- chore: remove unused SVG icons from renderer by @Jocs in #4275
- FIx: switch path-browserify to Pathe + image pasting on windows + cleanup console.logs by @Tkaixiang in #4274
- refactor(image): remove GitHub uploader and None option; default to PicGo by @Jocs in #4276
- feat(sidebar): implement file & folder sort with natural ordering by @Jocs in #4277
- feat(sidebar): add toggle to hide Opened Files + cap list to 4 items by @Jocs in #4278
- build: add Windows ARM64 native build support by @Jocs in #4279
- fix(uploader): remove 5 MB hard limit on image uploads by @Jocs in #4280
Full Changelog: v0.19.0-rc.2...v0.19.0-rc.3
v0.19.0-rc.2
Pre-release
❗ This is a pre-release
- May contain bugs and unfinished features.
⚠️ Note for macOS users
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
Verifying downloads
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
Full Changelog: v0.19.0-rc.1...v0.19.0-rc.2