Zettlr

Your One-Stop Publication Workbench

GPL-3.0 License

Stars
9.7K
Committers
114

Bot releases are hidden (Show)

Zettlr -

Published by nathanlesage over 5 years ago

This is the 1.2 stable release of Zettlr. Please read our accompanying blogpost to get to know the new features!

Just one thing (especially if you're a macOS user): Zettlr knows how to import and export Textbundle and Textpack-files. So if you're using any Textbundle-enabled app on your Smartphone or Tablet, you'll be able to send files back and forth using either textbundles or textpack!

Changelog

GUI and Functionality

  • New Feature: Zettlr can now import and export both textbundle and textpack files. Refer to textbundle.org for more information.
  • Removed the Speech submenu from Windows and Linux, as it is only used on macOS.
  • Attention: The recent documents submenu is now to be found in the File menu! It resides no longer in the toolbar.
  • Added an "Inspect Element" context menu item if the debug mode is enabled.
  • The context menu doesn't show up on directory items in the file list anymore, which it wasn't supposed to anyway.
  • Fixes in the math rendering. Now the app will correctly render all equations, be they inline or multiline.
  • Added a flag to let the app know if you want to receive beta release notifications. If you tick the checkbox, Zettlr will also present you with beta releases, so that you can stay up to date.
  • When importing files, the "All Files" filter is now at the top and should be selected by default.
  • Fixed a small bug that would render exporting of standalone files impossible.
  • Rendered Markdown links now retain the outer formatting (e.g., if you wrapped the whole link inside bold or emphasis).
  • The Zettlr default tex-template now doesn't break checkbox exports by including the amsmath and amssymb-packages.
  • New shortcuts: Pressing Ctrl+Enter will insert a new line below the one in which you are currently, placing your cursor there. Pressing Ctrl+Shift+Enter will do the same but above the current line.
  • Added context menu entries to copy mail addresses and links to clipboard.
  • For compatibility reasons with some Linux distributions that reserve the Alt-key for dragging windows around it is now also possible to press the control key to follow links and initiate searches.
  • Removed a bug that would allow multiple dialogs to be shown as some kind of "overlays" on top of each other.
  • Updates to the design of the editor. Now the margins of the editor don't resize as soon as you change the font size.
  • Updates to the zooming of the editor's font: Now it'll stop at both 30 percent and 400 percent for lower and upper limits. Exceeding these may yield very weird errors.
  • The cursor over the Quicklook windows' window controls is now the default, not the dragging.
  • Added shell syntax highlighting (using keyword: shell or bash [for compatibility with Highlight.js]).
  • Adapted the styles - now the filenames stay readable even during global searches.
  • If you drag a file out of the app and cross a directory, it won't retain its highlighted state after you finish your drag&drop-operation.
  • Tags, internal links and normal links now only have a pointer cursor when one of the meta keys (currently: Alt or Ctrl) is pressed.
  • Implemented formatting support for HTML paste operations. If there's HTML in the clipboard as you paste, it will be converted to Markdown so that the formatting is retained.
  • Removed the minimum window size constraint so that the application window will be resizable to half a screen even on smaller devices.
  • Restored the window maximise/minimise-functionality by double-clicking on the toolbar.
  • Fixed a small bug that would throw errors on Windows and Linux if you would open a file in Zettlr by double-clicking it in the file browser while Zettlr was already running.
  • Links are now correctly detected by the preview algorithm.
  • Fixed a bug that would make it impossible to export Markdown files with strikethrough text using the Zettlr default template.

Under the Hood

  • Fixed a small logical error in the menu buildup process.
  • The context menu in the ZettlrBody class is now always instantiated anew.
  • Rewrote the logic of detecting and rendering mathematical equations.
  • Updated the KaTeX.css stylesheet to the newest version and removed some errors (thanks to @Wieke for doing this).
  • Rewrote the complete command structure of the app and branched it out into standalone files. Thereby the system becomes extremely modular and new commands can be written with ease. Additionally, it becomes possible to create shortcuts for certain commands.
  • Fixed a small possibility of running into an error while performing a global search.
  • Exchanged the variables for usage in TeX-templates with Pandoc-Style $-variables. Additionally, now all occurrences will be replaced with the correct value.
  • Moved the JavaScript bits out of the Handlebars templates and added them to the Dialog handler classes.
  • Code cleanup.
  • Removed the complete KaTeX dist files from the Zettlr source and switched to using the shipped files provided by the KaTeX module, reducing the binary sizes, maintenance effort and code clutter at once.
  • The Custom CSS is now a service provider.
  • The configuration is now a service provider.
  • The tags handler class is now a service provider.
  • Removed the superfluous getLocale-functions from ZettlrBody and ZettlrRenderer.
  • Pulled in the URL regular expression from the GFM CodeMirror mode so that the pre-rendered links by the command are the same as those detected by the GFM mode.
  • Added the ulem-package to enable export of strikethrough and underline text.
Zettlr -

Published by nathanlesage over 5 years ago

This is the second beta release for Zettlr v1.2. Thank you for helping out! Please read the changelog below to know what features need testing and make sure the existing ones work as they should.

Changelog

GUI and Functionality

  • Removed the Speech submenu from Windows and Linux, as it is only used on macOS.
  • Attention: The recent documents submenu is now to be found in the File menu! It resides no longer in the toolbar.
  • Added an "Inspect Element" context menu item if the debug mode is enabled.
  • The context menu doesn't show up on directory items in the file list anymore, which it wasn't supposed to anyway.
  • Fixes in the math rendering. Now the app will correctly render all equations, be they inline or multiline.
  • Added a flag to let the app know if you want to receive beta release notifications. If you tick the checkbox, Zettlr will also present you with beta releases, so that you can stay up to date.
  • When importing files, the "All Files" filter is now at the top and should be selected by default.
  • Zettlr can now import and export both textbundle and textpack files. Refer to textbundle.org for more information.
  • Fixed a small bug that would render exporting of standalone files impossible.
  • Rendered Markdown links now retain the outer formatting (e.g., if you wrapped the whole link inside bold or emphasis).
  • The Zettlr default tex-template now doesn't break checkbox exports by including the amsmath and amssymb-packages.
  • New shortcuts: Pressing Ctrl+Enter will insert a new line below the one in which you are currently, placing your cursor there. Pressing Ctrl+Shift+Enter will do the same but above the current line.
  • Added context menu entries to copy mail addresses and links to clipboard.
  • For compatibility reasons with some Linux distributions that reserve the Alt-key for dragging windows around it is now also possible to press the control key to follow links and initiate searches.
  • Removed a bug that would allow multiple dialogs to be shown as some kind of "overlays" on top of each other.
  • Updates to the design of the editor. Now the margins of the editor don't resize as soon as you change the font size.
  • Updates to the zooming of the editor's font: Now it'll stop at both 30 percent and 400 percent for lower and upper limits. Exceeding these may yield very weird errors.
  • The cursor over the Quicklook windows' window controls is now the default, not the dragging.
  • Added shell syntax highlighting (using keyword: shell or bash [for compatibility with Highlight.js]).
  • Adapted the styles - now the filenames stay readable even during global searches.
  • If you drag a file out of the app and cross a directory, it won't retain its highlighted state after you finish your drag&drop-operation.
  • Tags, internal links and normal links now only have a pointer cursor when one of the meta keys (currently: Alt or Ctrl) is pressed.

Under the Hood

  • Fixed a small logical error in the menu buildup process.
  • The context menu in the ZettlrBody class is now always instantiated anew.
  • Rewrote the logic of detecting and rendering mathematical equations.
  • Updated the KaTeX.css stylesheet to the newest version and removed some errors (thanks to @Wieke for doing this).
  • Rewrote the complete command structure of the app and branched it out into standalone files. Thereby the system becomes extremely modular and new commands can be written with ease. Additionally, it becomes possible to create shortcuts for certain commands.
  • Fixed a small possibility of running into an error while performing a global search.
  • Exchanged the variables for usage in TeX-templates with Pandoc-Style $-variables. Additionally, now all occurrences will be replaced with the correct value.
  • Moved the JavaScript bits out of the Handlebars templates and added them to the Dialog handler classes.
  • Code cleanup.
  • Removed the complete KaTeX dist files from the Zettlr source and switched to using the shipped files provided by the KaTeX module, reducing the binary sizes, maintenance effort and code clutter at once.
  • The Custom CSS is now a service provider.
  • The configuration is now a service provider.
  • The tags handler class is now a service provider.
  • Removed the superfluous getLocale-functions from ZettlrBody and ZettlrRenderer.
Zettlr -

Published by nathanlesage over 5 years ago

This is the first beta-release for Zettlr v1.2. If you want to test it, please make sure to read the Changelog and test whether or not the new features work as expected!

Changelog

GUI and Functionality

  • Removed the Speech submenu from Windows and Linux, as it is only used on macOS.
  • Attention: The recent documents submenu is now to be found in the File menu! It resides no longer in the toolbar.
  • Added an "Inspect Element" context menu item if the debug mode is enabled.
  • The context menu doesn't show up on directory items in the file list anymore, which it wasn't supposed to anyway.
  • Fixes in the math rendering. Now the app will correctly render all equations, be they inline or multiline.
  • Added a flag to let the app know if you want to receive beta release notifications. If you tick the checkbox, Zettlr will also present you with beta releases, so that you can stay up to date.
  • When importing files, the "All Files" filter is now at the top and should be selected by default.
  • Zettlr can now import and export both textbundle and textpack files. Refer to textbundle.org for more information.
  • Fixed a small bug that would render exporting of standalone files impossible.
  • Rendered Markdown links now retain the outer formatting (e.g., if you wrapped the whole link inside bold or emphasis).
  • The Zettlr default tex-template now doesn't break checkbox exports by including the amsmath and amssymb-packages.
  • New shortcuts: Pressing Ctrl+Enter will insert a new line below the one in which you are currently, placing your cursor there. Pressing Ctrl+Shift+Enter will do the same but above the current line.

Under the Hood

  • Fixed a small logical error in the menu buildup process.
  • The context menu in the ZettlrBody class is now always instantiated anew.
  • Rewrote the logic of detecting and rendering mathematical equations.
  • Updated the KaTeX.css stylesheet to the newest version and removed some errors (thanks to @Wieke for doing this).
  • Rewrote the complete command structure of the app and branched it out into standalone files. Thereby the system becomes extremely modular and new commands can be written with ease. Additionally, it becomes possible to create shortcuts for certain commands.
  • Fixed a small possibility of running into an error while performing a global search.
  • Exchanged the variables for usage in TeX-templates with Pandoc-Style $-variables. Additionally, now all occurrences will be replaced with the correct value.
  • Moved the JavaScript bits out of the Handlebars templates and added them to the Dialog handler classes.
Zettlr -

Published by nathanlesage over 5 years ago

Please read the accompanying release announcement here.

Attention: This release will reset your language settings! This means that you have to change the application language again, if you diverted from the default language. Also you have to re-select the dictionaries you are using.

Changelog

GUI and Functionality

  • Attention! Installing this update will reset the application language to the detected system locale and reset all spellcheck choices (i.e. you will have to re-select the dictionaries using the preferences window). The reason for this is that Zettlr is now compliant with the regulations for language codes as laid out in the Best Current Practices No. 47 (BCP 47). To achieve this, all mechanisms of finding and loading translation files and dictionary files had to be modified.
  • New Feature: Paste Images. From now on it is possible to copy images directly to the clipboard, then press Cmd/Ctrl+V in the editor and Zettlr will ask how to proceed. By pressing Return the default action will be taken: The image will be saved into the currently selected directory using either the original filename or a simple hash (for instance if you took a screenshot and there's no associated URL available), and it will be inserted at the current cursor position as a standard Markdown image tag, using the filename as title. If you don't press Return directly, you can adapt some options, such as the file size and the filename, and also choose a custom directory alternatively.
  • New Feature: Set writing targets. You can set writing targets for files by right-clicking them in the preview list. Each file that has a writing target will display its progress in the snippets section. Set an existing target to 0 to remove it.
  • New Feature: Print support. Just press Cmd/Ctrl+P to open the print preview, which is essentially an exported HTML file. Click the printer icon in the titlebar to print it!
  • New Feature: Custom CSS. Beneath your tag preferences, you now have a new menu option that lets you override certain styles of the app to customise it even further! From now on, the sky really is the only limit for customising the app.
  • Huge updates to the statistics dialog. We've added a lot of functionality to the statistics dialog. If you click the More … button in the statistics popup, the resulting dialog now presents you with a overhauled interface. Now you'll be able to filter your data by week, month, and year. Additionally, you can choose to compare the timeframe with the previous one (either week, month, or year). This way you'll be able to track your writing habits much more differentiated.
  • Tags are now only rendered as such and detected by the internal engine, if they are preceeded by a newline or a space. This will prevent page anchors inside links (e.g. example.com/page#anchor-name) or words with hashes in them from being detected as tags.
  • Switched from Droid Mono to Liberation Mono for displaying monospaced code and comment blocks because of better support for glyphs in the latter font.
  • Fixed an issue with the titles of the exporting buttons for HTML, docx, odt and PDF.
  • Fixed a small bug that made it unable to open standalone files from the directory list.
  • Small fix to the margins of switches. General fixes to the colours of the input controls in dark mode.
  • Fixed a bug that led to files reporting the same tags more than once.
  • Search results are now readable even in dark mode.
  • Fixed a bug that would not correctly transform the links of images dragged from the attachment sidebar onto the editor, causing errors by pandoc when trying to export the file.
  • Task list items are now rendered directly after you leave the formatting. You don't have to leave the line anymore.
  • Special tags that you've assigned a colour to are now displayed distinct from other tags in the tag dropdown list.
  • Now changing dictionaries during runtime yields the expected effects: The full word buffer will be invalidated so that formerly-wrong and formerly-correct words are checked against the new dictionaries.
  • Fixed a small bug that would cause users with French localisation to not be able to use the preferences dialog as it was intended.
  • Fixed a bug that made it impossible to load new dictionaries from the user directory.
  • Fixed a small issue that would display the full translation strings for dictionaries and languages that were not translated in the currently loaded translation, instead of just the language codes.
  • Fixed a small bug that would, on some Linux distributions, lead to the operating system opening up loads of file explorer windows when the "Open Directory"-button in the attachments sidebar was clicked.
  • Now it's not possible anymore to try to create files and directories within virtual directories.
  • The cursor blinks now smoothly.
  • Changes to the word-count chart: Now numbers are localised and the date is not in the ugly ISO format anymore.
  • You can now easily search for a file to link with the newly implemented autocompletion list that will pop up if you begin writing an internal link (i.e. type [[). After accepting an autocomplete suggestion, Zettlr will either put the ID between the brackets, or the filename, if there is no ID.
  • Fixed a bug that would throw an error if updating the config with no dictionary loaded on app boot.
  • Fixed a bug that would move a file to a random directory instead of enabling you to actually copy said file outside the app, if you dragged the file out of the app and passed the directory list.
  • Fixed the highlighting effect on drag operations. Now even if you use the thin sidebar mode, the directories where you can drop files will receive the highlighting shimmer.
  • Added an option to hide the heading characters and replace them with a small tag indicating the heading level (h1, h2, etc). Off by default.
  • Refined the rendering of links. Now, inline elements will be also rendered correctly inside rendered links.
  • The app will now correctly scroll to the selected file again (if any).
  • Added an option to hide directories from the preview list while performing a global search.
  • Fixed a small error that would strip false positive tags on export (i.e. that would also strip escaped tags).
  • Massive updates to the notification service provider. If a message is too long, it will be truncated when it is first shown to you. If you then click on the notification, it will expand itself so that you can read the full message. Click on it again to hide it. Additionally, the notifications are now the same height and move smoothly as soon as new notifications arrive or old ones get removed.
  • Gave the exporter an update: Now, if Pandoc experiences an error during export, you will be presented with a better error dialog which even lets you select portions of the error message for you to google them.

Under the Hood

  • Moved the input styling to the geometry section and only left the colouring in place.
  • Added a data-default-action support for Dialogs. Now there can be a button with the attribute data-default-action="data-default-action" (repetition necessary for ensuring a correct DOM structure) in each dialog that will be focused on instantiation of the dialog, thereby enabling a simple "default action".
  • Small changes to the translation files to remove some duplicates.
  • Added md5 for generating simple hashes.
  • The ZettlrDictionary-class is now an EventEmitter and emits update-events whenever the composition of the loaded dictionaries changes.
  • Renamed the default theme to its correct name: Berlin.
  • Small changes to enable on-the-fly theme CSS replacement.
  • Better escaping of some feedback strings in the preferences template.
  • The app is now BCP 47 compatible. This means that it should be possible to load every translation file and every dictionary folder using the correct language tag, instead of having to fall back to the crude xx_XX-type Zettlr used until now.
  • Moved the editor-specific getWordCount function out as a helper function.
  • Added an updateFile method to the global.ipc to enable files to update themselves silently if something changed.
  • Moved the calculating functionality of the ZettlrStatsView class to the main process's ZettlrStats class.
  • Removed the ZettlrStatsView class and moved the triggering functionality to the ZettlrBody class accordingly with the other popups/dialogs.
  • Branched out the ZettlrDialog class so that all functionality is now provided by specialised dialog classes that inherit from the base class.
  • Rearranged the options within the "Advanced" tab in the preferences dialog.
  • Moved out all CodeMirror require() to a new file called autoload.js in the assets directory to save space in the main ZettlrEditor class.
  • Added a security pass to the droppable directories to make sure they don't accidentally accept the file and direct the main process to move it out of the app instead of moving it to themselves.
  • Switched back to electron 3 for the time being, as electron 4 still has a nasty bug that renders the toolbar unusable when exiting fullscreen on macOS (see https://github.com/electron/electron/issues/16418 ).
  • Switched to nspell for spellchecking, as the correction-finding algorithm works smoother and the repository is not as old as Typo.js.
  • makeExport now returns a Promise instead of the Exporter object. The exporter is now only returned if it's call succeeded (by passing it to resolve).
  • There is now the yarn command yarn less:extract available which extracts the CSS class names and IDs from the prebuilt styles. Please note that you must run the yarn less command beforehand.
Zettlr -

Published by nathanlesage almost 6 years ago

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

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

Changelog

1.0.0

GUI and functionality

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

Under the hood

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

Published by nathanlesage almost 6 years ago

This is the third beta release of version 1.0.0 of Zettlr. It is meant for thorough beta testing.

Please report any bugs, incorrect behaviour and other improvements directly as a GitHub issue! Only this way will version 1.0.0 be stable enough for production uses.

Zettlr -

Published by nathanlesage almost 6 years ago

This is the first beta release of version 1.0.0 of Zettlr. It is meant for thorough beta testing.

Please report any bugs, incorrect behaviour and other improvements directly as a GitHub issue! Only this way will version 1.0.0 be stable enough for production uses.

Zettlr -

Published by nathanlesage almost 6 years ago

This is the first beta release of version 1.0.0 of Zettlr. It is meant for thorough beta testing.

Please report any bugs, incorrect behaviour and other improvements directly as a GitHub issue! Only this way will version 1.0.0 be stable enough for production uses.

Zettlr -

Published by nathanlesage about 6 years ago

This release addresses many issues opened on the GitHub repository in the past months. It includes <iframe> and LaTeX-formula previews, a completely overhauled design, and better Zettelkasten functionality. As always, the spotlight features are described in the accompanying blogpost.

Changelog

GUI and functionality

  • Fixed a bug during import that resulted in crashing the app if no Pandoc was found.
  • Updated the styling of the app to make it feel more modern.
  • To open a file directly by typing its name into the search bar you don't have to get the capitalisation correct anymore.
  • It is now possible to traverse the file tree directly by clicking on the directories inside the preview pane. Use a single click to make that directory your current one, or use an Alt-click to traverse back up to its parent directory.
  • Now the "Save changes before quitting?"-Dialog won't appear — all your files will be saved immediately before quitting.
  • Zettlr now remembers your last opened file and the last selected directory and restores them on each restart (if they still exist).
  • Images can now also have pandoc attributes assigned (in curly brackets after the image tag) and will both render correctly inside Zettlr and work as intended on export.
  • The app will now remember its size and position on screen and restore it after a restart.
  • Changes to the design of the dark mode. It's now a little bit blue-ish and the colours are finally adapted to the brand.
  • The directory list is now way less cluttered and looks way better than before.
  • Dropping images onto the app is now possible!
  • Added the long-commented-out blockquote command to the context menu.
  • iframes will now be rendered as well (such as the embed codes by YouTube or Vimeo). Note that only <iframe>-tags will be rendered, so Twitter embed won't work, for example.
  • Removed a small bug that would use the text selection cursor over directories after you've dragged a file.
  • Zettlr now remembers the last directories you were in when you successfully imported a file or opened a directory.
  • Added Droid Sans Mono as monospaced font family and updated the fonts around the app.
  • The Zettelkasten ID doesn't need to be in the format @ID:<your-id> anymore. Also the zkn-links can be customised.
  • The generation of IDs is now up to your creativity.
  • Made the search progress indication better. Now, instead of the background filling up with sometimes ugly colours, a circle just as for the Pomodoro timer is used.
  • The file snippets now hold additional information, such as the ID of the given file or the amount of tags. Additionally, if you hover over the number of tags, a popup will tell you which tags the file holds. Directories also now show their number of children elements (both directories and files).
  • The text snippets have been removed from the app.
  • The Quicklook windows now follow the application's theme.
  • Fixed a bug that generated a falsy first search cursor and prevented case insensitive searching.
  • Added extended statistics. Now you can exactly see when you've written how many words by clicking the new button in the small statistics popup.
  • You may now use #-characters inside tags.
  • macOS users now have an inset titlebar to make the app feel more immersive while not in fullscreen as well.
  • QuickLook windows now display the headings in the correct size again.
  • On smaller displays, Zettlr now has smaller margins and paddings so that each display size's space is used best.
  • Removed the ID-button from the toolbar. The command is still present in the menu and still works using the shortcut Cmd/Ctrl+L.
  • Fixed the bug that the attachment pane tooltip was partially hidden.
  • Quicklook windows are now constrained to the body area, and cannot be dragged over the toolbar.
  • Added validation to the settings so that you can't accidentally set wrong values.
  • The default buttons for dialogs are now reactivated, so you can remove files and folders by simply hitting Return to confirm the removal.
  • Anything markdown-specific (links, tasks, images) won't be rendered in any mode other than markdown anymore. So you can now rest assured that your links won't be converted and comments won't be displayed the size of headings in comment blocks or something.
  • Indented tasks are now rendered.
  • The table of contents now ignores comments in comment-blocks (no matter which language) and also has a better detection for the level of these.
  • Fixed a bug that threw errors on moving directories around.
  • Added Math inline-rendering.

Under the hood

  • Implemented the try/catch construct around ZettlrImport to actually catch the errors that were thrown by this function.
  • Added globally accessible config getters and setters so that the ZettlrConfig-object is now reachable from within all classes in the app.
  • Changes to ZettlrWindow to create windows using programmatical boundaries.
  • Updated the image finding regex again.
  • Reorganised the font families in the less resources.
  • The popup is now much simpler to call.
  • Removed instantiation from both ZettlrImport and ZettlrExport.
  • All Zettlr installations now receive a unique UUID.
  • Using global.config.get it is now possible in the renderer to access the configuration programmatically without the need to send events.
  • Replaced all renderer configuration requests with the new, faster and synchronous method.
  • Fixed a missing dependency in ZettlrAttachment.
  • Updated to electron 3.
  • Changed app.makeSingleInstance to app.requestSingleInstanceLock as recommended by the docs.
  • Updated dependencies to the newest versions.
  • Image preview rendering is now independent of path.
  • Refactored the complete configuration setting process.
  • Explicitly set defaultId on confirmation dialogs.
  • detach() is now called only after the move operation of a ZettlrDir has been completed to remove the parent-pointer.
Zettlr -

Published by nathanlesage about 6 years ago

It's release day again. We've moved the long descriptions to the release notes section of the website, so head over to our blog post for this release to read the written introduction to Zettlr's new features!

Changelog

GUI and functionality

  • Import functionality: Now you can import from nearly all file types pandoc supports into Zettlr. Simply select the desired target directory and select File -> Import files!
  • Added a lot of exporting options. More are still to come!
  • Export Markdown files as reveal.js presentations: From 0.19.0 on, Zettlr will support the export of reveal.js-presentations. Also, there's theme support built in!
  • If you insert a footnote, the cursor is not moved throughout the document so that the writing flow is more immersive.
  • The text field used to edit a footnote reference text is now automatically focused.
  • The editor will now directly mute lines when in full screen as soon as you change the preference setting for this. You don't have to move the cursor anymore for this.
  • Fixed a bug that showed a dedicated file menu when right-clicking directory ribbons and then threw errors if you clicked on anything in the menu.
  • Fixed the strange behaviour of Zettlr telling you there are no suggestions for a word, although you did not right-click a wrongly spelled word.
  • Inline links rendered inside headers are now always the correct size.
  • Email-addresses are now correctly identified and will be rendered as clickable links as well. If you Alt-click on them, they will open the default email option (i.e. they are the same as clicking on any website's email addresses).
  • Fixes to the project feature.
  • Made the dictionaries finally independent from the four default translations.
  • Added about 70 languages to the four default translations. This means: If you now include a custom dictionary or a custom translation, chances are high that it will be detected and translated automatically!
  • Added a bunch of dictionaries that now come shipped with the app.
  • Finally found & fixed the bug that kept detecting whole swathes of text as links and inserted them on link insert or didn't detect any link at all.
  • Transferred the download page in the updater to the new download landing page at zettlr.com/download.
  • Clicking on marked tags in the preview list will now trigger a search for these tags.
  • Added support for TeX-files. So in case you want to export something to PDF, you can add custom LaTeX statements in their respective file to amend the styling Zettlr applies.
  • You can now rest assured that on export of projects with nested files all images, even relative ones, will successfully be rendered in your PDF output.
  • Changes to the HTML exporting template. Now, images should always fit on screen.
  • You can now create LaTeX files by using the extension .tex when creating new files.
  • Better Pomodoro counter.

Under the hood

  • Changes to the runCommand method in ZettlrEditor.
  • Changes to the insertFootnote command.
  • Changes to the _editFootnote() method in ZettlrEditor.
  • Changed the event type the editor is listening to when you finished editing a footnote from keyup to keydown.
  • Moved the inline and block element rendering functions to their own commands to reduce the file size of ZettlrEditor.
  • Fixed the task recognition regex to prevent ugly errors logged to the console if you entered on an empty line a task list item directly followed by braces (such as - [ ](some text)).
  • Additional security checks while building the context menu.
  • Amended the regex for rendering links. Also provided a callback option for CodeMirror to be able to port the plugin fully externally and integrate it into other instances.
  • Added ZettlrImport class for handling file imports.
  • Removed the unnecessary PDF exporting LaTeX template from the pandoc directory.
  • Added another newline character when gluing Markdown files together on project exports.
  • Fixed a bug that would not read in a saved project config on restart.
  • Huge changes to the selection and retrieval of dictionaries for the spellchecking algorithm.
  • Made the regular expression detecting links in the clipboard non-global and limited it to only detecting single links in the clipboard.
  • The download page will now count all updates by users to keep track of how many users are using the app (only the click is counted, no personal information is collected). To avoid detection of you updating, simply visit zettlr.com/download manually.
  • Amended ZettlrRenderer by a function to programmatically trigger global searches.
  • Added .tex to the list of supported file types. Added a mode switch to ZettlrEditors open() method.
  • Small fix to the toolbar CSS for not having a hover effect on the Pomodoro button in dark mode.
  • Change to the less.js script. It now minimises the CSS output to further optimise the styling.
  • Spell checking is now off by default in fresh installations to speed up the first start.
  • Amendments to ZettlrProject, ZettlrFile and ZettlrExport to ensure relative image paths are accurately converted into absolute ones on exporting them.
  • Streamlined setting the ZettlrWindow title. Zettlrwindow::setTitle() is now deprecated.
Zettlr - v0.18.3 — Hotfix

Published by nathanlesage about 6 years ago

Please excuse the inconvenience of yet another release one day after the last, but as some of you might have noticed, I completely messed up with the syntax highlighting. This hotfix fixes this issue among with some smaller bugs.

Also, this hotfix increases your privacy, because the update check now only makes one single request to GitHub, and not four, as until recently.

Changelog

GUI and functionality

  • Now the list design and all other colours and syntax highlighting should be fixed again.
  • ALT-clicking files now opens them as QuickLook windows.
  • Now Quicklook windows render the content automatically as the main editor does. Only the previewable elements will not be rendered.
  • Fixed a bug that allowed you to try to create files, folders and virtual directories although no directory is selected.

Under the hood

  • Cleaned up the mess inside the LESS resource files and removed the global pollution with CSS styles that led to strange rendering behaviour.
  • Replaced the net command to check for updates with the better package got, thereby reducing the amount of requests to one only. Therefore, is-online also has been removed.
  • Updated dependencies. Switched to electron 2.0.8.
  • Changes to the _gen() and select() methods in ZettlrPreview.
Zettlr -

Published by nathanlesage about 6 years ago

Today's release again contains a lot of bug fixes and smaller improvements. There are, as always, some that deserve a little bit of spotlight:

Removed the annoying "Replace file in editor?" message

As many of you have already noticed (and as an issue actually reported a few days ago), Zettlr always had an annoying problem. Every time when you were editing a file that was stored via a cloud service, such as Dropbox, Nextcloud, or GoogleDrive, it could occasionally happen that Zettlr permanently asked you whether or not you want to replace the remotely-modified file. This message was irrational as you were the only one editing the file, and it broke your workflow every time. The reason for this message is that somehow the detection mechanism of cloud services seem to trigger another "change"-event inside Zettlr, which is then not ignored but passed on to the mechanism that prompted you to replace the file. Now, Zettlr will first determine whether or not the file has really changed since it last checked, and only if that is true, Zettlr will bother you with the prompt.

Syntax highlighting in fenced code blocks

Somehow, Zettlr is becoming more and more popular among coders, which is really nice! As my primary goal is to create a Markdown editor for researchers in the arts and humanities, I didn't initially implement code highlighting, because most of us never really need fenced code blocks to explain some code. But now after the issue has been raised, I decided to activate this functionality of Zettlr. Currently, a variety of popular languages is highlighted, but more can be implemented as well.

Currently implemented are: C, C++, Objective C, C#, Java, Javascript, PHP, Ruby, Python, R, SQL, Swift, YAML, CSS and LESS.

You can activate code highlighting for these languages by using the Commonmark specification for info text (i.e. write the language after your beginning fence, like this: ```javascript`)

The strings that trigger code highlighint are as follows: c, cpp, objectivec, csharp, java, javascript, php, ruby, python, r, sql, swift, yaml, css and less.

Do you want code highlighting enabled for additional languages? No problem, simply head over to the list of modes that CodeMirror supports and tell me. Enabling them is a matter of seconds.


As always, there are a lot of additional fixes and improvements, see the changelog for all of them:

Changelog

GUI and functionality

  • Minor fix to the style of code-blocks in modals.
  • Fixed a bug that prevented you from immediately re-selecting the previous file by simply clicking it again, after you opened an external markdown file in Zettlr, which then was selected automatically.
  • Fixed an error thrown if a root file was removed remotely.
  • Fixed Zettlr always asking to replace a file although it hasn't been modified remotely.
  • Fixed a missing translation for changed files.
  • Fixed the threshold for being close to surpassing average from 50 words below average to the half of average. 50 words were definitely too narrow for anyone to really see the intermediary message.
  • Fixed some design rules.
  • Reallowed arbitrary text selection inside the editor (mainly necessary for macOS's quick lookup functionality).
  • Added styling for horizontal rulers (* * *) and escaped characters (e.g. \*).
  • Fixes to the new tooltips. Now all tags receive the nicer tooltips on mouse over.
  • Replaced the old footnote tooltip bubble, which did not look nice, with the much better tippy.js-bubbles.
  • Added HTML syntax highlighting.
  • Fixed an error on the export of Markdown files with code blocks.
  • Added syntax highlighting capabilities in fenced code blocks for the following languages (use the words in brackets after the beginning of a code block, i.e. ```javascript`):
    • C (c)
    • C# (csharp)
    • C++ (cpp)
    • CSS (css)
    • Java (java)
    • JavaScript (javascript)
    • LESS (less)
    • Objective C (objectivec)
    • PHP (php)
    • Python (python)
    • R (r)
    • Ruby (ruby)
    • SQL (sql)
    • Swift (swift)
    • YAML (yaml)

Under the hood

  • Added an additional check to definitely determine if chokidar has choked or the file has indeed been modified remotely.
  • Lots of documentation has been added to the source code.
  • Moved the tippy() function from the ZettlrRenderer to the correct classes (ZettlrToolbar and ZettlrPreview).
  • Changes to the link detection regex in ZettlrEditor.
  • Changes to the export.tex LaTeX export template. It now provides the Shaded-environment Pandoc requires on exporting files containing fenced code blocks.
  • Added some amount of HTML syntax highlighting.
  • Added a multiplex mode that can highlight fenced code blocks.
  • Changed signature documentation of ZettlrRenderer's setCurrentFile method to reflect the actual process (it is being passed a hash, not a file object).
  • Changes to the _tags-array in ZettlrPreview. Now, the array is never completely regenerated, but resized according to the actual _data-array. The changes have affected the functionality of the functions _gen() and refresh() in this class.
  • Added a remove() method to Zettlr for root files wanting to delete themselves.
Zettlr -

Published by nathanlesage about 6 years ago

Thank God it's Friday! And with Friday there is, somewhat out of a tradition, a new release. This release fixes many small bugs and improves many features. Most of what has been changed is under the hood and therefore not visible to everyday users. But it has quite bettered the performance of Zettlr. Among the most notable features are:

  • You can now import any translation file to translate Zettlr into whatever language you like. Please also feel free to notify me, if you have translated the app, so that I may include your language files into the source and ship them by default!
  • You can now copy text as HTML, which enables you to paste Markdown into word processors such as Word, Writer or Pages, or into e-mail clients, which will thereby retain the formatting.
  • Also, Zettlr now performs a check to determine whether or not you are online. This means that you won't get these ugly internal errors ever again if you open Zettlr while on the train or somewhere with bad connectivity.

For all changes and improvements, see the changelog:

Changelog

GUI and functionality

  • Now it's possible to download and install custom translations for Zettlr! If you want to use a translation that is not (yet) officially bundled with the app, simply import the translation JSON-file into Zettlr using the respective option. It will immediately be available for selection within your preferences (but a restart to apply the change is still necessary). The language file must be in the format aaa_AAA.json so that the app can detect the language by looking at the file name.
  • Numbers are now localised with the correct delimiters.
  • Zettlr now automatically indents text using four spaces to better work with other Markdown parsers.
  • Changed resizing constraints: Editor can now have 90 percent width at maximum.
  • Fixed a small bug that lets you open non-markdown files as roots.
  • You can now copy selected Markdown text as HTML! Just press Cmd/Ctrl+Alt+C instead of Cmd/Ctrl+C.
  • Added an online-check. From now on, if you are offline, Zettlr won't show you ugly error messages, but a simple notification that you are, in fact, offline and Zettlr can't check for updates.
  • Improved footnote placement.
  • Improved the placement of images in exported PDF files.
  • Increased search speed and fixed internal errors in displaying search results.

Under the hood

  • Changes to getSupportedLangs(): The function now returns a dynamically generated array of all available translations. This also includes language files that are placed inside the app's data directory (in the subdirectory lang).
  • Changes to i18n.js to reflect the fact that a language could also be located inside the application data directory (it now first tries to load the file from within the app, and if this fails searches for the file in the app data directory).
  • Zettlr now preserves the linefeeds of a file on saving.
  • Refactored the app's LESS and style handling.
  • Simplified the theme toggling.
  • Consolidated CSS styles.
  • Updated dependencies. Switched to Electron 2.0.6.
  • Removed package-lock.json, because nobody uses them anyway and yarn 1.9.2 just complained about them.
  • Changed resizing constraints: Editor can now have 90 percent width at maximum.
  • Fixed a logical error in ZettlrConfig that allowed non-markdown-files to be opened as root files.
  • Buffered the update check with an online-check. Renamed the original check() to _fetchReleases().
  • Fixes to the footnote placement.
  • Removed an unused function from ZettlrEditor.
  • Removed excess console.log from ZettlrBody.
  • Added an additional security check before marking results in the editor instance.
Zettlr -

Published by nathanlesage over 6 years ago

After a month with few updates, I finally found time to implement a new batch of features. The release v0.18.0 is special because now all features are present in Zettlr that I've planned from the beginning. This means that one of the next versions will be 1.0!

But now let's summarise the huge amount of features. First of all, there are a lot of bugfixes and small changes that you may find below. The three major addendums to the app are the following

Tag colour assignments

Now you can assign colours and a short description to tags. This means that you can, e.g., tell Zettlr to assign a red colour to the tag #todo. This will then prompt Zettlr to show a red indicator on the file to indicate that this file has been tagged with the respective tag. Of course, multiple tags in one file also work. You can always change and adapt the colours and tags as you need; no limit imposed.

Projects

The last feature that was still missing from Zettlr was a possibility to export multiple markdown files as one single PDF file. Therefore, I can now present to you: Projects! Simply right-click any directory to "create" a project. This will add a small hidden file in the directory, indicating that Zettlr should treat the directory as a project. The directory will behave exactly as any other directory, but have two new context menu options. The first gives you the possibility to fine-tune the layouting of the resulting PDF. You can, for instance, add a table of contents, or a title page. To export the project, simply right-click the directory and select the appropriate option. Zettlr will concatenate all markdown files in the directory (in exactly the same way as the preview pane does — so use the file list as an indicator how the files will be ordered!) and then export them into one single PDF file.

There is still some work to be done there, but the foundation is done!

Drag files out of Zettlr

Some of you may or may not have wondered why it isn't possible to simply take a file, drag it out of the app and drop it onto another app to share it. This was simply because I haven't had the time to implement it — until now. So if you now drag a file out of Zettlr, you can simply drop it somewhere else. Note that dragging files into different folders on your operating system will copy them, not move. No files are moved from their place except you do it solely from within Zettlr or your file browser.

As always, find below the full changelog:

Changelog

GUI and functionality

  • Added the project feature: Now you can convert directories into "projects" (via context menu). A project is simply the possibility for you to adjust PDF options for a set of files differently than in your general PDF settings and tweak the generation a little bit more. It is thought especially for exporting many files into a single PDF file, and has options to generate a table of contents or a title page. All files in the project directory and all of its sub-directories are concatenated in the same way as the preview list does it. Directories themselves are ignored. Then all these files are simply glued together and exported using the special settings you've given the project.
  • Included tag preferences. These allow you to assign colours to specific tags, so that you can see in the preview list directly which files contain specific tags (such as, e.g., #todo or #in-progress) to have an overview over the work you need to do or categorise your files.
  • Now the editor should correctly resize itself if the window itself changes its size.
  • Now, if you use the combined view, Zettlr recognises a second click on an already selected directory and switches to the preview list instead. If you do so while the expanded mode is active, nothing will happen.
  • I finally found the bug that was showing NaN instead of real numbers in the stats view. Now it should work on all systems just fine. (It only happened when there were less than thirty days of recorded statistical history available.)
  • Adjusted the placement of the dialogs. Now they should definitely be placed in the center, if they are smaller than the window and should never result in a scrollable window.
  • The dialog windows should pop up much faster now.
  • Changed the styles of all dialog windows, and made pretty especially the PDF preferences windows.
  • Replaced the system default's title popups with nicer looking popups.
  • Changed image preview rendering. Now, images smaller than the viewport will not scale up to fill the full width, but remain smaller than the viewport width.
  • Added a preview rendering of task items with checkboxes.
  • Now Zettlr will directly react to you clicking with your mouse into the window and doesn't require you to click a second time after the app has been focused again.
  • Snippets are now off by default.
  • Fixed a small error that led to the editor behaving strange after resizing the sidebar.
  • There is now no lag anymore on saving files. As a side effect, the global search is not exited when you change a little bit and then save the file.
  • Changed PDF export.
  • Small fix to the ZKN tag detection.
  • Added additional error handling in the updater (so you know why Zettlr couldn't tell you why no update check is possible).
  • Renaming files is now faster.
  • If you now begin to drag a file, after you have stopped dragging the file (i.e. either you dropped it onto a directory or you dropped it somewhere else to cancel the move), the preview pane will be shown again.
  • Now it is possible to drag out Markdown files from Zettlr into other apps.
  • Clicking on the "No open files or folders"-notification when there are no open folders or files in the directory tree will automatically show the open-dialog.
  • Fixed the theming in the QuickLook windows. Now they will be the same theme as the app itself.

Under the hood

  • Finally renamed the strong element in the file tiles in the preview list to a simple p to re-gain semantic correctness there.
  • Lots of LESS-code added, several other files have been changed.
  • Added an event listener to Window resizes to change the editor's width accordingly with the resizable activated.
  • Changes to requestDir() function in ZettlrRenderer.
  • Changes to the Statistics viewer.
  • Changes to ZettlrDialog.
  • Changes to ZettlrRenderer. Now the translation strings will be copied into the memory of the renderer process directly. This results in better overall performance, especially in dialogs, for which a lot of such strings are needed.
  • Updated development dependencies: electron is now 2.0.4, electron-builder is now 20.19.2 and less.js is now 3.5.3.
  • Changes to ZettlrBody-proceed function.
  • Added tippy.js to the list of dependencies; replaced standard system titles with Tippy titles.
  • Added the acceptFirstMouse option to the creation of new BrowserWindows.
  • Now refreshing the editor instance after dragstop of the divider between combiner and the editor.
  • Removed an unnecessary if-statement in ZettlrToolbar.
  • Added a method to only update the current file in the renderer process, which speeds up saving a lot.
  • Additional check in ZettlrVirtualDirectory.
  • Changes to the LaTeX export template.
  • Replaced the complicated and unreliable tag recognition to a much simpler regular expression.
  • Error handling in ZettlrUpdater.
  • Changes to the process of renaming files. Now the renaming process should be reflected quicker in the renderer, because we don't send a complete new path object, but only the specific, renamed file.
  • Fixes and changes to the dragging behaviour in the renderer.
  • Added a dragging event, so that the main process automatically enables dragging out of the app.
  • Added the getRenderer()-function to ZettlrDirectories, so that the EmptyPaths-object can send the respective event to the main process.
  • Combined the setContent() and save()-functions in ZettlrFile, because there was simply no need to have them separated. Also, removed the modified-flag from the file.
Zettlr -

Published by nathanlesage over 6 years ago

In this release, not so much has changed. Yet you will notice that I've combined the preview pane and the tree view, because (at least for my own workflow) this works better than having them separated (which is basically using up a lot of space). Of course, for all of you who don't want this and still need the two panes displayed separated, you can change this setting in the first (general) tab of the preferences. The "Thin" mode uses the combination, while the "Expanded" mode displays both separately.

Additionally, I've finally managed to make the editor/sidebar-separation resizable! Yay!

I have now switched to alien for converting the .deb-package into .rpm. Please let me know if I'm still missing something!

Changelog

GUI and functionality

  • Combined preview and directory pane. Now only one of both is visible, never both, but also never none. Pressing Cmd/Ctrl+1 and Cmd/Ctrl+2 will still toggle visibility of both preview and directory pane, but not in parallel anymore. So hiding the preview pane will automatically show the directory pane and vice versa. Also, if you are on the preview pane, moving with your mouse to the top of the pane will show an arrow that lets you enter the directory pane again. Zettlr will automatically switch to the preview pane in a number of cases: Selection of a directory, searches, and renaming of files.
  • Added syntax highlightning for Markdown tables.
  • Resizing of combined tree view and preview pane as well es the editor is now possible.
  • Changes to the HTML export template. Now tables are better integrated, as well as blockquotes.
  • Added an option to choose whether or not the combined view or the regular, old view should be used for preview and tree view.

Under the hood

  • Removed some unnecessary toggle-functions.
  • Changes to the styles of preview and directory panes.
  • Changes to the main template.
  • Markdown table detection is now handled by the ZKN-mode.
  • Changes to the styles for enabling both extended and narrow sidebar mode.
  • Added another check for popup height in ZettlrPopup to ensure popups can be displayed on screen and don't end up being cut off by the window.
Zettlr -

Published by nathanlesage over 6 years ago

I've had quite a run the last week and integrated a lot of issues into the app. Therefore, here's version 0.17.0!

Huge changes to the export engine

This version features first and foremost enormous changes to the exporting engine Zettlr uses to create exports to your likings. There have been three changes worth introducing.

HTML export no longer requires Pandoc

First, we've integrated the HTML export into the App itself. Zettlr does not rely on Pandoc for simple HTML exports anymore. For simple previewing and printing of documents, you don't need to install additional software.

But as we don't rely on the comprehensive engine of Pandoc for exporting to HTML, you will notice some inconsistencies. Showdown.js, which we now use for converting the Markdown into HTML, does not support footnotes, and our (not final) workaround does not re-count the footnotes, meaning that they may be messed up (the numbers of your footnotes show in your HTML document the same way they show up in your Markdown file).

Introducing PDF exporting options

Now you have a lot of export options for your PDF files. As we have relied upon a LaTeX-template for exporting to PDF all along, it was only natural to now integrate more flexibility in the building of the template. Therefore, you now have first options to customise your template. Simply press Cmd/Ctrl+Alt+, to open up the PDF exporting preferences. There you can set the most basic options such as pagemargins, papertype, the main font to be used, the font size and the line spacing. Many more options will be added over time, so that in a later version you'll be able to control your PDF export to a degree that you already know from Microsoft Word or LibreOffice Writer.

General export options

Also, we've implemented some more general exporting options. In your preferences dialog, you can now choose whether Zettlr saves your exported files to the temporary directory (as it has been for all the last versions) or directly into your current working directory (i.e. the directory that is currently selected). This makes it easier to directly export your files to a directory of your liking — simply select it prior to exporting. But be aware: There won't be any warning if Zettlr is about to overwrite any old file, because the general workflow doesn't include working with files once they are exported. If you think there should be a warning, and enough other people join in, we'll integrate one, but for now it's less stressful without such a warning. Other options available to you now concern the ZKN-functionality that you can put into your files. You can choose to strip Hashtags, IDs and internal links prior to exporting your files.

Distraction Free Mode

For several months there has been an issue on GitHub asking for a distraction free mode. This has now been integrated into Zettlr! Simply press Cmd/Ctrl+J to enter the distraction free mode, in which you'll only have a slightly dimmed toolbar and the editor visible. Also, you can (in your preferences) choose to dim all paragraphs in which you are not currently working, as well.

Among these things, a bunch of other things have changed, see the full changelog below. Additionally, we still haven't got RPM-exporting up and running. Therefore, Fedora-users still have to use Alien or something else to convert the DEB-package to an installable RPM-package. Sorry!

0.17.0

GUI and functionality

  • Added full stops after TOC-ordinals.
  • The HTML-export (e.g., for printing) does not rely on pandoc to be present on the system anymore. In other words: HTML-export is now working everywhere and has no prerequisites anymore. Attention: As we do not rely on pandoc for HTML exports anymore, this means that the HTML format is likely to suffer from some inconsistencies, as the rendering engine is way less advanced than pandoc. Yet, this should not pose a problem, as the HTML-export is intended to be for quick previews and prints only.
  • Added a bunch of options for exporting files, such as:
    • Choose whether to save the exported files in the temporary directory (which is expunged on each restart of the system) or in your current working directory (meaning they are persistent across system reboots and are also accessible normally through your file explorer).
    • Strip Zettelkasten-IDs (such as @ID:yyyymmddhhmmss).
    • Strip tags (in the format #tag).
    • Completely remove internal Zettelkasten-links (e.g. [[<link-text>]]).
    • Only unlink internal Zettelkaten-links (i.e. transform [[<link-text>]] to <link-text>).
  • Switched to the better xelatex engine to render PDF documents.
  • Added a great number of PDF export customization options. More will be coming in the future (depending on necessities and user wishes).
  • Added a feature that search results now also are shown on the scrollbar so that you know exactly where the matches reside in your document.
  • Replaced the ugly find-in-file dialog with a Zettlr-style popup and added a replace-function as well. Simply press Return while inside the replacement-field to replace the next occurrence of your search term, or press ALT+Return, to replace all occurrences at once. The search is case-insensitive.
  • Introducing a distraction free mode, which can be toggled by pressing Cmd/Ctrl+J. This makes the editor fullscreen and mutes all lines except the one in which you are currently working.
  • Added option to recall up to ten recently used documents.
  • Hashtags are now not rendered, when they are not preceded by a space or are at the start of a line. This prevents links with anchor-names being displayed wrongly.
  • Added a shortcut for inserting footnotes: Ctrl+Alt+F (Windows+Linux) or Cmd+Alt+R (macOS).

Under the hood

  • Moved all exporting functionality to a separate class, ZettlrExport.
  • Removed unnecessary CodeMirror plugins.
  • Removed unnecessary styles and some unnecessary (b/c unused) functionality.
Zettlr -

Published by nathanlesage over 6 years ago

Introducing Virtual Directories

Virtual Directories are a comfortable way to sort specific files from directories manually into a specific directory without having to move them from their original location. This way, you can now easily—for instance—keep all files you are currently working on in one place without having to search for them. Virtual Directories are not present on disk (they are saved in the respective directory as a so-called dot-file), thereby minimising the clutter while easing your work.

You can create virtual directories by right-clicking a directory, then choose the respective option. Give your virtual directory a name (the same rules for names apply as do for normal directories) and you can begin dragging files onto it. You can remove files from the directory by right-clicking them in their virtual directory (not in the real location!) and choosing the respective option. You can rename and delete virtual directories just as you would normal directories. In your preview list, files in virtual directories will be displayed with a slight purple colour to indicate that they are not actually present in them, but reside in a different location.

Limitations of virtual directories

Virtual directories have some limitations you should take notice of:

  • They are bound to the directory in which you create them, meaning you won't be able to drag them around like other directories.
  • You can only put files from the containing directory into them (i.e. if you have a directory A, and create a virtual directory in directory A, you will only be able to drag files onto the virtual directory that reside somewhere inside directory A)
  • You can remove files normally from virtual directories and rename them, which will remove/change them from both their real directory and all virtual directories they are in.

Other changes include a bunch of bugfixes, better translations and some fixes in the UI design of the app. See, as always, the full changelog below:

Changelog

GUI and functionality

  • Introducing Virtual Directories. Now it is possible to add "ghost" directories to your directories that act as a subset of these directories. They are not actually present on disk (but are persistent with a so-called dot-file named .ztr-virtual-directory) and therefore can be used to create collections of files by manually adding files to them. You can only add files to these virtual directories that are present in the containing directory. Also, you cannot move them because they are bound to their parent directories.
  • Fixed a bug that threw an error every time you tried to delete a directory with no file open currently.
  • Fixes to the inline commands. Now, when you press Cmd/Ctrl+I or Cmd/Ctrl+B a second time after you finished writing your strong/emphasised text, Zettlr will actually "exit" the bold/italic markings and not try to insert them a second time. (Note that it will still insert the end-markings if the characters directly after the current cursor position are not the end-markings).
  • Fixed a bug that threw errors if you were to rename a non-opened file.
  • Fixed a bug that threw errors if you were to rename a directory, while none was selected.
  • Prevent arbitrary selection in the app to make it feel even more native.
  • Huge performance boost on selecting directories and files.
  • Translated remotely triggered file- and directory-events.
  • Finally fixed the bug that the end-search button disappeared and the input field went in disarray when the window size was too small.
  • Re-introduced feature that Zettlr asks the user to replace the current editor content, if the current file has been changed remotely.
  • Now, if the current file is removed remotely, Zettlr automatically closes the file in the editor as well.
  • On updates, the download URL to GitHub now opens on the system's browser.

Under the hood

  • Removed an excess console.log.
  • Implemented indentlist plugin directly in Zettlr core.
  • Continued work on virtual directories.
  • Small changes to Zettlr and ZettlrDir classes.
  • Small changes to the markdown shortcut plugin.
  • Fixed a small error in Zettlr class.
  • Removed a huge bottleneck in the directory selection logic (now the Zettlr main process will not send the complete ZettlrDir-object to the renderer, but just the hash, because the renderer has a full copy of the objects in memory).
  • Removed the same, big bottleneck in the file selection logic.
  • Updated all dependencies to their latest version. Thereby we've switched to Electron 2.0.3.
Zettlr -

Published by nathanlesage over 6 years ago

!!! Fixed Debian- and Fedora-Packages !!!

This release contains several improvements and bug fixes. It fixes the width of the popups to prevent ugly line breaks in the stats windows as well as the behaviour of the attachment pane: Now the "open external"-button will always open the currently selected directory in your file browser, no matter whether or not there are attachments.

Also, fixes to the link renderings: Now, if you click on a link without the ALT-key pressed, the cursor will automatically be placed where you clicked. The rendering performance was also increased, especially in documents with a lot of links.

As a little new feature, we've added a function that automatically suggests file names to you when you start typing in the global search bar. If you hit enter while there is an exact filename (without its extension), Zettlr will not only run a search, but also immediately open the file in the editor.

Changelog

GUI and functionality

  • Additions to the search functionality. If you begin typing in the global search field, Zettlr will autocomplete your typings with exact name matches. This way you can directly open respective files from your searchbar by simply confirming the file to be opened with the RETURN-key.
  • Zettlr will now automatically try to force open a file when you commence a global search, if there is a file containing the typed name somewhere in the system.
  • If you click a link without the ALT-key now, the cursor will be automatically placed and you can edit the link exactly where you clicked without having to click the position twice.
  • Fixes to the attachment pane — now opening a directory will always work.
  • Now the vertical scrollbar in the editor uses the default cursor, not the text cursor.
  • Fixes to the generation and placement of popups. Now a bigger margin to the edges of the window is ensured, and the popups are now a little bit wider to reduce the possibilities of ugly line-breaks.
  • Small fix to the color of directory ribbons in dark mode.
  • The attachment pane now refreshes on new attachments without the need to switch to another directory and then switch back. Also, after every watchdog run the renderer receives a new list of objects now in memory.

Under the hood

  • Small changes to the _renderLinks()-function in ZettlrEditor.
  • Calling _act() in ZettlrAttachments even if there are no attachments to be able to still open the directory in these cases.
  • Changes to _place() in ZettlrPopup.
  • Changes to the ZettlrToolbar and ZettlrRenderer classes.
  • Design-fixes.
  • Removed an unnecessary check for the now non-existent projectDir option in the configuration constructor.
  • Added a security check for additional PATH-variables in ZettlrConfig.
  • Additional security-check in ZettlrConfigs set()-function to only add valid options. Now set() will return either true or false depending on whether the option was successfully set.
  • Removed deprecated code from ZettlrWindow class.
  • Added a security check in ZettlrWindows prompt() function.
  • Removed some unnecessary code from ZettlrDir class.
  • Small changes to ZettlrDir constructor.
  • Began first work on ZettlrFilter and ZettlrVirtualDirectory.
  • Changes to Zettlr and ZettlrRenderer classes.
Zettlr -

Published by nathanlesage over 6 years ago

Today's release contains small but useful fixes. Among other things we have fixed the ugly behaviour of the sorters in the preview pane, finally switched to Segoe UI as default font on windows systems (because Lato was barely readable on most systems), the editor now successfully remembers where in a document you have been and restores that scrolling position and cusor for you and, as a last thing, we've improved the display of links and URLs in your documents. Have a nice weekend!

Changelog

GUI and functionality

  • Zettlr saves a file prior to exporting to make sure you export what you see (WYSIWYE).
  • Now Zettlr is more performant especially in documents containing a lot of links. Also, clicking a link without the ALT-key pressed will now remove the link and make it editable, as intended.
  • Design fix: Now the sorters in the preview pane don't alter the size of the directory field.
  • Design change for Windows users: Now Zettlr on Windows uses the system's default font "Segoe UI", because as of strange font-smoothing effects, Lato is barely readable on Windows machines.
  • Fixed a logical error in the script, so now Zettlr will remember where you were in a document and restore that view on every opening of a file (not persistent, i.e. if you close and re-open Zettlr itself, the positions will be reset).

Under the hood

  • Added export to the CLOSING_COMMANDS.
  • Updates in package.json, updated dependencies.
  • Fixed a wrongly placed continue in _renderLinks() in the ZettlrEditor class.
  • Moved the saving of scrolling info from the open() function to the close() function in ZettlrEditor.
Zettlr -

Published by nathanlesage over 6 years ago

This release mainly contains fixes to the search. We have now improved the search a lot. What's new?

First, the relevancy of a search result is now indicated by the colour of the respective files. The greener, the more relevant. This is pretty much a two dimensional implementation of a "heat map". The more grey the files are, the less relevant are they. What will always be hidden are directories and files that did not match at least once.

Second, the search results are now buffered, and if you (in search mode) open a file, Zettlr will automatically highlight all matches inside the file. Pretty awesome, right?

To exit search, you can now follow one of three methods: Press Escape while the search input is focused, click the small "x" in the search input or simply select another directory from the tree view.

Also, this update includes a lot of smaller fixes, as you can see here:

Changelog

GUI and functionality

  • Removed some displaying of numbers during search.
  • Added more file info - when you click on the word count, a small popup containing info about the characters, characters without spaces and also the selection is shown.
  • Added a heatmap that shows you the relevance of the search results by adding a background color to the individual file ribbons. The more green and bright they get, the more relevant the file showed up in the results. Important: Files that do not match any of the selectors will be hidden as always, e.g. even grey files will at least fulfill the criteria!
  • Removed directory ribbons while in search mode.
  • Search mode will automatically be exited when selecting a different directory.
  • Also, now when a search is done, the opened file will have all results marked in text so you can easily discern them from the rest of the text.
  • Small design fixes.

Under the hood

  • Removed an unnecessary paths-update event.
  • Augmented getWordCount() function to return the wordcount of any given string.
  • Removed some strange artifacts from the search.
  • Huge improvements to the search functionality.
  • Finally implemented the new license in the files