Skip to content

Releases: Zettlr/Zettlr

Release v3.0.0-beta.4

28 Apr 09:47
Compare
Choose a tag to compare
Release v3.0.0-beta.4 Pre-release
Pre-release

Performance Improvements | Bug Fixes

This next beta release for the upcoming 3.0 release mainly includes small improvements that further increase stability of the release. Most notable changes are:

  • Improved typing performance that has dropped in the last beta
  • Improved startup performance due to a bug in the FSAL subsystem cache
  • Fixed a few issues with the Markdown parser
  • Fixed a bug that could lead to corrupted layouts when opening and closing editor panes
  • Added novel Windows/Linux icons
  • Re-enabled clicking on plain links in the assets manager
  • Improved plain link colors (most notably in the changelog view)
  • Improved the RevealJS profile to match Pandoc 3.x options
  • Improve Portuguese (Brazil) translation and the French translation of the tutorial

What's Changed

New Contributors

Full Changelog: v3.0.0-beta.3...v3.0.0-beta.4

Release v3.0.0-beta.3

10 Apr 13:15
Compare
Choose a tag to compare
Release v3.0.0-beta.3 Pre-release
Pre-release

Stability and Performance Improvements

This fourth beta ships with a large amount of stability and performance improvements. This means that most changes have happened under the hood and should only be noticeable by you in terms of better response, better behavior, and smoother experience. Notably, the following changes have been made:

  • Upgrade the bundled Pandoc to version 3
  • Improvements to the status bar
  • The tag suggestions are now gone from the tag cloud
  • Improvements to the new Markdown AST parser
  • Re-enabled in-place editing of footnotes
  • Re-enabled minimized starting behavior
  • Better window management
  • Citation databases now properly reload on change
  • Copying and pasting has been improved
  • Upon changing certain settings, Zettlr will now automatically offer to restart
  • Improved a race condition on document save that could lead to data loss
  • Fixed the word and character counter
  • The FSAL file parser now utilizes the Markdown parser, ensuring that the detected metadata matches what the editor shows you

What's Changed

  • Do not crash on empty window_state.yml by @UFOMelkor in #4128
  • chore(deps-dev): bump @typescript-eslint/eslint-plugin from 5.48.0 to 5.52.0 by @dependabot in #4149
  • run Linux builds on Ubuntu 20.04 machines by @marado in #4155
  • chore(deps): Bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #4126
  • fix: Prevent search panel text from being selected by @kyaso in #4177
  • Use existing lastLeafId computed property in App.vue by @kyaso in #4189
  • refactor: Simplify link detection for file preview by @kyaso in #4197
  • chore(deps-dev): bump eslint-plugin-n from 15.6.0 to 15.6.1 by @dependabot in #4036
  • chore(deps): bump chart.js from 4.1.1 to 4.2.1 by @dependabot in #4143
  • chore(deps-dev): Bump @types/uuid from 9.0.0 to 9.0.1 by @dependabot in #4166
  • chore(deps): Bump ky from 0.33.1 to 0.33.3 by @dependabot in #4206
  • chore(deps): Bump minimatch from 5.1.2 to 7.4.3 by @dependabot in #4210
  • chore(deps-dev): Bump electron from 22.3.0 to 23.2.0 by @dependabot in #4212
  • arch linux: upgraded from aur to a regular package by @UweKrause in #4217
  • Insert DisplayName instead of FileName after an zkn-link by @UFOMelkor in #4209
  • chore(deps-dev): Bump webpack from 5.75.0 to 5.77.0 by @dependabot in #4226
  • chore(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.53.0 to 5.57.0 by @dependabot in #4225
  • chore(deps-dev): bump eslint-plugin-import from 2.26.0 to 2.27.5 by @dependabot in #4064
  • refactor: Make MainEditor single-document only by @nathanlesage in #4215
  • refactor: Move FSAL parser to utilize the Markdown AST Parser by @nathanlesage in #4242

New Contributors

Full Changelog: v3.0.0-beta.2...v3.0.0-beta.3

Release v3.0.0-beta.2

10 Feb 20:19
Compare
Choose a tag to compare
Release v3.0.0-beta.2 Pre-release
Pre-release

Bug Fixes | Native Modules Support | No Windows ARM

This next beta again ships with a set of bug fixes. Here's the shortlist of what's changed since the last beta:

  • Native modules are now correctly compiled for the right architecture, so no more issues with wrong architecture crashes
  • This also means, however, that we cannot currently ship Windows ARM builds, as those have been consistently failing. We are on it, but cannot guarantee to maintain Windows ARM support for now.
  • The editor search now uses the build-in panel. It's larger than what Zettlr had previously, but will work much better than it.
  • LanguageTool authentification with a Premium plan should now work
  • Updated translations for French and Russian
  • Document tabs are now deduplicated, i.e. if you have two files with the same name open, Zettlr will show you the containing directory name as well
  • Unified the Markdown-to-HTML transpilation. This means that now copying and pasting "with style" (a.k.a. from and to HTML) should give you a more consistent experience

Changelog

READ THIS FIRST!

This update brings a host of changes and new features. If you're upgrading from
an older version of Zettlr, you will have to re-do a few things because due to
the extensive changes, we had to adapt how your data is persisted. Here's the
quick list:

  1. Your open documents will have to be re-opened once. Regardless of which files
    were open previously, they will all be closed after the update.
  2. There are no more unsaved in-memory files.
  3. Two default settings have changed in order to maximize benefits from the new
    features: Avoid new tabs is now set to false (since split-panes also allows
    you to spread out your open documents across several panes and windows), and
    Always reload remote changes is now set to true by default.
  4. The defaults system has changed. You will see new export options that weren't
    there before, and you will see some weird export.format.yaml and
    import.format.yaml export options. These are the "old" profiles we have
    kept in case you made modifications. We suggest you copy over all changes to
    the new profiles and then delete them, or rename those old ones to more
    memorable names. Read more below.
  5. The TableEditor has received a better save strategy to prevent data loss. As
    it is impossible to fully control the data flow from the visual table element
    into the underlying Markdown document, this data flow is now explicit: Tables
    now feature a save button (with a disk icon) at the top of the table. Its
    background will be green as long as the table has not been modified. Once it
    it modified, the background will turn red. Click the button to apply all
    changes to the document.
  6. Quicklook windows are completely gone now.
  7. Footnote editing has changed: Instead of editing the footnote in-place by
    Cmd/Ctrl-clicking it, there is now an "Edit" button inside the footnote
    preview which, upon clicking, will bring you to the footnote context. This
    has the benefit that you will have full syntax highlighting support as well
    as any shortcuts and commands you may need.
  8. We have deprecated the Zettelkasten link start and end configuration
    settings. Both are now fixed to [[ and ]] respectively. We have figured
    that nobody needs to configure this, and it makes many parts of our code
    easier.

Split-Panes and Multiple Windows

A long awaited feature has made it into this version: Now you can open multiple
windows and you can split the editor area in every window into multiple parts,
so-called editor panes (sometimes we may call them "leafs" since internally
they are represented as a tree structure. Feel free to remind us in that case
that we're talking to humans, not our code). This means you can now open as many
files as you wish at the same time, and you can spread them out across multiple
windows. This will especially benefit workflows that rely on having open
multiple files side by side to copy information or to read them. However, if you
are happy with the old ways, you can of course opt not to use them. Here's how
it works:

  • You can open a new window by choosing the corresponding menu item in the
    Windows submenu, or by pressing Cmd/Ctrl+Shift+N.
  • You can now drag document tabs not just within the tab bar, but also onto the
    editor area. If you move a document tab to the borders of the editor, a
    shimmer will appear that indicates that you can split the editor to that side.
    If you drop the file on one of the four borders of the editor, this will split
    the corresponding editor in two along the specified direction (left, right,
    top, bottom) and also move the file into that new pane.
  • You can also move document tabs between multiple panes by simply dropping them
    in the center of an editor pane. As long as there's no shimmer, the file will
    be moved instead. You can also drop a file onto a tabbar of one of the
    editors, which will have the same effect (but it will be indicated with the
    same blue shimmer as when you are splitting an editor).
  • After you have closed the last file inside such a pane, it will automatically
    close itself. If the pane was part of a split, the other pane will then occupy
    the place of the now closed editor pane. To create the pane again, simply drag
    another file to the correct border of an existing editor pane.
  • You can resize the panes at will. Unlike the sidebar and file manager, we have
    not implemented any size limits, so with a little bit of care, you can create
    your unique mosaic of files.
  • Since we are now not limited to one active file and one set of open files per
    window, these notions have changed their meaning. Now, every editor pane has
    one set of open files and one active file. Each window also remembers which
    pane was last active so that global features (such as the sidebar) can show
    you information based on the most recently focused editor pane's active file.
  • Most contextual information (table of contents, list of references, etc.) will
    now update based on the most recently focused editor. In order to make those
    places show information relating to one of the open editors, simply click with
    your mouse inside to focus them.

New Defaults/Profile File System

This update introduces a new way to work with defaults files. At a glance,
here's what has changed:

  • Zettlr now understands the reader and writer properties of defaults files
  • It uses those properties to determine if a file can be used for importing or
    exporting, and displays the appropriate files in the relevant places for you
    to choose
  • You can now create new defaults files, rename existing ones, or remove them
  • When changing the writer or reader for such a file, this change will be
    recognized by Zettlr and be treated accordingly
  • This also means that Zettlr will from now on only ship with a minimum set of
    profiles; but any additional import/export formats can be created by you with
    just one click
  • Additionally, because of this, you are now able to export LaTeX files directly
    without running them through a Markdown interpreter first, allowing you to,
    e.g., create beamer slides or write plain TeX files within Zettlr
  • Furthermore, we have dropped our internal reveal.js exporter, since Pandoc
    supports everything we did out of the box (and better) than our exporter

Tag Manager Update

The tag manager has received a necessary face lift. Now, the tag manager shows
all your tags and allows you to assign/un-assign colors and descriptions. This
makes it easier to assign colors to certain tags without having to remember the
tag first. Additionally, it gives you a better overview over your tags. The info
is now being propagated better across the app, with more places showing the
assigned colors for tags.

Additionally, you now have a better way to consolidate your tags: Within the
tag manager, you can now rename tags in order to clean up your tagging system.

Migration Guide

There are two instances where you will want to migrate something.

Old defaults files

Since Zettlr will never remove any data without asking, it will keep the
previous files in your defaults directory. Now that their filename is also
meaningful, you can see them by their naming structure: import.format.yaml and
export.format.yaml. You are free to remove them or rename and keep them.

Zettlr ships with a set of new files that are now additionally appropriately
named. Those files are "protected". Protected files have a small lock icon next
to their name. Protected means that if you delete or rename them, they will
automatically be recreated. You can use this to your advantage: By deleting such
a file, you are effectively resetting it to factory default (good if you forgot
what you changed). By renaming such a file, you can effectively make a copy to
have several versions of the same settings depending on your needs.

Reveal.js Presentations

Since we have now dropped our internal reveal.js exporter, there are a few
changes you have to make to your existing reveal.js presentations. First, the
theme must now be defined in a YAML frontmatter instead of via the dropdown. A
minimal working YAML frontmatter will look like this:

---
theme: league
---

... the rest of the file

Supported theme values are:

  • beige
  • black (the default, in this case you can omit the theme variable)
  • blood
  • league
  • moon
  • night
  • serif
  • simple
  • sky
  • solarized
  • white

Then, in order to get a working reveal.js presentation, you have to make sure
that the property standalone: true is inside the profile (this is the
default). In order to additionally copy everything into the HTML file to create
a truly self-c...

Release v3.0.0-beta.1

20 Jan 11:00
Compare
Choose a tag to compare
Release v3.0.0-beta.1 Pre-release
Pre-release

LanguageTool integration | Status bar | Bug Fixes

This new beta includes a many bug fixes and a few new highlights, such as a new integration with LanguageTool! Here's what has changed since the last beta in all brevity:

  • LanguageTool integration: Now you can have your texts checked against LT's official API, or a custom server that you operate. See all settings in the Spellchecking tab of the preferences window.
  • New Status bar: In the editor tab, you can now activate a status bar that offers you some more info on your current document for each editor pane (including a way to see all spelling mistakes and grammatical info at a glance)
  • Fixed a bug that would ship the ARM releases (incl. Apple Silicon) with wrong hunspell binaries
  • Removed a ton of bloat from the build pipeline

And here's the changelog as it stands thus far:

Changelog

READ THIS FIRST!

This update brings a host of changes and new features. If you're upgrading from
an older version of Zettlr, you will have to re-do a few things because due to
the extensive changes, we had to adapt how your data is persisted. Here's the
quick list:

  1. Your open documents will have to be re-opened once. Regardless of which files
    were open previously, they will all be closed after the update.
  2. There are no more unsaved in-memory files.
  3. Two default settings have changed in order to maximize benefits from the new
    features: Avoid new tabs is now set to false (since split-panes also allows
    you to spread out your open documents across several panes and windows), and
    Always reload remote changes is now set to true by default.
  4. The defaults system has changed. You will see new export options that weren't
    there before, and you will see some weird export.format.yaml and
    import.format.yaml export options. These are the "old" profiles we have
    kept in case you made modifications. We suggest you copy over all changes to
    the new profiles and then delete them, or rename those old ones to more
    memorable names. Read more below.
  5. The TableEditor has received a better save strategy to prevent data loss. As
    it is impossible to fully control the data flow from the visual table element
    into the underlying Markdown document, this data flow is now explicit: Tables
    now feature a save button (with a disk icon) at the top of the table. Its
    background will be green as long as the table has not been modified. Once it
    it modified, the background will turn red. Click the button to apply all
    changes to the document.
  6. Quicklook windows are completely gone now.
  7. Footnote editing has changed: Instead of editing the footnote in-place by
    Cmd/Ctrl-clicking it, there is now an "Edit" button inside the footnote
    preview which, upon clicking, will bring you to the footnote context. This
    has the benefit that you will have full syntax highlighting support as well
    as any shortcuts and commands you may need.
  8. We have deprecated the Zettelkasten link start and end configuration
    settings. Both are now fixed to [[ and ]] respectively. We have figured
    that nobody needs to configure this, and it makes many parts of our code
    easier.

Split-Panes and Multiple Windows

A long awaited feature has made it into this version: Now you can open multiple
windows and you can split the editor area in every window into multiple parts,
so-called editor panes (sometimes we may call them "leafs" since internally
they are represented as a tree structure. Feel free to remind us in that case
that we're talking to humans, not our code). This means you can now open as many
files as you wish at the same time, and you can spread them out across multiple
windows. This will especially benefit workflows that rely on having open
multiple files side by side to copy information or to read them. However, if you
are happy with the old ways, you can of course opt not to use them. Here's how
it works:

  • You can open a new window by choosing the corresponding menu item in the
    Windows submenu, or by pressing Cmd/Ctrl+Shift+N.
  • You can now drag document tabs not just within the tab bar, but also onto the
    editor area. If you move a document tab to the borders of the editor, a
    shimmer will appear that indicates that you can split the editor to that side.
    If you drop the file on one of the four borders of the editor, this will split
    the corresponding editor in two along the specified direction (left, right,
    top, bottom) and also move the file into that new pane.
  • You can also move document tabs between multiple panes by simply dropping them
    in the center of an editor pane. As long as there's no shimmer, the file will
    be moved instead. You can also drop a file onto a tabbar of one of the
    editors, which will have the same effect (but it will be indicated with the
    same blue shimmer as when you are splitting an editor).
  • After you have closed the last file inside such a pane, it will automatically
    close itself. If the pane was part of a split, the other pane will then occupy
    the place of the now closed editor pane. To create the pane again, simply drag
    another file to the correct border of an existing editor pane.
  • You can resize the panes at will. Unlike the sidebar and file manager, we have
    not implemented any size limits, so with a little bit of care, you can create
    your unique mosaic of files.
  • Since we are now not limited to one active file and one set of open files per
    window, these notions have changed their meaning. Now, every editor pane has
    one set of open files and one active file. Each window also remembers which
    pane was last active so that global features (such as the sidebar) can show
    you information based on the most recently focused editor pane's active file.
  • Most contextual information (table of contents, list of references, etc.) will
    now update based on the most recently focused editor. In order to make those
    places show information relating to one of the open editors, simply click with
    your mouse inside to focus them.

New Defaults/Profile File System

This update introduces a new way to work with defaults files. At a glance,
here's what has changed:

  • Zettlr now understands the reader and writer properties of defaults files
  • It uses those properties to determine if a file can be used for importing or
    exporting, and displays the appropriate files in the relevant places for you
    to choose
  • You can now create new defaults files, rename existing ones, or remove them
  • When changing the writer or reader for such a file, this change will be
    recognized by Zettlr and be treated accordingly
  • This also means that Zettlr will from now on only ship with a minimum set of
    profiles; but any additional import/export formats can be created by you with
    just one click
  • Additionally, because of this, you are now able to export LaTeX files directly
    without running them through a Markdown interpreter first, allowing you to,
    e.g., create beamer slides or write plain TeX files within Zettlr
  • Furthermore, we have dropped our internal reveal.js exporter, since Pandoc
    supports everything we did out of the box (and better) than our exporter

Tag Manager Update

The tag manager has received a necessary face lift. Now, the tag manager shows
all your tags and allows you to assign/un-assign colors and descriptions. This
makes it easier to assign colors to certain tags without having to remember the
tag first. Additionally, it gives you a better overview over your tags. The info
is now being propagated better across the app, with more places showing the
assigned colors for tags.

Additionally, you now have a better way to consolidate your tags: Within the
tag manager, you can now rename tags in order to clean up your tagging system.

Migration Guide

There are two instances where you will want to migrate something.

Old defaults files

Since Zettlr will never remove any data without asking, it will keep the
previous files in your defaults directory. Now that their filename is also
meaningful, you can see them by their naming structure: import.format.yaml and
export.format.yaml. You are free to remove them or rename and keep them.

Zettlr ships with a set of new files that are now additionally appropriately
named. Those files are "protected". Protected files have a small lock icon next
to their name. Protected means that if you delete or rename them, they will
automatically be recreated. You can use this to your advantage: By deleting such
a file, you are effectively resetting it to factory default (good if you forgot
what you changed). By renaming such a file, you can effectively make a copy to
have several versions of the same settings depending on your needs.

Reveal.js Presentations

Since we have now dropped our internal reveal.js exporter, there are a few
changes you have to make to your existing reveal.js presentations. First, the
theme must now be defined in a YAML frontmatter instead of via the dropdown. A
minimal working YAML frontmatter will look like this:

---
theme: league
---

... the rest of the file

Supported theme values are:

  • beige
  • black (the default, in this case you can omit the theme variable)
  • blood
  • league
  • moon
  • night
  • serif
  • simple
  • sky
  • solarized
  • white

Then, in order to get a working reveal.js presentation, you have to make sure
that the property standalone: true is inside the profile (this is the
default). In order to additionally copy everything into the HTML file to create
a truly self-contained presentation, set the property self-contained: true.

All other things should work as before, but may require a small tweak here or
there.

GUI and Functionality

  • New Feature:...

Release v3.0.0-beta

09 Jan 10:00
Compare
Choose a tag to compare
Release v3.0.0-beta Pre-release
Pre-release

Multiple windows & panes | Update Internal Links | New Profile System

Happy New Year everyone. We start 2023 with a bang: Zettlr 3.0 goes public beta! Tons of improvements have made it into the app, so brace yourself. As always, we've accompanied the start of the beta with a blog post which you can find by following this link.

Attention: Many things have changed, so please read this Changelog carefully before upgrading!

Changelog

READ THIS FIRST!

This update brings a host of changes and new features. If you're upgrading from
an older version of Zettlr, you will have to re-do a few things because due to
the extensive changes, we had to adapt how your data is persisted. Here's the
quick list:

  1. Your open documents will have to be re-opened once. Regardless of which files
    were open previously, they will all be closed after the update.
  2. There are no more unsaved in-memory files.
  3. Two default settings have changed in order to maximize benefits from the new
    features: Avoid new tabs is now set to false (since split-panes also allows
    you to spread out your open documents across several panes and windows), and
    Always reload remote changes is now set to true by default.
  4. The defaults system has changed. You will see new export options that weren't
    there before, and you will see some weird export.format.yaml and
    import.format.yaml export options. These are the "old" profiles we have
    kept in case you made modifications. We suggest you copy over all changes to
    the new profiles and then delete them, or rename those old ones to more
    memorable names. Read more below.
  5. The TableEditor has received a better save strategy to prevent data loss. As
    it is impossible to fully control the data flow from the visual table element
    into the underlying Markdown document, this data flow is now explicit: Tables
    now feature a save button (with a disk icon) at the top of the table. Its
    background will be green as long as the table has not been modified. Once it
    it modified, the background will turn red. Click the button to apply all
    changes to the document.
  6. Quicklook windows are completely gone now.
  7. Footnote editing has changed: Instead of editing the footnote in-place by
    Cmd/Ctrl-clicking it, there is now an "Edit" button inside the footnote
    preview which, upon clicking, will bring you to the footnote context. This
    has the benefit that you will have full syntax highlighting support as well
    as any shortcuts and commands you may need.
  8. We have deprecated the Zettelkasten link start and end configuration
    settings. Both are now fixed to [[ and ]] respectively. We have figured
    that nobody needs to configure this, and it makes many parts of our code
    easier.

Split-Panes and Multiple Windows

A long awaited feature has made it into this version: Now you can open multiple
windows and you can split the editor area in every window into multiple parts,
so-called editor panes (sometimes we may call them "leafs" since internally
they are represented as a tree structure. Feel free to remind us in that case
that we're talking to humans, not our code). This means you can now open as many
files as you wish at the same time, and you can spread them out across multiple
windows. This will especially benefit workflows that rely on having open
multiple files side by side to copy information or to read them. However, if you
are happy with the old ways, you can of course opt not to use them. Here's how
it works:

  • You can open a new window by choosing the corresponding menu item in the
    Windows submenu, or by pressing Cmd/Ctrl+Shift+N.
  • You can now drag document tabs not just within the tab bar, but also onto the
    editor area. If you move a document tab to the borders of the editor, a
    shimmer will appear that indicates that you can split the editor to that side.
    If you drop the file on one of the four borders of the editor, this will split
    the corresponding editor in two along the specified direction (left, right,
    top, bottom) and also move the file into that new pane.
  • You can also move document tabs between multiple panes by simply dropping them
    in the center of an editor pane. As long as there's no shimmer, the file will
    be moved instead. You can also drop a file onto a tabbar of one of the
    editors, which will have the same effect (but it will be indicated with the
    same blue shimmer as when you are splitting an editor).
  • After you have closed the last file inside such a pane, it will automatically
    close itself. If the pane was part of a split, the other pane will then occupy
    the place of the now closed editor pane. To create the pane again, simply drag
    another file to the correct border of an existing editor pane.
  • You can resize the panes at will. Unlike the sidebar and file manager, we have
    not implemented any size limits, so with a little bit of care, you can create
    your unique mosaic of files.
  • Since we are now not limited to one active file and one set of open files per
    window, these notions have changed their meaning. Now, every editor pane has
    one set of open files and one active file. Each window also remembers which
    pane was last active so that global features (such as the sidebar) can show
    you information based on the most recently focused editor pane's active file.
  • Most contextual information (table of contents, list of references, etc.) will
    now update based on the most recently focused editor. In order to make those
    places show information relating to one of the open editors, simply click with
    your mouse inside to focus them.

New Defaults/Profile File System

This update introduces a new way to work with defaults files. At a glance,
here's what has changed:

  • Zettlr now understands the reader and writer properties of defaults files
  • It uses those properties to determine if a file can be used for importing or
    exporting, and displays the appropriate files in the relevant places for you
    to choose
  • You can now create new defaults files, rename existing ones, or remove them
  • When changing the writer or reader for such a file, this change will be
    recognized by Zettlr and be treated accordingly
  • This also means that Zettlr will from now on only ship with a minimum set of
    profiles; but any additional import/export formats can be created by you with
    just one click
  • Additionally, because of this, you are now able to export LaTeX files directly
    without running them through a Markdown interpreter first, allowing you to,
    e.g., create beamer slides or write plain TeX files within Zettlr
  • Furthermore, we have dropped our internal reveal.js exporter, since Pandoc
    supports everything we did out of the box (and better) than our exporter

Tag Manager Update

The tag manager has received a necessary face lift. Now, the tag manager shows
all your tags and allows you to assign/un-assign colors and descriptions. This
makes it easier to assign colors to certain tags without having to remember the
tag first. Additionally, it gives you a better overview over your tags. The info
is now being propagated better across the app, with more places showing the
assigned colors for tags.

Additionally, you now have a better way to consolidate your tags: Within the
tag manager, you can now rename tags in order to clean up your tagging system.

Migration Guide

There are two instances where you will want to migrate something.

Old defaults files

Since Zettlr will never remove any data without asking, it will keep the
previous files in your defaults directory. Now that their filename is also
meaningful, you can see them by their naming structure: import.format.yaml and
export.format.yaml. You are free to remove them or rename and keep them.

Zettlr ships with a set of new files that are now additionally appropriately
named. Those files are "protected". Protected files have a small lock icon next
to their name. Protected means that if you delete or rename them, they will
automatically be recreated. You can use this to your advantage: By deleting such
a file, you are effectively resetting it to factory default (good if you forgot
what you changed). By renaming such a file, you can effectively make a copy to
have several versions of the same settings depending on your needs.

Reveal.js Presentations

Since we have now dropped our internal reveal.js exporter, there are a few
changes you have to make to your existing reveal.js presentations. First, the
theme must now be defined in a YAML frontmatter instead of via the dropdown. A
minimal working YAML frontmatter will look like this:

---
theme: league
---

... the rest of the file

Supported theme values are:

  • beige
  • black (the default, in this case you can omit the theme variable)
  • blood
  • league
  • moon
  • night
  • serif
  • simple
  • sky
  • solarized
  • white

Then, in order to get a working reveal.js presentation, you have to make sure
that the property standalone: true is inside the profile (this is the
default). In order to additionally copy everything into the HTML file to create
a truly self-contained presentation, set the property self-contained: true.

All other things should work as before, but may require a small tweak here or
there.

GUI and Functionality

  • New Feature: You can now open multiple main windows, each with their own
    files loaded
  • New Feature: You can now arbitrarily split the editor area into multiple
    editor panes to keep open as many files at the same time as you wish
  • New Feature: After a long time, you can now again drag and drop entries in
    the table of contents in the sidebar to rearrange sectio...

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