See GitHub for detailed change history of this release
Congratulations to Thomas Elmiger for his winning design for the banner for this release (here are the other entries).
Major Improvements
Dynamic Plugin Loading
Plugins can now be loaded or deleted dynamically, without requiring a reload – as long as they don't contain any JavaScript modules. Plugins that require a reload are indicated in the plugin chooser in $:/ControlPanel.
The plugin listing and the plugin chooser in the control panel feature several improvements:
- A new "Updates" tab listing all upgrades available from a plugin library, and a button to update all of them with one click
- Tabs are now used to display plugin libraries within the plugin chooser
- The plugin chooser now displays plugins that provide add-on functionality to another plugin as nested "sub-plugins", making the main listing easier to navigate
- Plugins may now declare dependencies that are automatically installed without user intervention
- All plugins are now displayed more consistently, including a concise, informal name (in addition to the description and title)
Client-Server Improvements
This release sees several improvements to the client-server configuration:
- Improved resilience to connection errors. Errors encountered by the browser are automatically retried, and when they succeed the associated error messages are automatically removed
- Changes to system tiddlers are now synchronised from the server to the browser
- Deletions of tiddlers on the server are now synchronised to the browser
- New "cloud" page control button with a dropdown menu showing status and additional actions:
- "Refresh from server" to force an immediate check for changes from the server
- "Logout"
- "Save snapshot for offline use" to save a copy of the wiki without the client-server components
- "Copy syncer logs to clipboard" to make it easier to ask end users for debugging information
- Added "filter" and "exclude" parameters to the GET /recipes/default/tiddlers.json endpoint to allow the returned tiddlers and fields to be filtered
- Enhanced LazyLoading to include skinny versions of tiddlers in the HTML file, and to avoid unnecessary loads from the server
- The official plugin library is now disabled when the tiddlyweb adaptor is active
- Internal file system details are no longer exposed to browsers when a file request fails (see https://github.com/TiddlyWiki/TiddlyWiki5/issues/3724)
See the pull request on GitHub for more details.
New compare Operator
Added a new filter operator for comparing numbers, strings, dates and version numbers. For example:
[[2]compare:number:eq[3]]
- returns nothing
[[2]compare:number:lt[3]]
- returns "2"
[[2]compare:number:eq[2]]
- returns "2"
=1.2 =1.8 =2.3 =3.4 =7.2 +[compare:number:gt[1.5]compare:number:lt[2.5]]
- returns "1.8" "2.3"
[[1]compare:number:gt[2]then[yes]else[no]]
- returns "no"
New Plugins
- Added new menubar plugin that creates a menu bar that is responsive on mobile devices, and supports search, dropdowns and links
- Added new freelinks plugin to automatically create links from any tiddler title, without having to type double square brackets or use CamelCase.
- Added new dynannotate plugin containing primitives for overlaying annotations or highlights over other content
- Added new share plugin for sharing tiddlers via the URL location hash
- Switched the markdown plugin to the newer and improved remarkable library
Translation Improvements
- Improved Chinese translation
- Improved Dutch translation
- Improved French translation
- Improved German translations
- Improved Portuguese translation
Performance Improvements
- Optimised ImportVariablesWidget to improve performance of global macros
- Optimised core SVG images to save approximately 100KB from the core plugin
- Added indexer for backlinks
- Optimised sort Operator
Usability Improvements
- Added download button for binary tiddlers
- Fixed (and here) spacing for page control buttons
- Improved display of icons in documentation
- Added support in control panel for specifying the field that should receive focus when editing or creating a tiddler
- Added support in control panel for specifying the tags for new tiddlers and journals
- Added language attribute to HTML document to improve accessibility
- Fixed scaling of embedded videos
- Added "none" option in icon dropdown in $:/TagManager
- Fixed a number of layout issues relating to the edit template and tag picker (see 18151cc1, 793d84bc, 1cf2d079, 3c365a25, 45def4de, 89728d8a, 4cf96e73, bfa3ddd0 and 74172b35)
- Added new Gruvbox Dark palette
- Improved (and https://github.com/TiddlyWiki/TiddlyWiki5/pull/4517)) Vanilla and Nord palettes
- Fixed Railroad plugin to use standard palette colours
- Improved Comment plugin to add a link on each comment to the original post
Hackability Improvements
- Added new saver for https://gitea.io/
- Added new ActionPopupWidget for triggering popups
- Added tabindex attribute to the ButtonWidget
- Added index attribute to the RangeWidget enabling it to be used with DataTiddlers
- Added support for RefreshThrottling via the
throttle.refresh
field - Added (and here) new
[is[binary]]
operand for the is Operator - Fixed usage of
publishFilter
in save templates – see SavingMechanism - Added CSS class identifying the tiddler body editor
- Added CSS classes to identify sidebar tabsets
- Updated normalize.css from v3.0.0 to v8.0.1
- Updated Highlight plugin to use highlight.js v9.18.1
- Updated Jasmine to v3
- Refactored AndTidWiki saver
- Added new SystemTag: $:/tags/Macro/View for creating macros that are only available within the view template
- Added support for embedding
.webm
and.ogg
video files - Added support for embedding
.woff2
font files - Added spaces parameter to jsontiddlers Macro for controlling the formatting of the output
- Updated the colour Macro to add support for specifying a fallback for colours not in the current colour palette
- Added new Hidden Setting: Default Tiddler Icon
- Added new Hidden Setting: Disable Drag and Drop
- Added new tc-tiddler-overridden-shadow class to tiddler frames for tiddlers that override a shadow tiddler
- Added support for a custom class to modal wrapper
- Fixed datauri Macro to work with tiddlers with a _canonical_uri field
- Fixed invaldi HTML produced in ">" in blockquote lists
- Added new "index" option to the has Operator for detecting the presence of data tiddler items
- Extended the FieldsWidget with an "include" attribute and more sorting options, and the fields Operator with new "include" and "exclude" suffixes
- Extended ActionCreateTiddlerWidget with attributes for specifying a template and for controlling overwriting existing tiddlers
Bug Fixes
- Fixed bug with deletes failing when lazy loading used under Node.js
- Fixed problem with the GitLab saver
- Fixed bug with permaview button when placed above the search box
- Fixed usage of count parameter of WidgetMessage: tm-edit-text-operation
- Fixed bug with toc-selective-expandable macro still showing disclosure arrow despite excluding tiddlers
- Removed (and here) erroneous word break setting for vertical tabs
- Fixed problem with programmatically deselecting entries from the SelectWidget in multiple selection mode
- Fixed usage of spans in colour picker
- Fixed refreshing of RangeWidget when underlying value changes
- Fixed problem with splash screen being shown when JavaScript is disabled
- Fixed problem with millisecond 0XXX DateFormat
- Improve compatibility of single tiddler window vs. main window
- Fixed problems with some core icons in Internet Explorer
- Fixed GitHub and GitLab savers to use default path of
/
if none specified - Fixed support for embedding ZIP files in some environments
- Fixed lack of refresh when ButtonWidget actions attribute changes
- Fixed the RangeWidget to work in Internet Explorer 10/11
- Fixed CountWidget to display "0" for an empty filter, instead of "undefined"
- Fixed MakeLibraryCommand to respect environment variables
- Fixed not to return "null" for an empty list
- Fixed z-index for CodeMirror autocomplete dropdowns
- Fixed unwanted whitespace within sidebar links
Contributors
@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: