This page is part of a static HTML representation of the TiddlyWiki at

Release 5.1.23

 24th December 2020 at 1:29pm

See GitHub for detailed change history of this release

Congratulations to Atronoush for his winning design for the banner for this release (here are the other entries).

Performance Improvements

  • improved filter execution to use a more efficient linked list structure for intermediate results
  • updated widget mechanism to cache the result of parsing macros which don't use text substitution
  • updated page templates to use a single VarsWidget instead of several SetVariableWidgets, for improved performance and easier debugging
  • updated ListWidget to not initialize parsers for blank emptyMessage attributes

Usability Improvements

  • renamed "references" to "backlinks" in the tiddler info panel
  • added warning message about using the online plugin library with the client-server configuration
  • updated favicon for the prerelease edition
  • removed normalize.css's styling of search input fields and updated to a modern fork of normalize.css
  • removed unneeded editor toolbar buttons when editing SVG tiddlers
  • added global keyboard shortcut for switching layouts
  • hide the .tid exporter when more than one tiddler to export

Import Mechanism Improvements

  • added support for renaming tiddlers and a warning about overwriting existing tiddlers
  • added colour coding for import items that will overwrite existing tiddlers, and for other warnings
  • improved other warnings in the import listing
  • fixed content type of imported .tid files that do not have a type field
  • fixed extraneous system tiddlers created during import process

Palette Improvements

Keyboard Handling Improvements

  • added support for navigating the search and new tag dropdowns via the keyboard. The keyboard-driven-input Macro can be used to add this capability to other dropdowns
  • added a tabIndex property to the tiddler editor input area to make it easier to use the tab key to move between edit controls
  • added keyboard support for cycling through the tabs in $:/AdvancedSearch
  • added keyboard support for navigating the field name dropdown in the Edit Template
  • added keyboard support or navigating the type field input in the Edit Template
  • added keyboard support for using the insert wikilink toolbar dropdown in the Edit Template
  • added a keyboard shortcut for saving the wiki
  • added a keyboard shortcut for deleting a field in the edit template
  • added a keyboard shortcut to change the sidebar layout

Widget Improvements

Filter Improvements

New capabilities:

  • added support for multiple operands for filter operators

New filter run prefixes:

New operators:

Other improvements:

Tiddler File Naming Improvements

extended the mechanism for Customising Tiddler File Naming to:

Hackability Improvements

  • added basic support for switching page templates
  • extended the WidgetMessage: tm-scroll message to allow the target element to be specified by a CSS selector, making it possible to scroll to positions within a tiddler
  • fixed modals to incorporate a NavigatorWidget so that links work as expected
  • extended the Table-of-Contents Macros to support custom link targets
  • added new Hyperdrive saver for use with Beaker Browser v1.0
  • extended favicon mechanism to support _canonical_uri images
  • added support for recording the startup timestamp in $:/info/startup-timestamp (see InfoMechanism)
  • added support for SVG favicons
  • extended th-saving-tiddler hook to include information about the draft tiddler (see
  • extended WidgetMessage: tm-rename-tiddler to control whether relinking occurs
  • extended WidgetMessage: tm-import-tiddlers to override the title $:/Import and to better control whether the import tiddler is opened automatically
  • extended the internal <$element> widget to add a hook so that plugins can intercept DOM node creation
  • added original event to tm-navigate event
  • extended the password prompt to enable it to be customised
  • extended syncer to enable syncadaptors to customise the login prompt
  • extended the tabs Macro to support actions and explicitState attributes
  • updated (and here) filters used for syncing on node.js and saving the single file version to exclude multiple story lists and history lists based on their prefix, as well as multiple tiddlers that might be used for the import process
  • added post-render startup actions
  • added support for username/password parameters for tm-login message
  • added support for the content type image/jpg (the correct type is image/jpeg but the misspelling is common so most browsers now support it)
  • added support for an override saver
  • added utility CSS classes to replace use of &nbsp; to introduce visual separation
  • added option to configure the tag used for TableOfContents in the menubar
  • modified the KeyboardWidget to not trap keys if there are no actions to be invoked
  • added buttons to the Edit Template toolbar for the editor-height and the stamp tool for tiddlers of type application/javascript,application/json and application/x-tiddler-dictionary
  • updated all instance of the tabs Macro in the core to use the explicitState attribute
  • added support for the meta key as a modifier in actions
  • added support for $:/info/darkmode to the InfoMechanism, reflecting the browser dark mode vs. light mode setting
  • updated story.js to remove dependency on wiki.js for story start up and navigator

Plugin Improvements

JSZip Plugin

extended the JSZip Plugin with the ability to dynamically create Zip files, and thus to conveniently build multi-file static sites within the browser

Consent Banner Plugin

added the new Consent Banner Plugin plugin helps make websites that are compliant with "cookie legislation" such as the EU General Data Protection Regulation. It presents a banner inviting the user to accept or reject cookies, keeping track of their consent in local storage so that the banner can be hidden on subsequent visits.

By default, content embedded with <iframe>, <embed> and <object> is blocked unless the user consents to accept cookies.

Consent status is available via a configuration tiddler so that it is possible to construct content that behaves differently depending upon whether consent has been granted. As an example, a macro is provided for embedding YouTube videos that automatically uses the variant of video URLs unless the user has accepted cookies.

Please note that using this plugin does not guarantee compliance with any particular legislation. You will need to understand the technical issues specific to your situation, and if necessary seek legal advice.

Freelinks Plugin

  • added (and here) support for ignoring case when matching titles
  • fixed bug with autolinking within HTML <a> elements

Twitter Plugin

  • added warning if wiki needs to be saved and reloaded

Dynaview Plugin

CodeMirror Plugin

Markdown Plugin

  • fixed encoding of Markdown image files
  • fixed issue with whitespace and linebreaks
  • added tc-tiddlylink-external class to external links
  • fixed to add rel="noopener noreferrer" to external links
  • updated to use palette colours

Amazon Web Services Plugin

  • added a new aws-encodeuricomponent filter that also encodes single quotes

BibTeX Plugin

  • updated to a later fork of the underlying third party BibTeX parsing library

Menubar Plugin

  • updated so the top margin of the side bar adjusts to the height of the menu

Dynannotate Plugin

  • added examples of usage in the View Template

External Attachments Plugin

Highlight Plugin

Translation Plugins

Other Bug Fixes

  • fixed parsing of dates from 0 to 100CE
  • fixed handling of negative dates (see Date Fields and DateFormat)
  • fixed "409 conflict" errors with the GitHub saver when saving within 60 seconds of the last save
  • fixed behaviour of system tiddler syncing with the client server configuration. By default, changes to system tiddlers are not synced from the server to the client, restoring the behaviour from v5.1.21 and earlier. Bidirectional syncing of system tiddlers can be enabled with the configuration tiddler $:/config/SyncSystemTiddlersFromServer
  • fixed hover effect for search dropdown items
  • fixed restored missing parameter to saveTiddler() method of syncadaptors
  • fixed MakeLibraryCommand to skip non-directories
  • fixed erroneous use of $
  • fixed high CPU usage with animated syncing icon introduced in v5.1.22
  • fixed $:/config/NewJournal/Tags appearing in tag dropdowns
  • fixed popups not being cancelled when clicking within a text editor
  • fixed issue with timeline Macro and invalid date values
  • fixed hover colours of tag dropdowns in the sidebar
  • fixed alignment of tag pill icons
  • fixed crash with droppable widget
  • fixed issue with adding tags in $:/Manager
  • fixed edit template "type" dropdown positioning
  • fixed edit template field dropdown positioning
  • fixed (with addendum) syntax error in ScrollableWidget
  • fixed problem with headers not being treated case insensitively
  • fixed problem with Content-Type HTTP header sent as Content-type
  • fixed EntityWidget not refreshing correctly
  • fixed Markdown Plugin to honour alignment directives
  • fixed syncing issues with external JS template
  • fixed incorrect base64 encoding of astral plane Unicode text
  • fixed server error when saving a new tiddler created by following a tiddler link
  • added a plugin-priority field to the TiddlyWeb plugin so that language plugins can override its language strings
  • fixed bug whereby joining an empty list would not return an empty list
  • fixed bug exporting tiddlers with double quoted titles
  • fixed bug with syncing plugin tiddlers
  • fixed bug with the position of the tiddler title when there is no icon in use
  • fixed unwanted autosave in the upgrade wizard
  • fixed problem whereby $:/temp tiddlers were being saved in single file wikis
  • fixed a bug with the sortan filter operator when used with date fields
  • fixed a bug for location hashes that contain a # character
  • fixed default branch to main for saving to GitHub
  • fixed shadow tiddlers not refreshing when their plugin is deleted or modified
  • fixed tc-dirty class not appearing on external windows
  • fixed static.tiddler.html template to make rendered tiddlers full-width


@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

  1. @adithya-badidey
  2. @Arlen22
  3. @bimlas
  4. @BramChen
  5. @BurningTreeC
  6. @danielo515
  7. @default-kramer
  8. @ento
  9. @favadi
  10. @fkohrt
  11. @flibbles
  12. @gera2ld
  13. @ibnishak
  14. @idotobi
  15. @jdangerx
  16. @jjduhamel
  17. @joshuafontany
  18. @Kamal-Habash
  19. @kookma
  20. @Marxsal
  21. @mocsa
  22. @NicolasPetton
  23. @OmbraDiFenice
  24. @passuf
  25. @pmario
  26. @rmunn
  27. @saqimtiaz
  28. @SmilyOrg
  29. @twMat
  30. @xcazin