Skip to content

Releases: Zettlr/Zettlr

Release v2.3.0

08 Jun 13:33
Compare
Choose a tag to compare

Customizable Toolbar | Filetree Navigation | Quality of Life

This update introduces a few new features that had been long in demand. Firstly, now you can customize the toolbar and display or hide most elements depending on your preferences. To do so, head over into the new tab in the preferences window. Secondly, you can now navigate the file tree as well with your arrow keys. To collapse or uncollapse directories, you can use the left and right arrow keys. Thirdly, we have added scroll buttons which will come in handy for those of you who cannot or do not want to scroll through the tabbar horizontally.

Besides these new features, we have again fixed a bunch of bugs and improved working with the app considerably. As always, make sure to read the changelog so you're up to speed!

Changelog

GUI and Functionality

  • New Feature: You can now customize the toolbar and add or remove buttons
    as you see fit
  • New Feature: You can now navigate the file tree with the arrow buttons
    after activating the quick filter; use up and down to visually move through
    the visible items and left/right to collapse/uncollapse a directory; use Enter
    to "click" that item
  • New Feature: The document tabbar now features buttons so you can easily
    scroll horizontally through many tabs
  • Added "Copy filename", "Copy path", and "Copy ID" items to document tabs
    context menus (thanks to @kyaso)
  • Added "New File", "Next File", and "Previous File" buttons to the toolbar
  • The query input now gets blurred when starting a global search in order to
    prevent the dropdown from showing up, especially during auto-searches
  • Added keyword/tag CSS class names to YAML frontmatter tags
  • Added the last modification date to the file list, even if the additional info
    setting is turned off
  • The "restrict to directory" field will now be empty by default
  • Pressing Tab while the query input is focused will now directly focus the
    restrict-to-dir input
  • The table of contents in the sidebar now shows the title of the currently
    active file, if applicable
  • Removed the less-than-helpful file and folder removal shortcuts
  • Fixed the recent documents menu on Windows
  • Fixed wrong character count if counting without spaces
  • Fixed wrong word count for indented lists
  • Fixed wrong keyword/tag CSS class names
  • Fixed jumping of the code editor in the assets manager
  • Fixed wrongly positioned tabstops during snippets autocomplete
  • Fixed an error that would erroneously render citations in footnote previews or
    copied text with styling

Under the Hood

  • Ignore IDEA-related files
  • Update Pandoc to 2.18
  • Refactored the main window's store to be more modular for the upcoming
    additional changes
  • Added an additional check for frontmatter values in code files

Release v2.2.6

08 May 09:36
Compare
Choose a tag to compare

Quality of Life Update | Improved Performance

This is a small update that fixes two problems that have been causing us headaches for the past weeks. First, it significantly improves writing speeds after some mistakes on our side have introduced considerable lag in typing. And second, it fixes a bug that could prevent Zettlr from loading some of your directories at all if the directory settings had been corrupted.

Changelog

GUI and Functionality

  • A malformed directory settings file now does not prevent loading the
    directory; instead the malformed file is now removed
  • Fixed a small visual glitch on Linux where the selected file was not
    highlighted in the file list in the thin or expanded file manager modes
  • Fixed heading ID links not working with, e.g., accents
  • Fixed heavy latency when working on a file with many related files

Under the Hood

  • Simplify the codeblock class hook again to significantly improve typing speed
  • Updated all dependency packages to the respective latest versions

Release v2.2.5

08 Apr 18:24
Compare
Choose a tag to compare

This new update again fixes bugs and smaller nuisances. Of special interest this time are two areas: The VIM editing mode, and the search functionality. The VIM mode now has a visible command bar at the bottom of the editor once you start typing a command. The search has been improved mainly in respects to usability.

Please note that this is the first version that utilizes the new Windows code signing certificate. If you use Windows, it may under some circumstances happen that you see a warning that the update could not be trusted. This can happen if your Windows installation misses the latest SmartScreen definitions.

As always, please see the full changelog below to know what exactly has changed.

Changelog

GUI and Functionality

  • Localized Previous/next file menu items
  • Fixed selection of words on right-click in the editor
  • Editor word selection on right-click now accepts both ' and ’
  • Add Fortran syntax highlighting (keyword fortran)
  • Fix a bug that could lead to data loss when changing documents while a table
    has focus
  • Added an extra check so that unexpected values of openDirectory would not
    prevent Zettlr from starting
  • Make the vim command line visible and style it according to the Zettlr themes
  • Clicking on the toolbar now doesn't steal the focus from other elements,
    making it more comfortable to drag the window and immediately continue writing
  • Added slight transparency to the inline code background color so that block
    cursors are visible inside that code
  • Resizing an image upon pasting from clipboard now works better, since the
    aspect ratio will only be recalculated once you leave the input field (i.e. by
    tabbing into another input); this way you can just type in a specific number
  • Disabling "render task lists" will now also disable the application of task
    lists; this helps speed up editing long documents with many tasks
  • The main editor search now no longer automatically searches
  • When opening the main editor search, anything in the search input will now be
    selected
  • Fix unintended global search start
  • Highlight results from global search in the main editor text
  • The code editor in the assets manager now scales with the size of the window
  • Added an option to prevent Zettlr from checking for updated translations

Under the Hood

  • Switched to the new code signing certificate for the windows installers
  • Write errors which are logged properly to disk
  • Display errors in the log viewer
  • Added the default Homebrew installation directory for Apple Silicon Macs in
    order for Zettlr to find Pandoc installed via brew.
  • Improve global search typings

Release v2.2.4

05 Mar 15:25
Compare
Choose a tag to compare

New Zoom Behavior | Better Link Display | FSEvents on macOS

This is again a smaller patch that improves many aspects of the app. As the last times, we have focused on improving very small but noticeable nuisances in Zettlr's behavior. One improvement we are very proud of is that after many years we have finally managed to get fsevents running. fsevents is a small library that enables us to watch your loaded directories for changes (so that if you add, remove, or modify a file externally, Zettlr can reflect that) without being too costly on your computer's processor. This change only affects macOS since the file-watching works already quick on Windows and Linux. You will be noticing this because changes to your files will be reflected (almost) immediately instead of with a delay of up to five seconds.

Changelog

This update changes the scroll effect on the document tab bar to be smooth
instead of snappy. To revert to the old behavior, you can use the following
Custom CSS:

body div#tab-container {
  scroll-behavior: auto;
}

GUI and Functionality

  • New Feature: You can now switch between zooming the whole GUI or just the
    editor font size when using the zoom menu items/shortcuts
  • Restores the display of links in the related files section of the sidebar
  • Differentiate between inbound, outbound, and bidirectional links in the
    related files section
  • Fix related files display and link reporting
  • Added a smooth scrolling effect for the tab bar
  • Added classes in order to conditionally style the related files section based
    on the type of relation, the classes are tags if the relation is based on
    keywords, inbound for incoming links, outbound for outgoing links, and
    bidirectional for links from and to the said file
  • Clicking on math now places the cursor correctly, reducing friction
  • Select the image markup when clearing a rendered image by clicking on it
  • Image captions do not disappear anymore while you are editing it, even if you
    move the mouse out of the image area
  • Improve icon alignment in the related files section
  • Relaxed conditions for emphasis rendering by just excluding word-characters
  • Tab characters are no longer detected as spelling errors
  • You can now choose to indent using tab characters instead of spaces
  • Do not close the file left to a new usaved file upon saving the file
  • Fixed a weird race condition in which the file manager would remain ignorant
    of an in-memory file after it has been saved to disk
  • Changes to your files should now be detected immediately also on macOS
  • Fixed a bug that would disable both types of magic quotes (single + double)
    if you disabled only one type
  • Improve styling of progress bars on all platforms

Under the Hood

  • Resolve links on-demand in the link provider
  • Factor out the clickAndClear functionality to its own helper
  • Improve editor image CSS
  • Factor out the checks to see if we can render some element to unify behavior
    across rendering plugins
  • Update most pure Node scripts from CommonJS to ESM in order to support the new
    versions of csso, chalk, and got
  • FINALLY managed to get fsevents to run! After about three years or so.
  • Add support for JabRef fileDirectory-style comments

Release v2.2.3

19 Feb 10:59
Compare
Choose a tag to compare

Bug Fixes and Improvements

Today comes a smaller update that fixes a few annoying bugs that came up after the last release, and it contains improvements to the graph view. Most notably, it should rebuild less frequently and much faster. Also, we finally fixed a bug that was around for a little bit longer and that prevented exports of reveal.js presentations in stylesheets other than black.

Changelog

GUI and Functionality

  • The graph view now only updates when the underlying link structure has in fact
    changed
  • Fixed an issue that would break project exports since we accidentally passed
    not just Markdown and code files, but also everything else in that directory
    to pandoc (including, but not limited to, PDFs, HTMLs, images, etc.)
  • The graph view now supports displaying labels permanently; useful for smaller
    graphs
  • Better graph sizing
  • You can now highlight specific vertices based on text matching on its path
  • The graph view scrolling has now been replaced by moving zoom, i.e. wherever
    your mouse cursor is when you zoom, the graph will zoom in ever so slightly
    onto that position
  • Tags/keywords in a YAML frontmatter are now properly lowercased
  • Massively improve the speed of graph building
  • Fixed an error that would prevent the creation of new directories
  • Fixed a bug that would always export a revealJS presentation using the black
    stylesheet
  • Fixed commented entries in the YAML frontmatter being detected as headings
  • The file tree now remembers which directories are opened for longer
  • Make the emphasis rendering plugin less aggressive

Under the Hood

  • Remove the dependency on the LinkProvider within the FSAL
  • The LinkProvider now only updates when necessary; easing the load on the graph

Release v2.2.2

16 Feb 10:20
Compare
Choose a tag to compare

Graph View

With this patch, we bring you a new, long awaited feature: A graph view! Read more about it below and in the newly created documentation.

Changelog

This update includes a long-awaited feature: Graph views. This brings Zettlr on
par with other apps such as logseq or Obsidian. You will find the graph view in
the stats window, which you can open as usual by clicking the statistics button
on the toolbar. The graph will re-render as soon as something in the link
structure of your notes changes. Rendering may take some time, however -- not
because constructing or displaying the actual graph takes so much time, but
rather, because resolving internal links (which can be either IDs or filenames)
takes a long time.

Within the graph view, you can interact with it in a few ways:

  • You can tick the checkbox to exclude isolates from rendering, that is: files
    which are not linked to any other note
  • With the + and --buttons, you can zoom in and out of the graph
  • Using the dropdown menu, you can restrict rendering to a single component.
    These clusters of files are ordered by size, so the first components in the
    list are the biggest in your network of files. Note that isolates are excluded
    from this list
  • By utilizing the trackpad or scrollwheel of your mouse, you can scroll both
    vertically and horizontally; dragging does not work yet
  • Clicking the target button resets the view on the graph to its origin if you
    have scrolled someplace else
  • Clicking on a note will open it in the main window just as if you had clicked
    on the note in the file manager

Note that the graph view is still in its early stages. It works as advertised,
but since networks can be very tricky, there is a lot of room for improvement.
You will notice that we publish this new feature using a patch release (2.2.2
instead of 2.3.0). The reason is that we cannot finalize this feature in any way
without the feedback from the community. So for this feature, we would like to
invite you to provide feedback -- not just about potential bugs, but about
things we should improve in the visual feedback the graph view gives you.

See this as an opportunity: Whereas the graph views of Roam, logseq or Obsidian
are pretty much in a final stage, Zettlr's graph view is still a blank canvas
upon which you can project your ideas that help us all make sense of the chaos
that is the network of our files!

GUI and Functionality

  • New Feature: Zettlr now finally offers a graph view of all notes in the
    statistics window; clicking on a vertex opens the file in the main editor, and
    you can choose to hide isolates
  • The full-text search doesn't skip files whose title and/or tags match the
    search terms anymore
  • Hovering the mouse over a document tab now shows the full path of the file
  • Ensure that in-memory files which are saved outside the workspaces are still
    added as root files
  • Use a more appropriate cursor for resizing the split views

Under the Hood

  • Add d3 as a fixed dependency in package.json; lock to the version from
    mermaid
  • Fix a dependency race condition in the service container
  • Make error messages more meaningful
  • Enable renderers to search for files using an internal link

Release v2.2.1

12 Feb 10:58
Compare
Choose a tag to compare

Hotfix for a Startup Crash

Quite a few of you, excited to see the launch of 2.2.0, saw the app crash instead of displaying to you all the neat improvements we have stacked into the update. The cause* was luckily quickly found and, with this update, we fix it. Additionally, there are a few minor additional changes, as usual, because the train of progress never stops πŸš‚πŸšƒπŸšƒπŸšƒ.

* For those interested: Somehow we managed to sneak an infinite loop into the app, one of the most rookie mistakes one can possibly make.

Changelog

GUI and Functionality

  • Fixed an error that would under certain circumstances crash the application on
    start
  • Fix an error that would make some actions unusable if a faulty translation was
    provided
  • Fixed an issue where sometimes moving the cursor to the beginning of a list
    item would misbehave
  • Zettlr now detects if a directory is a git repository and displays this
    information in the directory properties
  • Zettlr can now also preview emphasis such as italic or bold text
  • Using an absolute path as the default image location will ensure that pasted
    images will be inserted using absolute paths as well.
  • Sometimes, something goes wrong when you start the application; now you will
    receive an informative message box if that happens, so that reporting problems
    will be easier

Under the Hood

  • Other files are now stored in the children array; the attachments array is
    now gone for good
  • Removed old remnants of the experimental WYSIWYG mode, since Zettlr now offers
    this via the ensemble of all rendering plugins in the main editor
  • Incorporate the logic to disambiguate ID and filename links into
    FSAL::findExact()
  • Improve findObject utility function
  • Resolve outbound links directly in the link provider

Release v2.2.0

09 Feb 17:24
Compare
Choose a tag to compare

Support for Large Citation Libraries | Bug Fixes | Major Refactor

This release contains two improvements. On the one hand, we spent a lot of time mingling with the internals of the app again in order to prepare the app for the future plans we have. That is something you won't notice too much since it does not affect the functionality of the app. But this is the reason why this version is called 2.2.0, and not 2.1.4.

On the other hand, we've spent the past weeks fixing bugs that unfortunately made it into Zettlr 2.1.3. A few of you reported that you couldn't even run that version. We would like to apologize for this, and at the same time announce that this annoying error has been fixed, along various other issues which you can read en detail in below's changelog.

Lastly, something that a few people have consistently complained about over the past years was that Zettlr sometimes doesn't like too large citation databases. We are happy to announce that we have again improved the citation handling of the app so that it now shouldn't buckle in the face of large citation databases.

Changelog

Attention: This update switches one preference in the exporters' defaults:
file-scope is now removed. Remove this line from your defaults files, or reset
them to the (new) default, if you'd like to use this in your exports as well.
See this issue for more info and an explanation what this option does.

GUI and Functionality

  • Tags and keywords within a YAML frontmatter are now clickable
  • AutoCorrect values are no longer detected as spelling mistakes
  • Fix an issue with false detection of footnote reference texts
  • Fix link resolving: Now files dropped onto the editor will be easier to detect
    as files (rather than weblinks)
  • Fixed reloading issues with very large citation databases
  • Fixed a visual glitch when choosing to "Open in a new tab" in a note preview
  • Fix a regression that inserting pasted image paths into the editor didn't work
  • Fix wrong display of citations if there was an error rendering the citation
  • The tutorial is now also available after the first start; you can reopen it
    any time from the Help menu
  • The autocompletion popup doesn't disappear anymore if you completely remove
    anything already written to begin anew
  • Fix a bug that would with some installations result in a blank main window.
  • Fixed a bug that would sometimes not update the tag autocompletion
  • Ensure documents are saved when renaming a directory
  • Do not show "Open Image Externally" if loading a data URL
  • Improve styling for the "No results" message on file tree filtering
  • Newly created files now always open in a new tab
  • Fixed a bug where you would receive two "paste image" dialogs if you had text
    selected when pasting an image onto the editor
  • Fixed conflicting text decorations between strikethrough and spellchecking
  • Fixed a bug where a YAML frontmatter beginning and end would also be
    recognized even if it was not valid. A valid YAML frontmatter must be
    delimited by exactly three dashes/dots on their own line, and not more

Under the Hood

  • Update Pandoc to 2.17.1.1
  • Activate watchdog polling for the citeproc provider. This should reduce issues
    with very large citation databases.
  • If the error message upon a failed database reload indicates that the file was
    simply incomplete, the citeproc provider now attempts a second reload after a
    delay of 5 seconds
  • Moved the workspace and root file opening logic into their own command
  • Make the ZettlrCommand base class abstract and require constraints on derived
  • Remove all calls to global in the renderer processes; instead properly type
    the API provided via the window object
  • Refactor the main process:
    • Move the FSAL, the WindowManager, and the DocumentManager into the service
      provider realm
    • Factor out all commands into a new CommandProvider
    • Use singleton dependency injection to provide services to each other,
      utilizing an AppServiceContainer
    • Remove (almost) every dependency on the global object
    • Move the littered code from the Zettlr main class into their corresponding
      service providers
    • Fixed the dependency hell within the FSAL
  • The app doesn't attempt to download the Vue3 devtools in production anymore
  • The date formatter now takes everything as parameters and has unit tests

Release v2.1.3

29 Jan 10:31
Compare
Choose a tag to compare

Quality of Life Update

This update focuses on many minor improvements so that working with Zettlr becomes much more pleasant. While the previous two updates focused on fixing bugs that unfortunately made it into the app, this update can solely focus on improving your interaction with the app. We heavily improved the readability mode, the global search, and the TableEditor. But also outside of these three larger modules we have improved the app's behavior a lot. For example, the app now remembers if you had the sidebar open, and even on which tab you were so you don't have to open the sidebar again and again when launching Zettlr.

As always, we encourage you to read the full changelog below to see for which things you can finally forget your clumsy workaround and just enjoy writing productively!

Changelog

GUI and Functionality

  • Display inline math using monospaced font
  • Right-clicking citations doesn't select parts of it anymore
  • Inline-equations are now properly syntax highlighted
  • Fixed a bug that caused unintentional pastes when closing a tab using the
    middle mouse button on Linux
  • Heavily improved the full text search: Previously, certain files that should
    have been returned for specific search terms were not considered a match, and
    multiple results per line were mostly not reported; additionally, search
    results are now ordered by relevancy and the search results are marked more
    visibly
  • Heavily improved the table editor user interface: Now the table editor will on
    certain actions write all changes back to the document so that the possibility
    of data loss involves a single table cell at most in case the user forgets to
    un-focus the table. Furthermore, the table editor will now not be removed from
    the document when it loses focus, and instead the table will be updated
    silently
  • The log viewer now only displays errors and warnings initially
  • Fix a small visual glitch on macOS for toolbar searches
  • Added "Open in new Tab" button to link preview tooltip, when user has
    preference "Avoid Opening Files in New Tabs" set to true
  • Fix Use the CodeMirror default actions for Home and End preference not
    working on MacOS
  • Fix task item strikethrough appearing laggy
  • Fix task item strikethrough covering the preceding whitespace
  • On macOS, file tree icons are now displayed using the theme/system color. On
    all platforms, you can customize the appearance using the selector
    body .tree-item clr-icon.special (including platform/mode selectors)
  • Improve the readability mode: Now it will not render a YAML frontmatter and it
    will additionally treat sentences smarter than before
  • Fixed an issue that would sometimes break images when you edited the caption
    in the rendered image caption.
  • Enable resetting of the custom Zettelkasten directory
  • The default value for "Use system accent color" is now off for all platforms
    except macOS
  • The app now remembers if you had the sidebar open, and which tab you selected
  • The app now remembers your recent global searches
  • The file tree now expands when you are filtering for files/directories
  • Translate the auto dark mode start/end setting strings
  • The ToC now displays the currently active section
  • Fix file manager always showing word count, even if user selected character
    count in preferences
  • When clicking on a heading in the ToC, the cursor is now set to that heading
    and the editor is focused immediately
  • Fix recent documents items not being clickable in Linux
  • Fix drag & drop of files onto the editor
  • Fix some bugs in the link opener

Under the Hood

  • Update Pandoc to 2.17
  • Removed the unused PDF settings from the config
  • Removed the unused pandoc and xelatex config options
  • Convert all MarkdownEditor hooks and plugins to TypeScript
  • Tests now simply transpile without type checking
  • Move service provider types to the new types directory
  • Provide @dts as an alias to retrieve typings
  • Move FSAL types to the new types directory
  • Convert the remaining utility functions to TypeScript
  • Polyfill the path module in renderer processes
  • Convert the MainSidebar component to TypeScript
  • Move out the statistics calculation from the FSAL
  • The yarn package and yarn test-gui commands now skip typechecking,
    reducing build time by a large margin

Release v2.1.2

14 Jan 08:59
Compare
Choose a tag to compare

Display Improvements | Zettelkasten improvements | VIM Mode

While the last release mainly fixed things, this release puts a little bit more focus on new functionality. Mainly, we have worked on improving the overall usability of Zettlr's file management system and the Zettelkasten functionality. This means that you can now tell Zettlr to only use filenames to display for you (instead of YAML frontmatter titles overriding them). Furthermore, you can also display Markdown file extensions for a more file-browser-ish appearance.

Additionally, you can now explicitly link using filenames and disregard any IDs, which can be useful for certain Zettelkasten approaches.

Lastly, something that will bring joy to all those of you who enjoy writing in the style of vim: We accidentally discovered that the vim mode started working again. We had to disable the vim mode with version 1.8.1 because it stopped working. That being said, the option is now available again in your editor preferences!

Changelog

GUI and Functionality

  • New Feature: You now have more fine-grained control over how your files
    are displayed: You can now select if the filename is always used or a title
    or first heading level 1 is used (if applicable)
  • New Feature: You can now also fold nested lists
  • New Feature: You can now choose to display the file extensions of Markdown
  • New Feature: You can now choose to always only link using filenames
  • The Vim input mode of the editor started working again, so we are re-enabling
    it with this update
  • Fixed an error that would cause the global search to malfunction if you
    followed a link which then started a global search while the file manager was
    hidden
  • Removed an unused preference
  • Rearranged some preferences
  • On Windows, tabbed windows will automatically hide their labels if the window
    becomes too narrow
  • Reinstated the info on what variables you could use in the Zettelkasten
    generator
  • Zettlr displays info text below some preferences again
  • Citations are now first-class citizens and got their own preferences tab
  • Fixed a small error that would close additional files when you renamed a file
    that was also currently open
  • Fixed the context menu not showing during a full text search on macOS
  • When something goes wrong during opening of a new workspace or root file, the
    error messages will now be more meaningful
  • Small improvement that will not detect Setext headings level 2 without a
    following empty line. This prevents some instances of data loss where users
    forget this empty line and thus accidentally create a valid simple table
  • Fixed an issue where the indentation of wrapped lines would look off after
    changing the theme or modifying the editor font via custom CSS
  • Fixed the vim mode cursor being barely visible in dark mode
  • Done task list items will now be stroked out faster

Under the Hood

  • Convert the MarkdownEditor to ES modules and TypeScript
  • Make the dot-notation rule optional