# Zettlr changelog > A markdown editor for writers and researchers. - Vendor: Zettlr - Category: Productivity - Platforms: Desktop - Official site: https://www.zettlr.com - Tracked by: What's New (https://whatsnew.fyi/product/zettlr) - Harvested from: GitHub (Zettlr/Zettlr) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v4.7.0 — Release v4.7.0 - Date: 2026-07-26 - Version: v4.7.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.7.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.7.0 - Labels: Platforms: Desktop - **added** — Custom shortcuts are now available, allowing you to customize many existing shortcuts and assign text transformations to frequently used keys with interactive recording, reset functionality, and conflict detection - **added** — Editor theme can now be set to light or dark appearance independent of the app appearance - **added** — Click a long-running-task notification for projects and single files to directly open the corresponding file - **added** — Popovers can now be closed by pressing Escape - **added** — Zettlr now trusts system certificates when making network connections, enabling use of custom TLS certificates for corporate firewalls - **added** — New Vue directive v-focus that focuses elements as soon as they are mounted to the DOM - **changed** — Project properties layout reorganized to place custom templates and CSL section on the general tab and move export profile picker to its own tab - **changed** — Update Pandoc to v3.10.1 - **changed** — Update Electron to v43.1.0 - **changed** — Improve performance of the editor - **fixed** — Fixed regression from 4.6.1 where full-text search would not search any open standalone files - **fixed** — Fixed issue on macOS where opening a file from Finder with no open main window would not automatically open one - **fixed** — Fixed bug that would replace a magic quote with a regular quote instead of deleting text if adjacent text was selected - **fixed** — Table of Contents title in the sidebar is now properly reset - **fixed** — Fixed linter warning for footnotes without spaces - **fixed** — Fixed regression that caused windows to briefly flash white when macOS vibrancy is disabled and app is set to dark mode - **fixed** — Fixed s/S shortcuts in vim mode - **fixed** — Fixed regression causing timeouts when using local LanguageTool integration with very long texts - **fixed** — Fixed issue where empty Pandoc spans would crash the span renderer - **fixed** — Fixed issue where the label of the open automatically checkbox in the export popover would not be clickable - **fixed** — Fixed visual glitch when running multiple full-text searches between showing and hiding the search pane - **fixed** — Fixed bold and italic styling - **fixed** — Fixed buggy interactions between snippets and typewriter mode - **fixed** — Improved handling of invalid dates in the statistics provider - **removed** — Removed deprecated path check for the app The next update for Zettlr comes again with a bundle of improvements and new features for you to enjoy. Again, we have spent a lot of time fixing a magnitude of issues and improving the usability of the app. Besides these rather minor but plentiful improvements, there are two notable new features. First, we are more than happy to finally implement custom shortcuts. Those have been on our users' wishlist for years, and we are happy that we finally could make it work to add them to the customizable things you can do in the app. From now on, you can adjust many existing shortcuts to better fit your muscle memory. In addition, we have made available all text transforms via these shortcuts so that you can assign shortcuts to those that you frequently use. In addition, the interface will warn you if a shortcut you chose would possibly conflict with another command. We have designed this feature to be extensible, and right now not all commands can be customized. So if there is one you always wished you could customize, and it's not yet part of the custom shortcut settings, let us know so we can add it! A second feature that has been in some demand is the ability to change the editor theme independent of the main theme. We are happy to announce that this is now also possible. By default, the editor theme will follow the main theme, but you can now change this to your liking. We have also spent some time improving how you can work with the app. For example, clicking on a notification of a successful project export will now immediately open the corresponding file; erroneously opened popovers can now be closed quickly with a press on the Escape key; and we have shuffled around the project settings to make it more obvious what you can customize, and where. > **Do you enjoy Zettlr? Then consider making a donation to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: Custom shortcuts are here. You can now customize many of the available shortcuts and assign them to your likings. This also includes the various text transformations that we introduced in version 3.6.0 so that you can bind frequently used ones to a handy shortcut. The feature comes with all the standards of custom shortcuts, including an interactive shortcut recording that visualizes which keys will become part of the shortcuts as you type them, a reset function to restore the default, and an automated conflict detection that lets you know whether a shortcut you have provided might conflict with another one. - **Feature**: You can now set the editor theme to use a light or dark appearance independent of the app appearance (#5851). - **Feature**: You can now click a long-running-task notification for both projects and single files to directly open the corresponding file. - **Feature**: Popovers can now be closed with a quick press on `Escape`. - **Change**: Changed the layout of the project properties. Now the custom templates and CSL section are placed on the general tab, while the export profile picker has moved to its own tab. This gives the custom options more visibility and provides a better grouping of the options. - Fixed a regression from 4.6.1 where the full-text search would not search any open standalone files (#6387). - Fixed an issue on macOS where opening a file from Finder with no open main window would not automatically open one (#6391). - Update translations: - `ja-JP` (#6390). - `de-DE` (#6449). - `tr-TR` (#6450). - Fix snippets syntax and improve nested support (#6389). - Fixed a bug that would cause Zettlr to replace a magic _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.7.0]_ ### v4.6.0 — Release v4.6.0 - Date: 2026-06-14 - Version: v4.6.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.6.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.6.0 - Labels: Platforms: Desktop - **changed** — Completely rewrote full text search to improve performance by 50% to 100% - **changed** — Improved full text search autocompletes for previous searches and restrict-to-folder functionalities - **added** — Allow changing the trigger character for snippet and emoji autocomplete from colon to forward slash or percentage sign - **added** — Ability to switch between case-insensitive and case-sensitive searches in full text search - **changed** — Improved presentation and layout of search results - **added** — Tutorial now available in Portuguese - **added** — Remove line breaks transformation in editor now available via keyboard shortcut Cmd/Ctrl-Alt-J - **added** — Add Elixir syntax highlighting for code blocks with identifiers elixir, ex, or exs - **added** — Add Curl quotes text transform to convert straight quotes to curly smart quotes - **fixed** — Fixed missing click handlers for clicking links in tables - **fixed** — Fixed an issue that would sometimes open the same link twice - **fixed** — Fixed an issue where code elements had a background color that overlaid the selection - **fixed** — Fixed wrong font selection for comments - **fixed** — Fixed strikethrough-elements no longer being stricken-through - **fixed** — Fixed triple-clicks within tables to select entire table cells - **changed** — Main window title now includes the current active file's title - **fixed** — Fixed table of contents clearing when the last file of the editor is closed - **changed** — Allow Escape to close the search panel regardless of focus - **changed** — Default setting for window vibrancy on macOS is now off - **fixed** — Fixed TableEditor swap rows and columns commands on macOS **Bug Fixes and Performance Improvements | Quality of Life Improvements** We are pleased to announce the next update for Zettlr. In this version, we have focused more on fixing issues and improving your ability to work on your texts efficiently rather than shiny new features – similiar to what Apple did for their upcoming 27 version of their operating systems! Concretely, we have fixed a series of regressions and bugs that have occurred during our transition of the editor CSS away from direct styling towards the usage of CSS variables. While this has made applying Custom CSS more easy, it has also caused a few styles to break. This version fixes many of these small issues. A bigger change involves the full-text search. We haven't really touched this since its introduction many years ago, and it showed. Rewriting the core logic, we were able to significantly improve the search performance. Searches should now be 50% to 100% faster, and deliver more relevant search results. The autocomplete suggestions for both recent searches and restricting the search to directories have been re-implemented to work around a long-standing bug in Chromium that has made the pure-HTML implementation unfortunately unusable. Another feature this version brings affects primarily francophone Zettlr users. The default trigger character to summon the snippets autocomplete is the colon (`:`), but unfortunately, this has in the past interfered with how the French language assumes colons are being used. To improve the usability of the app for French speakers, it is now possible to change the trigger character to a forward slash or a percentage sign. Finally, we have also fixed a few issues with tables. On the one hand, we have improved how you can interact with tables by improving the various commands that automate a lot of the work when working with tables. On the other hand, we have improved the accessibility of these commands with new and improved keyboard shortcuts and a generally better UX. As always, read the full changelog below to know exactly what has changed. We wish you productive writing sessions with this new update! > **Do you enjoy Zettlr? Then consider making a donation to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: Allow changing the trigger character for snippet (and emoji) autocomplete. Until now, this was hard-coded to `:` (which is still the default). However, since that interferes with the way French speakers use the colon character (`Pour exemple : cette.`), we now allow different trigger characters, relieving the colon where necessary. Currently supported are `/` and `%` as alternatives (#5185; #6325). - **Feature**: The tutorial is now also available in Portuguese for new users (#6373). - **Feature**: The "Remove line breaks" transformation in the editor is now also available via the keyboard shortcut `Cmd/Ctrl-Alt-J` (#5913). - **Change**: This release brings many improvements to the full text search (#6339): - The full text search was completely rewritten to improve performance by 50% to 100%. - The autocompletes for both previous searches and the restrict-to-folder functionalities have been drastically improved and work reliably (#5686). - Ability to switch between case-insensitive and case-sensitive searches. - Improvements in the presentation and layout of search results. - **Change**: On macOS, the default setting for window vibrancy is now off. This makes the file manager opaque, but improves visual design with the new sticky folder headers. - Add Elixir syntax highlighting for cod _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.6.0]_ ### v4.5.0 — Release v4.5.0 - Date: 2026-05-08 - Version: v4.5.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.5.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.5.0 - Labels: Platforms: Desktop - **added** — Long-running background tasks are now visually indicated with a toolbar icon that shows how many tasks are running, how many have failed, and how many were successful - **added** — HCL/Terraform fenced code block support - **changed** — Editor themes now use CSS variables to style content, making custom CSS simpler but potentially breaking existing custom CSS - **changed** — Update Electron to v41.3.0 - **changed** — Update vue-virtual-scroller to v3.0.0 - **fixed** — Mermaid Chart labels not showing up - **fixed** — Icons in the statusbar not working - **fixed** — Config provider not emitting the old version correctly **Task Indicator | Custom CSS Improvements | Bug fixes and performance improvements** This update primarily brings two new features to the table: A visual task indicator for long-running tasks, and great improvements in the experience for Custom CSS users. First, our new **long-running task indicator** gives you a better overview and insight into any task that you perform in Zettlr that can take long, such as exporting projects to PDF. Now, whenever you start a task that might take a while, Zettlr will show an indicator in the toolbar. It encodes several pieces of information, such as how many tasks are running, how many have failed, and how many were successful. Click the indicator to see more details for each task, including an explicit run time. Once you "clear" the tasks, the icon will disappear again until you start new tasks. If you have hardware acceleration disabled, Zettlr will only show an icon, but if you keep it enabled, you will see an animation. Second, we have cleaned up the editor CSS. More specifically, the editor themes now make use of CSS variables to style most of their content. This can greatly reduce the complexity for those of you who want to use custom CSS. However, this also means that some custom CSS may break during this update, so make sure you adjust any CSS after updating. Besides this, this update fixes a few additional bugs, most visibly/notably missing icons in the status bar. See the changelog below for all changes. > **Do you enjoy Zettlr? With the recent spikes in SSD and RAM costs, our server costs have skyrocketed. Consider donating to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: Long-running background tasks are now visually indicated with a toolbar icon. This allows users to check on longer-running tasks such as project exports or the re-indexing of new workspaces and observe the progress as it happens. - Add HCL/Terraform fenced code block support (#6302). - Fixed Mermaid Chart labels not showing up (#6313). - Fixed icons in the statusbar not working. - Update Spanish (`es-ES`) translations (#6320). ##### Under the Hood - Updated Electron to `v41.3.0`. - Update `vue-virtual-scroller` to `v3.0.0`. - Fixed an issue where the config provider would not emit the old version correctly (context: #6311). - **Breaking**: Refactored the editor themes (#6229). Now styling the app with Custom CSS is easier and should work more straight forward, since there are many CSS variables that you can peruse to adjust groups of elements at once. **Note that this change might break your Custom CSS**. Make sure to check anything after setup, and adjust it according to your liking. - Centralized DOMPurify functionality and default configuration in a new utility function, that also allows icons using `cds-icon`. - Switch from `ts-node` to `tsx` for running unit tests. - Explicitly declare Zettlr as a `CommonJS` project. - Change the `Object.create(null)` contraption to hold BibTeX attachments to a regular object to simplify the structure and unit tests. ##### New Contributors * @a-goodarzi made their first contribution in https://github.com/Zettlr/Zettlr/pull/6302 * @lridalc made their first contribution in https://github.com/Zettlr/Zettlr/pull/6320 **Full Changelog**: https://github.com/Zettlr/Zettlr/compare/v4.4.0...v4.5.0 ### v4.4.0 — Release v4.4.0 - Date: 2026-04-24 - Version: v4.4.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.4.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.4.0 - Labels: Platforms: Desktop - **added** — The app now remembers if the file manager was open or closed across restarts and applies this setting on each start - **added** — The names of open folders in the file manager tree will now remain sticked to the top of the file manager as you scroll through its list of children - **added** — Add strikethrough to the Markdown AST parser - **fixed** — Fixed Markdown-to-HTML output to generate more valid HTML - **fixed** — Reduced amount of image updates in the editor to increase performance especially for long documents with many images - **fixed** — Fixed containing directories not uncollapsing when a containing file was made active - **fixed** — Upon switching between files, the file tree now consistently scrolls to the affected file - **changed** — The scroll-behavior for scrolling files into view has changed from instant to smooth - **fixed** — Fixed a small bug that could throw off switching between different file manager modes - **fixed** — Fixed the cursor scroll margin so that as you type there will now be some margin towards the top or bottom of the editor window - **fixed** — Update pt-PT translations - **fixed** — Fixed an issue that would lead to unexpected navigation behavior across the file manager - **fixed** — Fixed an issue where the file list would follow slightly different filtering rules than the file tree due to different function implementations - **changed** — Harmonized font usage to System fonts across the app - **changed** — Improve Mermaid chart error reporting - **changed** — Switch from sanitize-html to DOMPurify for HTML sanitization - **changed** — Updated Electron to v41.1.1 - **security** — Disallow any and all inline-JavaScript across all browser windows - **security** — Enforce loading remote resources using HTTPS - **security** — Generously spread HTML sanitization across the application by moving it to the edge directly to injection sinks **Security Fixes | File Manager Improvements | Bug Fixes** This update improves primarily on two fronts: the file manager and how you can navigate your files, and the security model of the app. First, this update brings improvements in the file manager, making it easier for you to navigate all your files and folders. This includes a few bug fixes that improve the behavior of the file manager. For example, opening up folders of containing files now works more reliably, and the file manager once again scrolls any newly activated file into view. Second, we have heavily increased the safety when using the app. We now disallow more potentially dangerous code from executing and have overhauled the security model of the app to better reflect how users interact with the app. As always, you can view the full changelog below. > **Do you enjoy Zettlr? With the recent spikes in SSD and RAM costs, our server costs have skyrocketed. Consider donating to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: The app now remembers if the file manager was open or closed across restarts and applies this setting on each start (#3679). - **Feature**: The names of open folders in the file manager tree will now remain sticked to the top of the file manager as you scroll through its list of children. This is especially helpful in the "combined" file manager mode with folders containing many files and subfolders (such as reading notes or Zettelkasten folders). - Add strikethrough to the Markdown AST parser (#6263). - Fixed Markdown-to-HTML output to generate more valid HTML. This makes comparisons with DOM-inserted HTML deterministic and should reduce the amount of updates especially for complex widgets such as tables by a lot. - Reduced amount of image updates in the editor. This may increase performance especially for long documents with many images. - Fixed containing directories not uncollapsing when a containing file was made active. - Upon switching between files, the file tree now consistently scrolls to the affected file, making working with larger workspaces easier. - The scroll-behavior for scrolling files into view has changed from instant to `smooth`. - Fixed a small bug that could throw off switching between different file manager modes. - Fixed the cursor scroll margin again. This means that, after years of it not working, as you type there will now be some margin towards the top or bottom of the editor window, preventing the cursor to "stick" to the edge of the editor. - Update `pt-PT` translations (#6282). - Fixed an issue that would lead to unexpected navigation behavior across the file manager (#4329). - Fixed an issue where the file list would follow slightly different filtering rules than the file tree due to different function implementations. - Harmonized font usage to System fonts across the app (#5125). - Improve Mermaid chart error reporting (#6291). ##### Under the Hood - Switch from `sanitize-html` to `DOMPurify` for HTML sanitization, since the latter has much, much less issues with various types of exotic XML-type tags such as MathML. - Updated Electron to `v41.1.1`. - Security: Disallow any and all inline-JavaScript across all browser windows. - Security: Enforce loading remote resources using HTTPS. - Security: Generously spread HTML sanitization across the application. The following changes have been made: - Moved HTML sanitization to the edge (directly to the injection sinks). - Removed HTML sanitization from the translation helpers. The reason is that DOMP _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.4.0]_ ### v4.3.1 — Release v4.3.1 - Date: 2026-03-30 - Version: v4.3.1 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.3.1 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.3.1 - Labels: Platforms: Desktop - **security** — Escape file and directory paths passed to runShellCommand to prevent arbitrary command execution during exports - **changed** — Update pt-PT translations - **added** — Translate the tutorial to Japanese - **changed** — Update Pandoc to v3.9.0.2 - **changed** — Improve resiliency of descriptor fetching to omit unavailable descriptors instead of failing when a renderer requests an array of paths - **fixed** — Remove duplicate FSAL descriptor fetching **Bug Fixes and Performance Updates** For this small update, we've fetched the polishing cloth and improved things here and there, but nothing big has happened. The one notable fix is that Zettlr now properly escapes path names passed to shell commands during exports. In very specific circumstances, it was possible to make Zettlr execute unexpected commands during exports. This update improves this behavior so that it is no longer possible. > **Do you enjoy Zettlr? With the recent spikes in SSD and RAM costs, our server costs have skyrocketed. Consider donating to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - Update `pt-PT` translations (#6262). - Translated the tutorial to Japanese (#6260). ##### Under the Hood - Escape file and directory paths passed to `runShellCommand`. - Update Pandoc to `v3.9.0.2`. - Updated some dependencies. - Removed duplicate FSAL descriptor fetching. - Improved resiliency of the descriptor fetching; now if a renderer requests an array of paths, the FSAL does not fail. Instead, it simply omits those descriptors from the return array and logs an error (context: #6272). ### v4.3.0 — Release v4.3.0 - Date: 2026-03-21 - Version: v4.3.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.3.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.3.0 - Labels: Platforms: Desktop - **added** — Add a citation tooltip that displays a generated bibliography when hovering over citation clusters - **added** — Add autocomplete assistance in the Custom CSS editor - **added** — Add dedicated math code block syntax highlighting for MathTeX - **added** — Add ability to close all standalone/root files and all workspaces from a new file manager context menu - **added** — Add ability to collapse all folders with a click - **added** — Add manual workspace sorting with drag and drop in a new sort popover - **added** — Add custom accent colors to folders with seven built-in color options - **added** — Allow more emojis in tags - **changed** — Make the boot sequence more resilient towards missing files, folders, or permission errors - **changed** — Improve autocorrect handling to allow undoing unwanted replacements without losing inserted space or new line - **changed** — Make the app more resilient when missing workspaces or root files - **changed** — Update ja-JP translations - **changed** — Update zh-CN translations - **changed** — Re-enable System Verilog syntax highlighting using the Verilog parser - **fixed** — Fix potential crashes when standalone/root files or workspaces have been removed while Zettlr was closed - **fixed** — Fix improper HTML sanitization in the file preview tooltip that would escape unusual HTML such as KaTeX equations - **fixed** — Fix citation menu not appearing when right-clicking on a non-rendered citation - **fixed** — Fix crashes when directories are not accessible by the app - **fixed** — Fix regression that overlaid the default menu on top of the citation menu on non-macOS clients - **fixed** — Fix code blocks exceeding the size of the preview window in some instances - **fixed** — Fix custom export profiles not working during project exports **New File Manager Controls | QoL Updates | Bug Fixes | Security Fixes** This release brings many great new things to Zettlr. Besides the obvious batch of bug fixes, this update focuses on improved citation quality, and findability of your files in the file manager. Specifically, this update improves the file manager by allowing you to sort your workspaces and add colors to your folders. You can also close all standalone files or workspaces with a few clicks, if you so wish. In terms of citation support, Zettlr now shows a tooltip after some delay if you hover over a citation with your mouse, showing you the generated bibliography for those items to make sure you actually cite the correct work. Besides that, you now get CSS autocompletion in the Custom CSS editor. The boot sequence of Zettlr is now much more resilient towards missing files, folders, or weird permission errors, so you should have a much better experience in volatile contexts. We also fixed a few potential security issues where unsanitized HTML was rendered in the main window that could possibly be abused by malicious actors. To see what exactly has changed in detail, please review the changelog below. > **Do you enjoy Zettlr? Consider donating to help us pay for the development costs. With the recent spikes in SSD and RAM costs, our server costs have skyrocketed. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: Added a citation tooltip. When hovering over a citation cluster in your documents with your mouse, this will generate a small bibliography of just the items contained in the citation cluster and display it using the tooltip. This allows you to quickly check which item you cited exactly. - **Feature**: The Custom CSS editor now offers autocomplete assistance (#6226). - **Feature**: Added dedicated `math` code block syntax highlighting to add MathTeX to files without rendering (#6226). - **Feature**: You can now close all standalone/root files as well as all workspaces from a new file manager context menu that opens via right-click onto the section headers or with a click on the corresponding button. In addition, you can collapse all folders with a simple click (#6209). - **Feature**: You can now manually change the sorting of your workspaces. By default, Zettlr automatically sorts your workspaces by name. However, sometimes you may wish to change the ordering. To do so, use the new file manager context menu and select "Sort workspaces…". This will open a popover that allows you to change the workspace ordering using drag and drop. As soon as you overwrite the sort order manually, this will disable automatic sorting from here on. Newly opened workspaces will simply be appended at the end of the list of open workspaces. To re-enable automatic sorting of your workspaces, use the new setting in the file manager preferences, or click the corresponding button in the sort popover. - **Feature**: You can now assign custom accent colors to folders across your workspaces to make them easier identifiable. This aids the existing custom icons that you can already use to differentiate folders. You can assign one of seven built-in colors to every directory: blue, purple, rose, red, orange, yellow, and green. For friends of Custom CSS: These are specified as CSS variables so that you can adjust them if you wish. The pattern is: `--accent-`. - Fixed potential crashes when standalone/root files or workspaces have been removed while Zettlr was closed (#6223). Recognizes PR #6225 by @SergioChan who started this effort. Previously, the re-indexing process w _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.3.0]_ ### v4.2.1 — Release v4.2.1 - Date: 2026-03-07 - Version: v4.2.1 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.2.1 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.2.1 - Labels: Platforms: Desktop - **fixed** — Handle Pandoc reader and writer extensions correctly instead of removing them during import and export - **fixed** — Fix indenting and tab insertion behavior - **fixed** — Improve error handling when opening PDF attachments - **changed** — Make Zettlr more resilient when CSL JSON library files are malformed by checking each item for required keys and skipping problematic entries - **changed** — Upgrade Electron to v40.8.0 - **changed** — Upgrade Pandoc to v3.9.0 - **changed** — Upgrade ESLint to v10.0.3 - **changed** — Properly parse and check returned results from the BetterBibTex JSON RPC API when querying PDF attachments **Bug Fixes | Updated Dependencies** This update only brings minor things to the table. Most notably, this update fixes the logic of Zettlr to handle extensions to Pandoc readers and writers. Previously, extensions were always removed from readers and writers whenever you imported or exported a file. Now, if you specify an extension, this will work again. This means, previously, if you specified a writer in your defaults files disabling the “smart” extension (e.g., `writer: docx-smart`), Zettlr would strip the extension away. Now, these extensions are retained correctly on each import or export. In addition, this update fixes a few oddities after the Zotero 8 update, and updates all dependencies to the newest available versions. #### Changelog ##### Fixed Pandoc Extension Parsing If you ever used [Pandoc extensions](https://pandoc.org/MANUAL.html#extensions) with Zettlr, you may have wondered why they sometimes appeared not to work. After a report by a user, we have found out that Zettlr never actually parsed these correctly. We decided to make this a bit more visible in the changelog since your exports may have been broken without you realizing. This way you can verify any of your exports. ##### GUI and Functionality - Fix indenting and tab insertion behavior (#6196). - Fix Zettlr not correctly parsing Pandoc extensions (#6212). - Improved error handling when opening PDF attachments. - Make Zettlr more resilient when CSL JSON library files are malformed. ##### Under the Hood - Add unit tests for `parseReaderWriter` utility function. - Upgrade Electron to `v40.8.0`. - Upgrade Pandoc to `v3.9.0`. - Upgrade ESLint to `v10.0.3`. - Properly parse and check the returned results from the BetterBibTex JSON RPC API when querying PDF attachments. - Zettlr no longer assumes CSL JSON files are well-formed. Instead, each item is checked for the presence of required keys, and is skipped if there is an issue. This ensures library files can also be loaded partially. **Full Changelog**: https://github.com/Zettlr/Zettlr/compare/v4.2.0...v4.2.1 ### v4.2.0 — Release v4.2.0 - Date: 2026-02-21 - Version: v4.2.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.2.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.2.0 - Labels: Platforms: Desktop - **changed** — Blockquotes now render with a vertical bar instead of italicized font - **added** — Pandoc divs and spans are now pre-rendered and apply custom styling - **added** — New setting to switch between native highlights and using spans for highlights - **added** — New toolbar button to insert divs and spans - **added** — New buttons to the formatting toolbar to insert underlined, strikethrough, and highlighted spans - **added** — Users can now opt to display hidden files and folders in the sidebar and filemanager - **added** — Users can now move document tabs to the start or end of the tablist from the context menu - **added** — Error message explains that an import profile is needed when attempting to import a supported file with no profile - **changed** — Improved tag recognition to allow more varied Unicode characters including umlauts, accents, and emojis - **changed** — Improved pilcrow styling when whitespace rendering is on - **fixed** — Frontmatter linter now reports errors with the YAML - **fixed** — Images that spanned multiple lines no longer cause the editor to crash when image rendering is active - **fixed** — Tab key now respects the "Indent using tabs instead of spaces" setting - **fixed** — Tab key now always inserts spaces in YAML frontmatter blocks to maintain valid YAML syntax - **fixed** — Formatting toolbar no longer grabs focus from the editor - **added** — Configuration setting to restore pre-4.0 behavior of not showing underlying Markdown syntax of pre-rendered elements when cursor merely touches the element - **fixed** — Table editor "Delete table" context menu item now works as intended - **changed** — Updated MathJax URL in HTML-based templates to v4 - **fixed** — Fixed citation autocomplete and citation pipeline failures introduced by Zotero 8 update by handling CSL JSON items lacking ID properties **Preview Mode Updates | Bug Fixes | Quality of Life Improvements** This update brings three distinct sets of improvements. First, it contains a series of new features for the preview mode, which make blockquotes now render with a vertical bar instead of italicized font. In addition, Pandoc divs and spans are now pre-rendered and apply any custom styling you have applied, if applicable. Second, it contains a bunch of minor bug fixes and improvements of some annoying behavior so that the app works better for everyone. This also includes some big improvements of the Brazilian, Japanese, and German translations. Last but not least, this update includes a fix for a bug that had been introduced by the recent Zotero 8 update. Some users were reporting that, after that update, Zettlr would stop suggesting citations, and that other parts of the citation pipeline would randomly fail. This update provides a fix to ensure that your citations should mostly work, even if the output from Zotero contains some minor problems. > **Do you enjoy Zettlr? Consider donating to help us pay for the development costs. You can donate [monthly on Patreon](https://www.patreon.com/zettlr) or [once via PayPal](https://www.paypal.me/hendrikerz). Additionally, you can directly [sponsor Hendrik Erz on GitHub](https://github.com/sponsors/nathanlesage) or [send a tip on Ko-Fi](https://ko-fi.com/hendrikerz). Thanks for your support!** #### Changelog ##### GUI and Functionality - **Feature**: New utilities for working with native Pandoc Divs and spans (#6032): - Added a new setting to switch between native highlights (`==mark==`) and using spans for this (`[mark]{.highlight}`). - Added a new toolbar button to insert divs and spans. - Added new buttons to the formatting toolbar to insert underlined, strikethrough, and highlighted spans. - **Feature**: Blockquotes are now rendered with a vertical bar (#6122). - **Feature**: Users can now opt to display hidden files and folders ("dot-files") in the sidebar and/or filemanager in the settings (#6041). - **Feature**: Custom Pandoc `div`s are now pre-rendered depending on the corresponding setting (#6121). This allows you to preview any custom styling you have applied to them within the editor. - **Feature**: You can now move document tabs to the start or end of the tablist from the context menu (#6130). - Added an error message that explains to users that an import profile is needed if they attempt to import a supported file with no profile. - Updated `pt-BR` translation (#6154). - Updated `ja-JP` translation (#6198). - Updated `de-DE` translation. - Improved the tag recognition to allow for more varied Unicode characters in tags than previously, including umlauts, accents, or emojis (#6155). - Improved pilcrow styling when whitespace rendering is on (#6152). - Fixed the frontmatter linter never reporting any errors with the YAML (#6167). - Fixed an issue where images that spanned multiple lines could cause the editor to crash when image rendering was active. - Fixed the tab key not respecting the "Indent using tabs instead of spaces" setting. Additionally, pressing tab now always inserts spaces in YAML frontmatter blocks to maintain valid YAML syntax (#6168). - Fix: The formatting toolbar no longer grabs focus from the editor. - Fix: Added a configuration setting to allow restoring the pre-4.0 behavior of not showing the underlying Markdown syntax of pre-rendered elements when the cursor merely touches the element. If the setting "Show Markdown syntax when the cursor is adjacent or inside an element" is enabled (the default), the editor will show the Markdown syntax both when the cursor is within the element or if it is adjacent to it. - Fixed the table editor "Delete table" context menu item not working as intended (#6088). - Updated MathJax URL in various HTML-based templates to v4 (#6148). Note that Zettlr wi _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.2.0]_ ### v4.1.1 — Release v4.1.1 - Date: 2026-01-28 - Version: v4.1.1 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.1.1 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.1.1 - Labels: Platforms: Desktop - **fixed** — Preferences window now bounds tab sizes between 2 and 10 - **fixed** — Links in table cells now register clicks correctly - **fixed** — Custom tag classes are now applied correctly - **fixed** — Code class is now correctly applied to code segments in all circumstances - **fixed** — Syntax highlighting in code blocks and frontmatters now uses more default colors from the solarized theme - **changed** — Regular text readability improved, especially in light mode - **changed** — Toolbar styling improved with simplified CSS rules - **changed** — Toolbar icons made slightly larger - **changed** — Updated ja-JP translation - **fixed** — Custom height constraints via Pandoc attributes for images now work when maximum image height is set to 100% - **fixed** — Learn more link on the citation page in the onboarding window is now functional - **fixed** — File search no longer crashes on Windows when workspace is located at a volume root - **fixed** — Mermaid graphs no longer remain pre-rendered in raw mode - **fixed** — Code files (JSON/YAML/TeX) no longer format weirdly when opened at startup - **changed** — PDF viewer interaction improved - **changed** — FSAL Cache now consistently utilizes asynchronous filesystem operations - **changed** — Zettelkasten link and tag parsing refactored - **changed** — Updated Electron to v40.0 - **changed** — Updated Forge to 7.11.1 - **changed** — Updated Builder to 26.5.0 **Bug Fixes and Performance Improvements** Did you always wonder what "bug fixes and performance improvements" in your app update notes referred to? Read our changelog below to see what this can entail! No new features this time, just some polishing. ##### Important Note for Windows Users This is the last release published with the old code signing certificate. Going forward, the certificate will change. So please make sure to update to this release as soon as possible. [Read more on our forum](https://forum.zettlr.com/d/93-important-please-read-windows-code-signing-may-expire). #### Changelog ##### GUI and Functionality - Fix a bug where the preferences window would allow arbitrary tab sizes. Now, tab sizes are bound between 2 and 10 (see #6131). - Fixed links not registering clicks when they are pre-rendered within table cells of the TableEditor (#4557). - Fix application of custom tag classes. - Fixed a bug that would not correctly apply the `code` class to segments of code in some circumstances (primarily when adding YAML front matters or comments). - Fix syntax highlighting in code blocks, frontmatters, etc. Now, Zettlr assigns more default-colors of the solarized code syntax theme. In addition, regular text is now more readable, especially in light mode. - Fixes and improvements to the toolbar styling; simplify CSS rules. - Made toolbar icons slightly larger. - Update `ja-JP` translation (#6132). - Fixed a bug that would not accept custom height constraints via Pandoc attributes for images if the maximum image height was set to 100% in the settings. - Fixed "Learn more" link on the citation page in the onboarding window (#6138). - Fixed an issue that would make the file search crash on Windows, if a workspace was located at a volume root (#6142). - Fixed an issue that would cause Mermaid graphs to still be pre-rendered in "raw" mode (#6141). - Fixed a bug that would cause code files (JSON/YAML/TeX) to be formatted weirdly if Zettlr opens with one of these files on startup, due to relevant CSS never being loaded in this case. - Improved PDF viewer interaction (#6153). ##### Under the Hood - Update dependencies: - Electron: `v40.0` - Forge: `7.11.1` - Builder: `26.5.0` - The FSAL Cache now consistently utilizes asynchronous filesystem operations (#5994). - Refactor Zettelkasten link and tag parsing (#5997). - Number controls in forms now allow for providing `min` and `max` values. - Increased strictness of the `@typescript-eslint/no-explicit-any` rule from "off" (no checking) to "warn" to slowly start migrating away from any remaining `any` uses in the wild. - FSAL Improvements: - Removed a lot of dead code in the FSAL. - Moved the save functionality away from the `FSAL*`-submodules, and divided the responsibility between the `DocumentsProvider` and the `FSAL` module. **Full Changelog**: https://github.com/Zettlr/Zettlr/compare/v4.1.0...v4.1.1 ### v4.1.0 — Release v4.1.0 - Date: 2026-01-13 - Version: v4.1.0 - Original notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.1.0 - Permalink: https://whatsnew.fyi/product/zettlr/releases/v4.1.0 - Labels: Platforms: Desktop - **added** — You can now collapse YAML frontmatters and Pandoc divs with collapse-arrows in the editor area - **added** — Zettlr now remembers folded regions per editor as long as the window remains open - **changed** — Configuration change moves openPaths property into new app namespace, dividing it into openFiles and openWorkspaces, which may close workspaces in rare situations - **fixed** — Fixed XCode Command Line Tools setup dialog on macOS - **fixed** — Fixed an issue that prevented opening Markdown files with tables that include Pandoc attribute strings when the TableEditor was enabled - **fixed** — Fixed footnote tooltip rendering - **fixed** — Fixed an issue preventing Zettlr from starting if the stats file contained errors - **fixed** — Fixed Pandoc Attribute parser to not throw an error on malformed attribute strings and instead return an empty record - **changed** — Improved link target extraction logic when following links - **changed** — Performance improvements when following links - **changed** — Hide reference link labels when previewing Markdown links - **changed** — Improved performance on generating the preview-bibliography in the sidebar by collecting citation keys from the document only in the main process - **changed** — Improved math parsing to fix certain cases - **changed** — Relaxed filename restrictions for loading custom dictionaries - **changed** — Improved Pandoc div parsing - **added** — Added new utility function disambiguateFile for retrieving a time-based non-existing path for backup purposes - **added** — Added new environment variable ZETTLR_DISABLE_UPDATE_CHECK to hard-disable update checks for package maintainers - **added** — Added new environment variable BUNDLE_PANDOC to prevent downloading and bundling Pandoc during the build stage **Bug Fixes | Performance Improvements** This is the first minor update for Zettlr 4.0. It comes with many fixes and small improvements, but also two new features and a change that you should know about. The two features are that you can now additionally collapse YAML frontmatters and Pandoc divs with the collapse-arrows left of the editor area, and Zettlr furthermore remembers which sections you have collapsed on a per-editor basis. The change pertains to a configuration update that will make downgrading from this version difficult, and which requires your attention. Read everything in the Changelog below. #### Changelog ##### Read Before Updating In this version, we perform a long-planned configuration change that affects your loaded workspaces and files. Before installing this update, please take note of which workspaces and files you have open, in case they are being closed through this update. (No data will be actually deleted, but this helps you avoid having to search for the folders.) In addition, it is crucial to remember that once you update to this version, **there is no turning back**. If you decide to downgrade to a previous version, your files and workspaces *will* be closed, and you will have to re-open them afterwards. ##### GUI and Functionality - **Feature**: You can now collapse YAML frontmatters and Pandoc divs (#6115). - **Feature**: Zettlr now remembers folded regions as long as the window remains open, even when you close a document (#6115). - **Change**: Due to a configuration change, downgrading Zettlr (which we generally discourage) after updating to this version will lead to your workspaces being closed. - Fixed XCode Command Line Tools setup dialog on macOS (#5428). - Fixed an issue that prevented opening Markdown files with tables that include Pandoc attribute strings when the TableEditor was enabled (#6110). - Fixed footnote tooltip rendering (#6107). - Fixed an issue preventing Zettlr from starting if the stats file contained errors (#6127). - Improved link target extraction logic when following links (#6098). - Performance improvements when following links (#6072). - Hide reference link labels when previewing Markdown links (#6097). - Improved performance on generating the preview-bibliography in the sidebar by collecting citation keys from the document only in the main process (#6068). - Improved math parsing to fix certain cases (#6030). - Relaxed filename restrictions for loading custom dictionaries (#6126). - Improved Pandoc div parsing (#6120). - Update `de-DE` translation (#6081). - Update `ja-JP` translation (#6086). ##### Under the Hood - Moved the `openPaths` property. The `openPaths` property was a simple array holding all currently loaded root files and workspaces intermingled. This setting stems from the time when Zettlr could not load arbitrary files, and mixing files and folders is generally a bad practice. This property has now been moved into the new namespace `app` in the settings, and divided into `openFiles` and `openWorkspaces`. This will make a few future checks and features easier to implement, as the separation into files and folders is made explicit and not left to the OS. This will allow us to better clean up the property (personal note: I've seen a colleague's config file which was full of non-existing file paths, and I didn't like that). In rare situations, this change may close all your workspaces, in which case you would have to re-open them. - New utility function `disambiguateFile` that can be used to retrieve a time-based non-existing path that can be used for backup purposes. - Added a new environment variable, `ZETTLR_DISABLE_UPDATE_CHECK`. If that variable is detected during build, this will hard-disable update checks in the application. This can be used by package maintainers to ensure update checks from within the app are disabled, and Zettlr in _[Truncated at 4000 characters — full notes: https://github.com/Zettlr/Zettlr/releases/tag/v4.1.0]_