Zettlr 1.5.0 released

Zettlr 1.5.0 released

After a long three-month wait, we are proud to present to you the all-shiny new Zettlr 1.5! It includes three major new features — AutoCorrect, Magic Quotes, and YAML Frontmatter support — and plenty of small tweaks and fixes! Read more about how to use these exciting new features in our spotlight!

Zettlr 1.5.0 released

Zettlr 1.5.0 released

It’s been quite some time since the release of Zettlr 1.4 — three months, to be exact! This means it’s time again for another release. As you may have heard, we’ve had some problems in the past building the app, due to the lacking support of 32bit on macOS Catalina, which is why Zettlr 1.5 comes one week early. We originally planned to releasing it on December 26th, right on time for the second birthday of Zettlr, but decided to release sooner because we’re also due for some holidays. So let’s dive right in!


Zettlr 1.5 brings you one central feature to working with text which has been missing until now. Actually, to the best of our knowledge, Zettlr is the first and only Markdown editor to implement AutoCorrect, that nice feature where you have text replaced automatically. You know from word that when you type certain characters such as -->, they become → — the correct Unicode character for the right arrow. This is an incredibly useful feature especially for Windows users. Both macOS and Linux users can, for instance, easily insert the em-dash character (—) by pressing Alt+Shift+-, but Windows does not support that third layer of special characters. Many of you might know the infamous Numpad-combinations such as Alt+0151, which are necessary on Windows to produce such symbols. It’s nearly impossible to remember all of these, and even if you do, it’s kind of a hassle to always move your right hand over to the Numpad. And it’s simply impossible on newer, smaller Laptop-like keyboards which simply don’t feature a Numpad. Nevertheless, we want to be typographically correct, so a “real” em-dash is to be preferred over two normal dashes.

AutoCorrect brings you all of these and more! Zettlr’s AutoCorrect works transparently (not as in Word, where it might sometimes act weirdly when replacing some characters in an non-intuitive way) and acts as a replacement table where it will keep looking for certain character sequences and replace them, if there is any such replacement registered. We’ve tried to add many common special characters you might need, and a few more. And in case we forgot some, you can always add more in the preferences. And if you don’t want certain replacements, simply remove them!

Additionally, you can choose between two “modes” of AutoCorrect. We’ve tested how both Microsoft Word and LibreOffice replace things and noticed that Word is a little bit more aggressive. While in LibreOffice you need to press Space or Enter in order to apply AutoCorrect (giving you an easy exit if you don’t want something replaced this one time), Word will always replace everything as soon as you type the last character of a replacement sequence. But Word lets you undo your last replacement by hitting Delete. Zettlr lets you choose between those two modes to accommodate those of you coming from either of these. Of course, you can completely deactivate AutoCorrect, if you don’t want it.

And to make it even better for you, Zettlr will not attempt to replace anything if you’re not in Markdown mode (that is: in fenced code blocks and inline code) so that you don’t want to throw out your laptop, if you’re working with code examples oftentimes!

Magic Quotes

You may have noticed it in this post already: the quotes are typographically correct! No more default quotes in your Markdown, but typographically correct pairs of “quote unquotes.” Magic Quotes are enabled when you enable AutoCorrect, and you have plenty to choose from. We’ve tried to include all quote-unquote-combinations that exist. Which means, you can make use of “English,” « French », „German“, and even 『Japanese』ones! The French ones even automatically insert the correct thin space between the guillemets (not guillemots, as we have learned along the way).

Magic Quotes, just like AutoCorrect, will not trigger if you are within code blocks or inline code elements, out of very obvious reasons. If you want to disable the Magic Quotes but still use AutoCorrect, look no further: You can simply choose the first option for both the primary (double) and secondary (single) quotes, which will disable magic quotes completely.

During beta testing, we’ve realised that identifying the “right” quotes can be extremely difficult, because — depending on the font being used — the differences are minimal. This is why we’ve added a “Quick Select” to the Magic Quotes section. It features some languages which will automatically select the correct quote pairs, and a “None” button to restore the default quotes (a.k.a. disable Magic Quotes). Would you like to have your language listed in the Quick Select? No problem, you can either do it yourself by changing the respective template or give us a quick shoutout on Twitter, the Forum, or Reddit, and we’ll add it!

YAML Frontmatters

One thing many people rightfully complained about was more than questionable support for YAML frontmatters (a.k.a.: none so far). Pandoc and most Markdown parsers support some form of YAML frontmatter for metadata such as keywords, a fixed date, author information, and abstracts. So while you could use YAML frontmatters all the time already, they were neither highlighted correctly nor did Zettlr interpret anything.

With this version, we are proud to finally announce support for this basic feature: From now on, Zettlr will highlight a frontmatter (with the exception that it needs to be at the top; Pandoc also allows it in-text). Additionally, you can use the title-variable to overwrite the filename (only in the file list; if you are using the combined mode, this will still display the filename, as its intention is to resemble a factual file tree). And if you provide keywords in a keywords-property, these keywords will be added to the list of tags of the file!

Citation Issues

In the past, Zettlr could be sometimes very nasty with regard to your citation library. Citr, the underlying library for parsing the citations within your text, is one of the most rigid libraries out there. We’ve intentionally hardened it because some characters may cause problems in some parsers but not in others. By enforcing certain restrictions, we ensure your documents can be parsed by most libraries. Nevertheless, we still faced problems, as some libraries still contained invalid characters and it would be impossible for the user to see where the error came from. For instance, it seems to be not uncommon to encounter CiteKeys containing square brackets — and this will lead to problems, as square brackets are also used to encapsulate citations within your text.

In this regard we’ve made two important changes to the citation engine. First, if there is a malformed key, it will no longer stop your full library from being loaded. Only your citation key with the wrong characters will be skipped. And additionally, so that you don’t have to search to find the culprit, Zettlr will now give you a notification in the top-right corner of the application window to inform you which key was causing an error. This way it’s easy for you to change it so that your full library can be loaded again!


Of course, the changes don’t stop there, we’ve also added quite a few design fixes, usability fixes, a few new shortcuts, updated the dependencies and polished the app. You can always find the changes in the newest version of the Changelog, but we’d like to give credit to some people, because we finally had some Pull Request which we happily merged. So here goes the credits:

We’d like to thank GitHub user BAKFR for implementing a much better and cleaner algorithm for loading all the different code highlighting modes which Zettlr uses so that you can put some code into your documents and still have it receive a correct syntax highlighting.

Additionally, GitHub user yashha has added support for building AppImages. While we don’t (yet) offer them on our official download page, you will always find them on the GitHub releases page. If we don’t hear far cries of broken installations, we will permanently add them to the list of officially provided packages on our page! Thanks for your help!

Finally, GitHub user jeffgeorge has suggested and implemented the new shortcut Cmd/Ctrl+T to create a task list item (or, convert multiple lines into tasks). This way you don’t have to click through the formatting menu every time. Thank you as well!

But now we’re happy to give to you Zettlr 1.5 as some kind of pre-Christmas gift! We hope you have lots of fun with the new version and hope that you’ll have a Merry Christmas and a good start into the New Year 2020! We will post an obligatory Birthday-post on December 26, but other than that we’ll retreat into some holidays for ourselves. 2019 was a hard year as the app grew and the resources shrank, so we definitely can make use of the off-time. We’re happy to get back to work with new energy in 2020!

So long, and thanks for all the fish :)