github Zettlr/Zettlr v1.0.0

latest releases: v2.3.0, v2.2.6, v2.2.5...
3 years ago

It's time to celebrate! We are proud to present to you version 1.0 of Zettlr!

As always, we've composed a post outlining the major changes of the app. The full changelog is below:



GUI and functionality

  • Added a written reason for why some preferences options failed validation and need to be corrected.
  • Moved the attachment options to the "Advanced"-tab in the preferences window.
  • Fixed a bug that threw errors when you tried to Alt-click a virtual directory.
  • Fixed the bug that virtual directories got duplicated on the creation of new files.
  • Added a "Donate" menu entry to the help menu.
  • The startup overlay is now gone.
  • Dictionaries can be selected and deselected at runtime.
  • Fixed a bug that did not remove the file's ID in the preview list, after it has been deleted from the file itself.
  • Added an option to deactivate the automatic closing of pairs of matching characters in the editor.
  • The app now supports code folding! Now you can click the new, small arrows left to Markdown headings to collapse everything below it!
  • Removed the customised word processor templates. Zettlr now uses the default reference docs provided by Pandoc.
  • Projects can now also be exported to odt, docx, and HTML.
  • Added tag autocomplete. Now when you start typing a #-character, you are presented with a list of tags you already use inside your files, so you don't use similar (but not same) tags in different files.
  • Added citeproc-js integration: Now you can point Zettlr to a JSON CSL-file (ideally generated by Zotero) and it will automatically enable you to put @BibTex-IDs or even complex Pandoc citations in your text, which will not only be automatically replaced by a correct citation (only Chicago supported, because it is only a preview), but also renders a preview bibliography! Additionally, if you point Zettlr to a CSL Style file in the settings of a project, it will use this file to generate your citations!
  • Added an option to change the sansfont property of LaTeX-documents, used mainly for headings.
  • The Pomodoro timer now remembers your settings on a per-session basis.
  • Added an additional check to see whether or not a huge number of words has been pasted into the editor. If so, the word counter won't count these towards the overall counter. So if you need to paste in whole documents, this won't raise your word counter absurdly high.
  • Fixed a bug that rendered unwanted Math previews.
  • Added file-open buttons. Now, whenever you are required to select a normal file, Zettlr provides you with a button that lets you choose the file comfortably.
  • Zettlr now features an additional "Display" preferences tab, which lets you control all things that define Zettlr's appearance.
  • You can now constrain the maximum size of images in the editor, separated by maximum width and maximum height.
  • Updated the about dialog to now feature a tabbed interface containing main projects with licenses for the four big projects Zettlr use (Electron, Node.js, CodeMirror, and CitationStyleLanguage), all complementary projects, and the license of Zettlr itself.
  • Now only escaping characters are formatted, not the characters following them.
  • Fixed a bug that would prevent you from being able to modify an already loaded image without restarting Zettlr, because it would cache the image and not reload the modified version of it.
  • Updated the styling of form elements: Now ranges and radio buttons are also displayed in the Zettlr design.
  • Added an option to set a custom TeX template for PDF exports both in the general PDF preferences as well as on a per-project setting.
  • Restored the functionality to quickly navigate the files in the preview container using the arrow keys Up and Down. Also you can once again jump to the end of the list by pressing an arrow key while holding Cmd/Ctrl.
  • Zettlr now sorts your files based on a natural sorting order. You can restore the ASCII-sorting (the sorting as it has been until now) in the settings.
  • Tags can now be escaped with a backslash (\) to make sure they won't show up in the tag dropdown list and also won't render as tags.
  • Keyboard navigation is much more reliable.
  • Fixed creation of new files while writing in the editor with no file open.
  • The search functionality in both editor and Quicklook windows has been enhanced. It is now faster and you have to explicitly request a regular expression search by typing it literally. This means: Searching for /\w/ will select all words inside the editor, while \w will literally search for that string.
  • Zettlr now supports internal links. If you place a pandoc-compatible identifier inside a markdown link, it will try to jump to the respective line. E.g., the identifier #tangos-photography-and-film will match the heading # Tangos, Photography, and Film. Simply use a standard Markdown link: [Go to Tangos, Photography, and Film](#tangos-photography-and-film).
  • Zettlr keeps some margin between the cursor where you are writing and the window edges, i.e. it won't touch the window edges anymore, but keep a nice distance.
  • Quicklook windows can now be "popped out" so that they are no longer bound to the main window but can be dragged onto different displays, etc.
  • Windows and Linux windows now follow macOS in having no native window frame, but instead they employ the same strategy as macOS: The toolbar is the top element inside the main window of Zettlr, featuring window controls and, additionally, a button to open the application menu from the toolbar.
  • Zettlr correctly selects words containing apostrophs so that you can correct them adequately without the app "forgetting" the l' or 'll-part (or similar) of the word.
  • There's now an option to copy a file's ID to clipboard, if the file has one.
  • We've updated the Zettlr icon! It now matches the brand colour and has a modern look.
  • The image size constrainers look nicer and more intuitive now.
  • Added controls to determine which elements are rendered inside Markdown documents.
  • Simplified the attachment file handling and enabled dragging the paths of the files into the editor (e.g., to insert images).
  • Now the ID- and tag-search is case-insensitive.
  • Changes to the ID generation: Now if you press Cmd/Ctrl+L, the generated ID will be pasted wherever your cursor is currently (e.g. inside all text fields). Zettlr tries to back up your clipboard's contents and restore them afterwards.
  • Zettlr recognises IDs inside the name of a file. If the ID pattern returns a match in the file name, this ID takes precedence over any ID that may be in the file's content!
  • Added context menu entry to open link in the browser.
  • Images can now be dragged from the attachment pane onto the editor and will automatically be converted into valid Markdown links.
  • The tooltip that displays footnote texts when you hover over footnote references now displays formatted text, and not raw Markdown.
  • The zoom level of the editor's text is not lost on toggling the distraction-free mode anymore.
  • Update to the citeproc search. If you type an @ and begin searching for a work to cite, you can now also search through the title and don't necessarily have to know the ID anymore!
  • Added basic tag cloud functionality. You have now a new button in your toolbar that shows you all the tags that you've used somewhere in your files. You can also copy the full list into the clipboard!
  • Updates to the search functionality: Now the AND operator works as a requirement again (until now files have also reported search results if one or two of the search terms have matched, even if they were all required). Additionally, the tag search within files now accounts for a hashtag in front of the search term.

Under the hood

  • Documentation update in ZettlrValidation.
  • Updated the .dmg-installer file with a better background image.
  • Consolidated the package.json build fields.
  • Warning: The app ID has changed from com.zettlr.www to For the implications please check this link -- the change only affects Windows users.
  • Refactored the complete menu logic to make it more accessible.
  • Added a global notify() method in the renderer process for convenience.
  • Added an option to make footnotes inside files unique prior to project exports.
  • Moved the dictionary functions to the main process for asynchronous background loading.
  • Began using tern.js for better autocompletion.
  • Fundamental Core Update: Now on each request for a new file tree (using the command paths-update) not the whole object is sent towards the renderer because of app crashes arising from the use of synchronous messages via the new typo-channel. Instead, a dummy list is sent containing only the properties that the renderer accesses anyway. This way not only the amount of data is reduced quite significantly, but also the app does not crash on file and directory operations.
  • Removed an additional openPaths-update during the renaming of root files.
  • Now the current directory is re-set correctly after renaming the current directory.
  • Refactored the context menu to resemble the same structure as the application menu.
  • Switched to the handlebars.js templating engine.
  • The askSaveFile()-dialog is now non-blocking.
  • ZettlrFile objects won't forcefully try to move a file to trash while handling watchdog events anymore.
  • ZettlrRendererIPC and ZettlrIPC now access the ipc-modules consistent with all other classes.
  • Generalised the askFile() function in ZettlrWindow for further purposes.
  • The ZettlrConfig now acts as an event emitter and emits update-events, whenever the configuration object changes. It can be subscribed to using global.config.on (to unsubscribe use
  • Added a global.ipc.notify-function to easily send notifications to the renderer.
  • Added a "cachebreaker" to the preview images in Zettlr.
  • Moved a lot of files around: The CSS, Fonts, JavaScript and the template files are now in the common directory, so that it makes sense that there can be multiple windows that share those files.
  • ATTENTION: We've stopped committing the compiled Handlebars templates and CSS files to the repository, so even if you don't develop styles or templates, you now need to run yarn/npm less and yarn/npm handlebars before you run the application!
  • Removed a bunch of superfluous pass-through functions from the ZettlrRenderer class.
  • Bugfixes in the ZettlrExport class.
  • Switched to documentation.js for generating the API documentation.

Don't miss a new Zettlr release

NewReleases is sending notifications on new releases.