See GitHub for detailed change history of this release
Major Improvements
Global Keyboard Shortcuts
This version introduces new infrastructure to handle global keyboard shortcuts. The core ships with the following shortcuts:
- alt-I (or ctrl-I on Mac) - New image
- alt-J (or ctrl-J on Mac) - New journal
- alt-N (or ctrl-N on Mac) - New tiddler
See How to create keyboard shortcuts
Node.js HTTP Server
The HTTP WebServer functionality has been significantly improved:
- Adds ability to make a wiki that is read-only for anonymous users (with the editing UI hidden), but allows editing for users who log in
- Hides UI features like the new tiddler button and the edit button when the user only has read-only access to the wiki
- Adds support for serving static file attachments over HTTP
- Adds support for multiple user credentials for basic authentication via a CSV file containing usernames/passwords
- Adds support for serving over HTTPS as well as HTTP
- Adds support for authentication via a trusted header, making it easier to integrate with corporate single sign on (and Windows authentication)
- Adds support for more fine grained authorisation (ie granting/denying individual users read/write permission to resources)
- Better debugging information
- Experimental support for a new, plain HTML single tiddler per page view
- Adds a simple level of CSRF protection
- Deprecating the existing ServerCommand in favour of a new ListenCommand using the new NamedCommandParameters support for named parameters that can be specified in any order
- Refactoring routes as separate modules, making it easier to extend the server with new functionality
See WebServer for more details, or see the changes on GitHub.
Special Characters in Tiddler Titles
In previous versions of TiddlyWiki, there were some special character sequences in tiddler titles that would break certain features. For example, a tiddler title ending in double quotes would cause the Table-of-Contents Macros to render incorrectly.
As of 5.1.18, many of these problems have been fixed by refactoring the features to use the latest abilities of wikitext:
Note that using certain characters in tiddler titles will still prevent some features from being used correctly. For example, two vertical bar characters are used in the double curly braces transclusion syntax to separate the tiddler title from the template title: {{title||template}}
. However, although it would be impossible to transclude a tiddler called title||template
using that syntax, one could still transclude it using <$transclude tiddler="title||template"/>
.
Plugin Improvements
- KaTeX Plugin – the KaTeX Plugin has been updated to KaTeX v0.10.0. The plugin now incorporates an extension for chemical formulae
- Comment Plugin – this release adds a new commenting plugin – see $:/plugins/tiddlywiki/comments
- AWS Plugin – support for running TiddlyWiki as a Lambda function has been improved with support for GZip compression of the JSON payload
Translation Improvements
New and improved translations:
- Catalan
- Chinese Simplified and Chinese Traditional
- Dutch
- French
- German
Usability Improvements
- Added support for splash screens to be shown while TiddlyWiki is loading – see Creating a splash screen
- Added display of backlinks when renaming a tiddler
- Added persistent indicators at the bottom of the window showing any hidden drafts
- Added current username (if set) to the title of draft tiddlers, making them easier to identify in multiuser scenarios
- Added a warning for binary tiddlers in view mode
- Extended permalink/permaview to copy the URL to the clipboard as well as updating the address bar. This behaviour can be customised in $:/ControlPanel settings
- Improved saving to use the $:/SiteTitle as the basis of the filename
- Added support for webp, heic and heif image formats
- Fixed tiddler positioning when creating new tiddlers
- Fixed smooth scrolling in new windows
- Fixed problem dismissing popups within new windows
- Fixed handling of disabled missing links so that core user interface features are not broken (see also here)
Hackability Improvements
- Added a new filter prefix
~
allowing if-then-else logic within filters – see Filter Expression - Added a new subfilter Operator to allow nested filters to be used
- Added new stateTitle, stateField and stateIndex attributes to the ButtonWidget and the RevealWidget, making it possible to use state tiddlers whose titles contain
!!
or##
- Enhanced the search Operator to support searching arbitrary lists of fields, literal searches, whitespace-tolerant searches and regexp searches
- Added new contains Operator for searching within list fields
- Added support for a navigation scroll offset to avoid navigating to tiddlers resulting in them being obscured under a
position:fixed
top menu bar – see Hidden Setting: Scroll Top Adjustment - Extended WidgetMessage: tm-full-screen message to support forcing the status instead of just toggling it
- Refactored the sidebar to make it be dynamically built from the tag
- Refactored the tiddler info panel to make it be dynamically built from the tag
- Added new range Operator for generating ranges of numbers
- Added palette support for
<select>
element colouring - Added new text editor operation save-selection – see WidgetMessage: tm-edit-text-operation
- Added support for editor toolbar buttons to have action widgets
- Added support for rebasing headings at render time – see tv-adjust-heading-level Variable
- Added experimental support for packaging TiddlyWiki's JavaScript core into an external script for use with the new Web Server enhancements
- Added new
\import
Pragma as a more concise alternative to using the ImportVariablesWidget directly - Added (and here) new tv-show-missing-links Variable for tighter control over rendering of missing links by the LinkWidget
Bug Fixes
- Fixed with WidgetMessage: tm-new-tiddler overwriting creation fields of existing tiddlers
- Fixed problem with unwanted variable substitutions by restricting variable substitutions to macros defined with the define pragma
- Fixed problem with the 'excise' editor toolbar button not showing if the tiddler type is "text/vnd.tiddlywiki"
- Fixed problem with generation of wifi QR codes
- Fixed $tw.platform.isLinux on the latest Firefox
- Fixed problem with using full screen on secondary windows
- Fixed subtle bug whereby the RevealWidget was not refreshing properly when the state tiddler of a popup changed
- Fixed problem with malformed HTML entities
- Fixed crash when passing illegal arguments to the decodeuri Operator and decodeuricomponent Operator
- Fixed errors when a popup blocker blocks opening a new window
- Fixed problems using a lazily loaded tidler as a state tiddler with the RevealWidget
- Fixed problem with modals not appearing in the correct window
- Fixed the animations for adding and removing tags in edit mode, and a similar fix for the animations in the "Open" sidebar tab
Developer Bug Fixes and Improvements
- Refactored
$tw.utils.parseStringArray()
to optionally allow non-unique entries
Contributors
@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: