See GitHub for detailed change history of this release
Congratulations to duarte.framos for their winning design for the banner for this release (here is the competition thread).
Major Improvements
Tour Plugin
added several new features that together allow interactive learning tours to be created and presented in TiddlyWiki.
The demo TiddlyWiki interactive tour can be seen at https://tiddlywiki.com/tour
The new features include:
- The new Tour Plugin itself
- The new Confetti Plugin that allows animated bursts of confetti to be displayed
- Improvements to the Dynannotate Plugin to add the ability to highlight screen elements using an animated spotlight effect
Geospatial Plugin
added new Geospatial Plugin that adds new primitives to the TiddlyWiki platform to enable non-developers to build sophisticated interactive geospatial applications.
The Geospatial Plugin incorporates a number of third party libraries and online services:
- Leaflet.js, an open source library to display interactive maps
- Turf.js, an open source library to perform geospatial calculations with GeoJSON objects
- TravelTime, a commercial API for geocoding, routing and isochrones
- Flickr, a free API for retrieving geotagged photographs
- OpenLocationCode, Google's open source library for converting to and from Open Location Codes (also known as PlusCodes)
Try it out at https://tiddlywiki.com/plugins/tiddlywiki/geospatial/
$testcase
Widget
added new $testcase
widget that is intended to solve a problem with the examples that we feature in the documentation. The existing macros are workable for simple, self-contained examples, but can be hard to follow in cases where the examples use additional tiddlers. The $testcase
widget displays complete, self-contained interactive examples showing the output together with a tabbed display of the constituent tiddlers that produce it:
This test case shows an elaborate way to calculate 2+2 involving multiple tiddlers
title | Output |
The sum is 4
The payload tiddlers for a test case are specified with the $data
widget. Test cases are run as an independent, self-contained nested wiki in a similar way to the Innerwiki Plugin, but are much more lightweight. The disadvantage is that test cases are rendered as part of the main page, and so any styling changes will leak out to the rest of the page.
Test cases can also specify the raw HTML of the expected result which causes them to be executed as tests, with success or failure indicated by an icon:
This test case intentionally fails (in order to show how failures are displayed). The expected result is set to <p>The sum is not 8.</p>
, but the result computes to <p>The sum is 4.</p>
<p>The sum is not 84.</p>
title | Output |
The sum is 4.
The easiest way to use the $testcase
is by creating TestCaseTiddlers using the new CompoundTiddlers format. There are also many test cases to view in the TiddlyWiki test edition at https://tiddlywiki.com/test.html
Translation improvements
This release also includes improvements to the following translations:
- Chinese
- French
- German
- Macedonian
- Polish
Plugin Improvements
- added badges to the core plugins to indicate their stability level from "deprecated", "experimental", "stable" and "legacy". These badges are shown in the plugin library and in the control panel
Widget Improvements
- added $timestamp attribute to ActionDeleteFieldWidget
Filter Improvements
- added new transcludes and backtranscludes operators
Usability Improvements
- added new keyboard shortcut for refreshing the page
- improved and simplified the splash screen for tiddlywiki.com. See Creating a splash screen for instructions on creating your own splash screen
Hackability Improvements
- improved the wikitext parser to generate start/end properties for all nodes
- extended WidgetMessage: tm-http-request to be able to use Basic Authentication
- improved WidgetMessage: tm-http-request to allow the default headers to be suppressed
- improved infinite recursion handling using a custom exception
- added button to the JavaScript error popup allowing tiddlers to be saved to a local JSON file
- updated to latest version of modern-normalize 2.0.0
- improved tm-permalink, tm-permaview and tm-copy-to-clipboard messages to allow the notification text to be customised
- improved window title rendering to automatically include global definitions
Bug Fixes
- fixed nested functions not resolving variables created in filter runs
- fixed nested Block Quotes in WikiText
- fixed TiddlyWikiClassic build process
- fixed LinkWidget not refreshing when the
to
attribute changes - fixed parsing bug with empty procedures/macros
- fixed functions to use variables set by filter runs
- fixed edit widget not refreshing when the editor type changes
- fixed editor preview width
- fixed WidgetMessage: tm-http-request not returning data in the event of an error
- fixed WidgetMessage: tm-http-request incorrectly interpreting 2XX status codes
- fixed processing of path separators in
tiddlywiki.files
files on Windows - fixed incorrect state reference in advanced search
- fixed clipping of popups in preview pane
- fixed JavaScript error when attempting to export missing tiddlers to a CSV file
- fixed imported procedures defaulting to
\whitespace trim
- fixed crash with cycle Operator if the the step size is larger than the number of operands
- fixed proper DOCTYPE for the open window template
- fixed theme font size settings to open in new window CSS
- fixed backlink parser to prevent it parsing binary tiddlers
- fixed issue where default parameters were not applied when a ParametersWidget did not find a parent TranscludeWidget
- fixed crash when using splitregexp Operator with a regular expression that includes capture groups
- fixed ActionLogWidget evaluating all variables in scope
Node.js Improvements
- fixed usage of "Cache-Control" header
- fixed SaveCommand not overwriting files when required
- fixed server header authentication when header is missing
- fixed ButtonWidget should refresh when "tooltip" attribute changes
Developer Improvements
- fixed issue with fakedom TW_Node inheritence
- fixed SJCL library creating variables in global scope
- fixed
widget.getVariableInfo()
to always return aparams
property
Acknowledgements
@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: