Release v3.1.0 #5134
nathanlesage
announced in
Announcements
Release v3.1.0
#5134
Replies: 1 comment
-
Is the flatpak version of 3.1.0 gonna be available soon? Thanks for all the hard work. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Wikilink-Titles | Project Overhaul | LT Improvements | And much more
Today's the day! After more than half a year since the last bigger update we are absolutely stoked to announce the next major update to Zettlr! This update brings loads of improvements and a decent amount of new features with it. A lot of it is about improving many workflows around the app and making your life much, much easier. Also, this release contains the début of our UX/UI artist, Artem Barinov, who has spent almost the entirety of 2023 fully re-designing the preferences dialog from the ground up — a feature that was fully designed before the launch of 3.0.0 but narrowly didn't make it in that release. We are excited to hear what you have to say about it!
Zettlr is Free and Open Source (FOSS) software and is done entirely by volunteers. But, developing the app incurs a significant cost factor. Please consider becoming a regular sponsor via Patreon or send a one-time donation via PayPal. Every dollar counts!
But now, let's get into what changed in 3.1.0. There are three categories of changes: new features, improvements to existing workflows, and significant changes to existing workflows. Please make sure to read the entirety of the Changelog below to know what has changed so that none of the changes take you by surprise! Here's the overview at a glance:
[Title]([[Link]])
) has been partially restoredChangelog
Changes to the link detection
For a long time now, Zettlr would (sometimes aggressively so) detect plain links
and display them in a rendered state. In some cases, this was nice as it would
relieve you from having to surround such links with pointy or angled brackets.
However, especially in the latest evolution of this parser plugin, the link
detection was a bit too aggressive and interfered, e.g., with emphasis
highlighting. In this version, we have entirely removed our custom link
detection and rely upon the more straight-forward way of detecting links.
Regarding your exporting experience, this should not have any impact, since the
auto-link-detection feature wasn't enabled by default by Pandoc anyhow, but
depending on how you have been writing, you may notice less detected links in
your documents.
To add "plain" links (without using the full
[]()
-syntax) from now on, simplysurround them with angled brackets:
<https://www.google.com>
or<mail@example.com>
. Note that the protocol (https://
) is required, so<www.google.com>
will not work.This changes brings Zettlr's link functionality much more into alignment with
other editors as well, since this is the way that many other applications handle
links as well.
Introducing Wikilink Titles
This update brings a long-awaited change to Zettlr's handling of internal links
(sometimes called Wikilinks). Specifically, with this version, Zettlr finally
supports optional titles in such links. Your old links in the format
[[link]]
still work fine, but now you can add a title that is different from the link,
separated by a pipe, or vertical bar character (
|
).If such a title is given, Zettlr will use it in various ways to make your files
more readable. For example, if you have the link renderer activated in the
settings, it will take care of hiding the link target of Wikilinks as well as
those of regular Markdown links.
Since there is no way of knowing which of the two parts is the link, and which
is the title, Zettlr follows Pandoc's solution in allowing you to specify how
internal links are structured for you. The default and recommended setting is to
put links first, and titles second (
[[link|title]]
). This ensurescompatibility with VimWiki, MediaWiki, Obsidian, and others. However, should you
need to target GitHub wiki pages or another application that expects a title to
come first, you can select the alternative option (
[[title|link]]
).In order to make Pandoc aware of your choice, you can add one of the following
reader extensions to your export profiles:
wikilinks_title_after_pipe
orwikilinks_title_before_pipe
.Lastly, due to this improvement, we have changed the default setting for "link
with filename" from "always" to "never", since it will be more ergonomic to use
a custom link title directly instead of having the filename pop up after the
link. This default setting applies only to new installations automatically; so
if you already installed Zettlr, you can manually switch it.
Re-enabling old Link-Title-Syntax
After the release of Zettlr v3.0.0, some users have complained that their
internal links have stopped working. It turns out that quite a lot were using
Logseq's syntax for adding titles to internal links (
[Title]([[Link]])
), whichwe broke during a refactor of the Markdown parser. This update partially
restores this link functionality, allowing you to
Cmd/Ctrl-Click
them tofollow these links again.
Note that we have not implemented other parts yet, and we recommend the more
common
[[wikilinks]]
or[regular markdown links](./file.md)
.Preferences Window Overhaul
This release marks the debut of our UX/UI artist Artem Barinov who spent the
better half of 2023 redesigning the entire preferences window from scratch.
While this change narrowly didn't make it into 3.0.0, we are more than excited
to introduce this new and sleek overhaul in this version.
The new window now follows a much more consistent design philosophy. While we
have kept the broad tabbed outline, the settings have now been moved into
smaller blocks that contain sets of related settings. Furthermore, instead of
having to remember where a setting is located, you can now directly search for
it using the new search bar.
We also took the opportunity to change, rename, relabel, and remove settings so
that a bit of older remnants are now gone. Overall, the experience of changing
the settings should now be much smoother, and we hope you like the change. In
the coming updates, you can improve many more improvements on the UX side of
things!
Project Overhaul: Full Control Over Your Files
Projects are at the heart of Zettlr. As a writing toolbox primarily targeted at
academics, journalists, and writers, it must cater not just to simple note-
taking workflows, but also to serious writing. Because of this, Zettlr ships
with a project feature since the very beginning (since version
0.18.0
,released on Jul 20, 2018, to be precise).
However, for a long time the feature attempted to piggyback on the way your
files were displayed. This meant that (a) the order in which your files were
weaved together into the project file depended on the sorting of the directory,
and (b) there was no clear way to exclude files that naturally amass during the
lifetime of a project, such as notes, backup files, and miscellaneous.
Zettlr 3.1.0 fixes this issue by introducing a rather small, but powerful change
to the way projects work. We have removed the difficult to understand glob-
patterns that were introduced in a less-than-ideal attempt to fix some of the
complexity-issues that were introduced later (such as displaying file titles
instead of filenames, and others). Instead, you can now explicitly select which
files will be included in your bound export files – and in which order.
The new file list, which you can find in the project properties dialog, aims to
be dead-simple to understand, yet give you back the certainty which files will
end up where in your export – without a doubt.
This also means a change to your projects: After this update, the glob patterns
will be removed from your
.ztr-directory
files and replaced with an (initiallyempty) array of files to be included in your project. That means that you will
have to select the files you want to include in a project once after the update.
Managing this list in the project properties is simple: The "Files" tab includes
a list of all files available within the project's folder structure. To select a
file for export, click the "+"-button to move it up and include it in the
export. Next, you can use the "Up"- and "Down"-buttons to change the order of
the files within your export. The "-"-button removes a file again and moves it
back down to the list of ignored files. Changes are immediately applied and
persisted to your disk.
When you now export the project, Zettlr will use only the files you have
selected, and put them in the appropriate order.
Should you have deleted a file that you originally included in the list of
files, Zettlr will show you a warning message as soon as you export it so that
you can have a second look to not send off a file that's missing a crucial part
of your work. Such missing files are shown atop of the available files and
feature a "-"-button which allows you to remove them from the list. We opted for
this approach of you manually having to remove missing links, since it makes it
transparent which files are missing so you can take the appropriate action
(especially if it was an accidental deletion).
LanguageTool Improvements
The first update to Zettlr's LanguageTool integration concerns the language
detection. This update ships with two improvements:
lang
frontmatter propertyThose who prefer writing in British English (instead of, e.g., US English) had
to resort to manually switching the automatically detected language from en-US
to en-GB every time they opened a file. This has to do with fact that
LanguageTool's auto-detector cannot reliably distinguish between variants of
some languages (English, German, Portuguese, and Catalan). That is why LT
implements a "Preferred Variants" setting that allows you to specify which
variant you prefer when writing in any of these languages. Zettlr now implements
this setting so that when LT auto-detects the language, it will choose that
variant if it detects that, e.g., English is the language. You can adapt this in
the settings.
Second, LanguageTool now respects the
lang
property in YAML frontmatters. Thiswill come in especially handy for people writing bilingual and where
LanguageTool has troubles auto-detecting the primary language. By setting the
property
lang
to the language of the document (e.g.,en-CA
), LanguageToolwill default to that one instead of choosing the auto-detection. As an added
benefit, Pandoc also supports this property to localize some things here and
there (read more at https://pandoc.org/MANUAL.html#language-variables).
Note that both improvements only apply to the initial loading of a document. You
can always override the language on a per-document basis using the status bar.
GUI and Functionality
setting instructs the parser to expect first the link, and then the title
(
[[link|title]]
), which ensures compatibility to, e.g., VimWiki, MediaWiki,or Obsidian, whereas the alternative setting (
[[title|link]]
) is compatibleto GitHub wiki syntax. Remember that you need to enable the corresponding
option on the Pandoc Markdown reader (
wikilinks_title_after_pipe
orwikilinks_title_before_pipe
, respectively) if you wish to export files withthis option
exported in projects, and in which order
use the same trigger character as the snippets autocomplete, a colon (
:
);and Emojis will always be sorted below your snippets -- you can turn this off
in the editor settings
more aligned with the system preferences on macOS and Windows, allows
searching and follows a more stringent structure (special thanks to our UX/UI
artist Artem for spending almost an entire year redesigning it from the ground
up!)
snippets directories directly from within the app
columns will be inserted
([Feature request] Formatting Marks #1123)
can select variants of certain languages (English, German, Portuguese, and
Catalan) for cases in which the automatic detection may pick the wrong one
lang
YAML frontmatter property(if present and conforming to simple BCP-47 tags, e.g.,
de
orde-DE
),instead of defaulting to "auto"; this allows you to specify the languages of
your documents instead of relying on LanguageTool to figure it out; may not
work with more exotic tag variants (such as
de-DE-x-simple-language
)fetching its "other files" -- instead it will use the last focused file's
folder
menu as it provided an opaque way of deleting a seemingly random folder; now
deleting a folder requires right-clicking the corresponding directory which
makes the process more transparent
last modification time, since that can also be inferred from whichever time
you choose to display
creation upon following internal links; now this will happen automatically as
long as the "custom folder" option points to an existing folder; to disable
this functionality simply remove the folder path
Cmd/Ctrl+Shift+0
(to align with thefile manager shortcut, which is
Cmd/Ctrl+Shift+1
)aggressive, detecting links even where none were wanted; (2) Pandoc doesn't
support auto-links in such a way as we have implemented it, leading to
inconsistencies in exports
showing a more meaningful preview of its contents (The note title is not displayed in the link preview if the Yaml Frontmatter is greater than 6 lines. #4598)
as text, instead of offering to insert an image of the selection
without too much noise (in the form of comments, styles, and other additions)
mode was active (Collapse arrows showing in non-text space #4918)
last main window on Windows or Linux ([win32] Zettlr not quitting when all windows are closed and the taskbar setting is off #4898)
boot (Folder Expanded as Default #3797)
path name contained a colon on non-Windows systems (Colons are allowed in Workspace-names, but break the split-view behaviour #4822)
that lists start at 1
and Bordeaux themes (Background color lost with version 3.0.3 #4913)
to-HTML converter (Subscript and superscript are rendered as multiple newlines in tables #4943)
could not be rendered out of any reason, the editor will simply remain dormant
and not render the table instead of messing up the entire document
Markdown-to-HTML conversion both within the TableEditor as well as when
copying as HTML
actual mouse position if the window's GUI was scaled absolutely (as per the
preferences); now the context menu should always appear exactly where it
should be
keyboards with
Alt-G
being assigned to some character were unable to typethat (specifically, Swiss-Mac keyboard users could not type an
@
)show the titles, if enabled
mouse cursor is
wrong so that users have visible feedback if their changes are actually
persisted to disk (Provide a more explicit warning to the user when auto-save stops working. #4229)
[Title]([[Link]])
byclicking them with
Cmd/Ctrl
pressedspell check
a text cursor ( Cursor over document scrollbar is a text field cursor (not an arrow). #4441)
the number of matched files
filename" is now set to "never" for new installations; you may consider
changing this as well
updates ("Check for new version" button not clickable in 3.0.5 #4963)
status bar's MagicQuotes handler appear
again (see Dialogs show behind main window #4952)
between light and dark
on Windows
(LF), even if the file originally uses carriage returns (CR) or a mixture
(CRLF or LFCR), leading, among other things, to save issues ([Zettlr 3.0.x] Save Issues: Main Issue #4959)
very hard
openDirectory
configuration value as a metric (due to a limitation in thedialog engine, this is a bit opaque and will be improved; for more info see
issue Current Import Workflow is Intransparent #5084)
parse Markdown tables with empty cells (Table Editor is not supporting blank cells / empty cells #5025)
file importing workflow
more complex layouts
workspaces to the list of standalone files, leading to various minor
annoyances around other parts of the app
Under the Hood
3.1.13
30.0.2
vue-recommended
to thevue3-recommended
ESLint rulesetsortingTime
since that can be inferred from theoption
fileMetaTime
zkn.autoCreateLinkedFiles
, since that can beinferred from the option
zkn.customDir
of an error
for fully sandboxing the window code; instead polyfill the required functions,
testing them against the module's behavior
components with
Teleport
([Develop] Refactor Popover provider #4663)scripts) is written in TypeScript.
descriptors as strings, increasing the complexity of loading the cache values
(see Zettlr v3.0.0-beta.3 has FSAL Cache bug #4269)
whitespace in the Markdown source to construct the HTML
ensure that the representation is (almost) identical to the parse state and
reduce complexity when parsing the table; several edge cases remain
run them, and if they do not succeed, we catch that error instead; removed
commandExists
as it appears to have a few minor issues on Windows installsbe emitted instructing every open MainEditor to reload itself; this can be
used to change options that affect non-reloadable components such as the
parser without having to manually close and re-open affected editors, or
forcing a reload of the entire main window
reload themselves with the broadcast event
reload-editors
shortcut:install
andshortcut:uninstall
to add developshortcuts on Linux systems, allowing the simple launching of a binary compiled
from source (rather than the provided binaries)
platformVersion
in the aboutdebug info tab
preventNavigation
utility function into the lifecycle handlers toreduce boilerplate code and make the app more secure
@codemirror/lang-yaml
)test-gui
command; instead now thestart
command does the same;similarly,
start
won't touch any existing Zettlr configuration anymorethemeManager
and replace it with asimpler, more general
darkTheme
extensionhas led to inaccurate results (see, e.g., Unconfuse Save Unsaved Changes Dialog #5042)
openDirectory
functionality completely from the documents manager;instead it is now again managed entirely by using the config provider,
removing tons of superfluous code
MainEditor
is unmountedthe format
.cm-zkn-tag-<tagName>
(CSS classes for tags are not available #4589)(Uncaught RangeError: Decorations that replace line breaks may not be specified via plugins #5069)
@Author [p. 123]
citations: Now only spaces are allowed between the citation key and the suffix
New Contributors
Full Changelog: v3.0.5...v3.1.0
This discussion was created from the release Release v3.1.0.
Beta Was this translation helpful? Give feedback.
All reactions