This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld

 4th February 2016 at 10:53pm

Interesting article giving the perspective of someone who has been away from TiddlyWiki for a few years:

http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html

Way back in the mists of time (actually, January 2009) I wrote about a really cool tool called TiddlyWiki, a “non-linear personal web notebook”. Fast forward to today and I just had an out of body experience: Completely by accident I found a TiddlyWiki that I started when I wrote that piece and it still works!

Finding code that works flawlessly after just two or three years is magical enough but after seven years?! And given that TiddlyWiki is written as a single page Web application and considering how different browsers are now than they were in 2009, the fact that the old version of TiddlyWiki still works is not short of miraculous.

"A Thesis Notebook" by Alberto Molina

 2nd March 2013 at 8:45am

A thesis notebook based on TiddlyWiki.

http://tesis.tiddlyspot.com/

This is an example of a thesis notebook powered by TiddlyWiki 5.0.8-beta.

TiddlyWiki is a great piece of software created by Jeremy Ruston. It allows you, among other things, to take notes, organise ideas, store information, and display all your stuff the way you want. It is an incredibly flexible tool you can adapt to fit almost all your needs.

This TiddlyWiki has been customized to serve as a philosophy notebook centered around authors, books and papers, concepts and theories, and personal notes. I use it along with Zotero, which is a dedicated bibliography software. Both are free, open source projects. TiddlyWiki can be downloaded at https://tiddlywiki.com.

"ATWiki" by Lamusia Project

 6th January 2021 at 3:10pm

A desktop application for TiddlyWiki, running on Windows.

https://lamusia.github.io/#ATWiki

TiddlyWiki for Windows. A unique non-linear notebook for capturing, organising and sharing complex information.

"BJTools" by buggyj

 6th January 2021 at 3:10pm

buggyj has created several useful plugins, including a WYSIWYG HTML editor, a configurable calendar and tag lists with draggable ordering.

http://bjtools.tiddlyspot.com

"BrainTest - tools for a digital brain" by Danielo Rodriguez

 6th January 2021 at 3:10pm

A collection of customisations and macros from Danielo Rodriguez.

http://braintest.tiddlyspot.com/

This is my personal tiddlywiki file for testing.

Here I will post the tools and Macros that I develop for this awesome tool. That way, all the help the community gave me can came back to the community again.

"Cardo - Task and Project Management Wiki" by David Szego

 6th January 2021 at 3:10pm

Task & Delegation Tracking, Meetings & Agenda Items, Project Roles, Progress & Status Updates, Reference Items, Tickler Calendar, Conversation Logging, Book Notes & Library, and More!

http://cardo.wiki

Cardo is a standalone, browser-based tool that can be used as a simple task manager, or as a complex Project Management system (and indeed, I do use it this way in my daily work) as well as a fully Wiki-ized personal knowledge store. It runs completely independently in the browser, even without an Internet connection, making it possible to carry around on a USB stick, or to use on the morning commute.

"CouchDB Adaptor" by William Shallum

 6th January 2021 at 3:10pm

An adaptor to enable TiddlyWiki to sync changes with a CouchDB database.

https://github.com/wshallum/couchadaptor

CouchDB sync adaptor for TiddlyWiki 5. Requires TiddlyWiki >= 5.1.2.

Works in limited testing. Not sure how well it handles conflicts.

"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond

 20th February 2014 at 8:45am

A guide to creating a baby journal with TiddlyWiki.

http://a-penguin-in-redmond.blogspot.co.uk/2014/02/creating-baby-journal-with-tiddlywiki-5.html

Keeping a journal about your baby is fun. It allows you to keep track of those events in your baby's life and development that are most important to you, and to tell them in your own words. [...]

There are plenty of online services that can help to keep such a diary, but you need to have an internet connection to access them, and you have to trust them to keep your data safe.

"Dracula - a dark palette for TiddlyWiki" by SlyBouhafs & zenorocha

 1st January 2021 at 4:36pm

A dark palette for TiddlyWiki.

https://draculatheme.com/tiddlywiki

Install manually

Open the Control Panel > Appereance > Palette, scroll down and clone a platte, rename it to Dracula and copy the code from the website.

Activating theme

  • Open the Control Panel > Appereance > Palette
  • Scroll down and select Dracula
  • Boom! It's working

"Drift - Collect, Organise, Grow." by Tony K

 10th January 2023 at 10:00pm

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://github.com/bmann/drift-tiddlywiki-template/tree/master/drift

Drift is an adaptation of TiddlyWiki with the goal of helping you Collect. Organise. and Grow. your ideas while keeping tab on how they interconnect together and fluidly Drift from one to another.

The 2 main components of Drift are TWCrosslinks and DailyNotes so you never miss an idea

Drift was inspired by TiddlyBlink / Stroll and adapted to fit my needs.

"Dropboard" by Reid Gould

 6th January 2021 at 3:10pm

A TiddlyWiki plugin for kanban-like organisation in the style of Trello™ using boards, lists, and cards.

https://github.com/reidgould/tiddlywiki-dropboard

"Dynamic Tables" by Jed Carty

 13th November 2021 at 1:06am

Dynamic Tables is a set of macros that allow you to create tables where the rows are created from tiddlers and the columns from the tiddler fields, or where the columns are created from tiddlers and the rows from their fields. Individual cells can be edited on the fly. Row tables can be sorted by columns and column tables can be sorted by rows.

http://ooktech.com/jed/ExampleWikis/DynamicTables/

"Encrypt single tiddler plugin" by Danielo Rodriguez

 13th November 2021 at 1:06am

A plugin that allows to encrypt your tiddlers individually Danielo Rodriguez.

http://danielorodriguez.com/TW5-EncryptTiddlerPlugin/

Advantages:

  • You can specify a different password for each tiddler if you want.
  • You don't have to encrypt your whole wiky.
  • If you forget your password, you only lose a tiddler.
  • It's possible to edit the tiddler content , tags and fields except the encrypt field after encryption.
  • [...]

"file-backups" Extension for Firefox by pmario

 6th January 2021 at 3:10pm

An extension for Mozilla Firefox that smoothes out some of the friction from TiddlyWiki's built-in HTML5 saver, making it almost as easy to use as TiddlyFox. The workflow is intended to work out of the box, without configuration.

https://github.com/pmario/file-backups which contains links to the documentation and introduction video(s).

A chrome version is planned!

"Filter Examples" by Tobias Beer

 6th January 2021 at 3:10pm

This wiki gives examples for various filters and their use in the list widget

http://tobibeer.github.io/tw/filters/#Filter%20Examples

This wiki gives examples for various filters and their use in the list widget. A good starting point to understand what filters yield which results also is test-filters.js.

"Font Awesome 5 Free SVGs for TiddlyWiki" by morosanuae

 6th January 2021 at 3:10pm

The Font Awesome 5 Free SVG images collection converted to tiddlers that you can easily import (drag'n'drop) in your wiki.

http://fa5-free-svg.tiddlyspot.com

"Ghostwriter theme by Rory Gibson" adapted for TW5 by Riz

 6th January 2021 at 3:10pm

An adaption of the "Ghostwriter" theme for TiddlyWiki.

https://ibnishak.github.io/ghostwriter/

Ghostwriter is a popular, minimalist and mobile responsive theme for the blogging platform ghost. This is an adaptation for TiddlyWiki.

"Gospel Bubbles" by Rev. David Gifford

 6th January 2021 at 3:10pm

Creates bubble maps of Biblical texts.

http://giffmex.org/gospels.bubbles.html#Gospels%20Bubbles

This TiddlyWiki, which is still under construction, has several features that together make it lightning fast to find passages, types of passages, themes, people, places and images in the New Testament Gospels. The bubblemaps are color-coded overviews of each Gospel. Each type of passage (miracle story, parable, etc) was assigned a color. Bubblemaps allow you to do three things:

  1. The bubblemaps are color-coded overviews of each Gospel. Each type of passage (miracle story, parable, etc) was assigned a color. Bubblemaps allow you to do three things:
    1. See how the different types of passages are distributed throughout each Gospel.
    2. Hover over passages to see the verses and titles.
    3. Click on a passage to open it and see the themes and other data it mentions.
  2. The themes by passage indexes are lists of the passages in each Gospel, followed by the themes and other data found in the passage. Clicking on a theme calls up a list of all the passages that mention that theme.
  3. The indexes of themes contain lists of links to each theme, person, group, place and image. Clicking on a theme calls up a list of all the passages that mention that theme.
  4. There is a search window hidden in the right hand menu. Use the search window to find passages quickly, by typing things like sower or paralytic. Click the arrows in the upper right of the screen to open the menu and search.

"Grok TiddlyWiki" by Soren Bjornstad

 19th May 2021 at 11:02am

This new textbook from Soren Bjornstad is highly recommended for learning TiddlyWiki. The presentation and design are also a first class example of using TiddlyWiki.

From the site:

Grok TiddlyWiki is a textbook that helps you build a deep, lasting understanding of and proficiency with TiddlyWiki through a combination of detailed explanations, practical exercises, and spaced-repetition reviews of prompts called takeaways.

https://groktiddlywiki.com/read/

"GSD5" by Roma Hicks

 26th February 2022 at 8:52pm

An adaptation of the TiddlyWiki powered GTD® system formerly known as MonkeyGTD for TiddlyWiki version 5.

http://gsd5.tiddlyhost.com/

GSD5 is a Getting-Thing-Done tool for TiddlyWiki5 based off the mGSD classic TiddlyWiki.

"Hacks" by Thomas Elmiger

 6th January 2021 at 3:10pm

A collection of helpers by Thomas Elmiger, among them a tweet button macro, a text-stretch solution, a snippet extraction macro and a tiddler that installs a scroll-to-top button via drag-and-drop.

http://tid.li/tw5/hacks.html

Quick Extensions for TiddlyWiki 5 – […] As I take from the community, I am happy if I can give back. You can use my stuff to do whatever you like, but remember to save a back-up first.

Thomas

"Heeg.ru" by sini-Kit

 6th January 2021 at 3:10pm

A guide in Russian to creating an online shop with TiddlyWiki. No serverside code is needed, instead orders are handled by Disqus.

http://heeg.ru/

"In My Socks" by Jed Carty

 6th January 2021 at 3:10pm

An extensive collection of hints and tips from Jed Carty.

http://inmysocks.tiddlyspot.com

I made this so that some of my friends with absolutely no coding experience could use some of the better features of TW5 without having to learn much. I am hopefully going to continue updating it as I learn new things. There isn't really anything here that isn't available in plenty of other places, but I figured that since I spent a while putting it together and people keep saying that TW needs more documentation I would post it here.

"JD Mobile Layout plugin" by JD

 6th January 2021 at 3:10pm

A plugin that improves the usability of TiddlyWiki on smartphones by JD:

http://j.d.simplemobile.tiddlyspot.com

"JD's palettes" by JD

 1st January 2021 at 4:45pm

Some palettes by JD.

http://j.d.palette.tiddlyspot.com/

You can install any or all of these by dragging any of the below links into your Tiddlywiki:

  • Brown One
  • C8 Dark
  • Cool Mint
  • Neonize
  • Spartan Day
  • Spartan Night

"Lucky Sushi" online shop by sini-Kit

 6th January 2021 at 3:10pm

A complete online shop made in TiddlyWiki!

http://luckysushi.ru/habarovsk/heeg.html#index

"Mal's Sandbox" by Mal

 6th January 2021 at 3:10pm

A collection of extensions by @malgam

http://malsandbox.tiddlyspot.com

The "loadnew" plugin provides the JavaScript module $:/plugins/malgam/loadnew/loadnew.js that implements an incremental load command for Tiddlywiki 5.

The javascript code is based on the built-in module $:/core/modules/commands/load.js that loads tiddlers from a Tiddlywiki file into a node.js Tiddlywiki instance. This command loads all non-system tiddlers, irrespective of whether they have been modified since last loaded. As a result, all tiddlers in the node.js tiddlers folder will end up with a new modification date.

In contrast, the loadnew command only loads tiddlers that either don't already exist in the tiddlers folder, or have a newer modified date than the existing tiddler.

With a backup strategy that uses a file system snapshot process to preserve historical versions of tiddlers, the loadnew command minimises the sizes of the resulting snapshots.

"MathCell" by Stephen Kimmel

 6th January 2021 at 3:10pm

Mathcell allows spreadsheet-like abilities in a completely contained TiddlyWiki.

http://mathcell.tiddlyspot.com/

Mathcell allows spreadsheet-like abilities in a completely contained TiddlyWiki. Additional abilities allow it work as a general math engine.

"Microblogging con Tiddlywiki" by Juan

 8th October 2014 at 1:43pm

A Spanish guide to using TiddlyWiki on Android.

http://3palmeras.wordpress.com/2014/11/05/microblogging-con-tiddlywiki/

Tiddlywiki software is prodigious based on javascript which is capable of holding a notepad that can be edited with Internet Explorer or function as a full blog, contained in a single file.

Translation by Google Translate

"Moments: A little color won't hurt" by Riz

 6th January 2021 at 3:10pm

An adaption of the "Moments" theme for TiddlyWiki.

http://tesseractmoments.surge.sh/

Moments is a beautiful free and responsive theme available for wordpress from here: http://www.s5themes.com/theme/moments/. This is an adaptation of the same for TW5 platform. All the design credits goes to the site and the original designer. If TW5 is going to be here for 25 years, might as well suit up.

"Mono theme" by JD

 1st January 2021 at 3:46pm

This theme by JD features a left side bar, advanced functionality from the search bar and plenty of customizability built in.

http://j.d.mono.tiddlyspot.com/

"muritest" by Simon Huber

 13th November 2021 at 11:06pm

A terrific demo of drag and drop, pan and zoom, and other sophisticated touch effects. Based on the muuri plugin by Uwe Stuehler.

http://muritest.tiddlyspot.com

"Notebook theme" by Nicolas Petton

 31st January 2024 at 2:33pm

Notebook is a clean, uncluttered theme for TiddlyWiki.

https://saqimtiaz.github.io/sq-tw/notebook.html

Notebook is a clean, uncluttered theme for TiddlyWiki.

  • The theme is responsive and comes with mobile support through the included notebook-mobile plugin.
  • Notebook comes with 3 default colour palettes, a grey, beige and dark one. To switch between colour palettes, click the color palette switch button in the top bar.
  • Notebook uses a custom left sidebar, with another sticky bar at the top of the page (or at the bottom on mobile).

"Noteself" by Danielo Rodríguez

 13th November 2021 at 1:08am

NoteSelf is your personal, private, customisable, Evernote-like experience. You want cloud? Fine! You don't? Fine too! It's all yours, It's your decision! Why not be a bit selfish?

https://noteself.github.io/

NoteSelf is the perfect place to store your ideas, notes, thoughts, tips, tricks, recipes... whatever you want to put into it! NoteSelf will store, index, and make it easily searchable, so you will find it instantly whenever you need it!

You already know and love Evernote, we know it. It is comfortable, it syncs, has search capabilities... Wow, it's almost perfect, but what about:

  • Privacy - Everything is stored on the Evernote's servers!
  • Customisation - If you don't like the interface of Evernote, there's nothing you can do

NoteSelf is built on top of TiddlyWiki, a powerful, free, highly customisable and open-source personal wiki. We took the best of it, it's powerful customisation system, and mixed it with one of the best embedded databases available, PouchDb, for bringing the synchronisation capabilities you need.

"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag

 10th September 2014 at 10:28am

A quick guide to using TiddlyWiki (written in German)

http://michaelsonntag.net/notizen-mit-tiddlywiki-systemuebergreifend-nutzen

Those using multiple different computer platforms (if only PC and Android) knows for certain: You would like to sync notes across computers and thereby be independent of any apps or services. I am concerned at any rate so and so I am constantly looking for the perfect solution.

With TiddlyWiki I found it mostly. As the name suggests, it TiddlyWiki is a Wikisystem. In contrast to all other wikis, TiddlyWiki is a single HTML file that runs in the browser and thus can be used on all modern operating systems. And because there is only one file, it can be very easily via the well-known cloud services (Dropbox, Google Drive, ownCloud) or synchronized with FTP or used on a USB stick.

(Translation from German by Google Translate)

"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger

 16th July 2014 at 8:45am

A fast Forth interpreter for the Commodore PET, written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil.

http://pettilmobile.com/tw/

Objectives of the project are, in no particular order:

  • make a Forth that runs on my Commodore PET 2001
  • have fun
  • improve my "6502 assembly golf" skills
  • find other people who are interested in this project

"Reveal.js" by Devin Weaver

 13th November 2021 at 11:05pm

Embed Reveal.js presentations inside your TiddlyWiki.

https://sukima.github.io/tiddlywiki-reveal-js/

reveal.js enables you to create beautiful interactive slide decks using HTML.

With the power of TiddlyWiki and Reveal.js one can…

  • …make an interactive tiddler with fancy animations
  • …Make it go full screen for professional keynote
  • …Distribute the slideshow with examples and additional resources in one HTML file

"savetiddlers" Extension for Chrome and Firefox by buggyj

 6th January 2021 at 3:10pm

An extension for Google Chrome and Mozilla Firefox that smoothes out some of the friction from TiddlyWiki's built-in HTML5 saver, making it almost as easy to use as TiddlyFox once it is set up correctly.

https://github.com/buggyj/savetiddlers

"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson

 3rd April 2015 at 10:42am

Detailed description of setting up TiddlyWiki on Node.js on OS X.

http://undefinedvalue.com/2015/04/02/setting-personal-tiddlywiki-server-os-x

For a new job, I decided to set up a personal wiki to keep notes. I wanted to keep it simple, meeting these requirements:

  • All the data is in a Dropbox folder (so it can be automatically synced between machines)
  • It must support Markdown syntax

After looking at the options, I settled on TiddlyWiki. I've used "classic TiddlyWiki" before, and liked its simplicity, but I was always a little annoyed with the weird steps you have to go through to save changes. The new version of TiddlyWiki includes support for running it as a real HTTP server, so you can use it just like an online wiki.

But it took me a couple of hours to figure out how to set that up. The TiddlyWiki documentation is not clear ("not clear" is a euphemistic way of saying "terrible"). So, I've written up these instructions in the hope it will spare somebody else all the frustration I had.

"Shining Ark Using TiddlyWiki" by Helu

 7th September 2013 at 8:45am

A gamers guide to using TiddlyWiki.

http://helugame.wordpress.com/2013/09/07/shining-ark-7-using-tiddlywiki/

I’ve been using TiddlyWiki for this game mainly to record the monsters’ locations and the items that they drop. This is so that when I need a certain item to upgrade/create weapons, I can quickly look it up; which monsters drop it and which quests have those monsters.

As I play the game, as I encounter new information, I just input them into my Shining Ark TiddlyWiki. It’s like I’m building a wiki from scratch. The reason why I don’t just use online wikis is that 1) it’s too easy to get spoiled and 2) sometimes online wikis provide too much information (who cares about the non-gameplay related descriptions that can be found in the game, etc).

"SK Plugins" by Stephen Kimmel

 6th January 2021 at 3:10pm

A collection of plugins by Stephen Kimmel, including a number of additional editor toolbar buttons.

http://skplugins.tiddlyspot.com/

In keeping with the general spirit of the TiddlyWiki community, ie, you develop something useful and/or potentially interesting you share it with others, I'm sharing some of the plugins I've developed to go with the new Editor Toolbar. You'll find them and a more extensive discussion of what each does at http://skplugins.tiddlyspot.com/

"Slides and Stories" by Jan

 6th January 2021 at 3:10pm

Slides and Stories is a repository of the tools to optimise TW for scientific research and for presenting and publishing results.

http://slidesnstories.tiddlyspot.com

SlidesnStories

...is a tool to save and reload sets of Tiddlers. This is already working, The aim is to develop a mechanism to transform these into instant slideshows.

MetaTabs

is a tool which gives you the possibility to attach and show specific information in tabs at the bottom of each Tiddler: ideas, notes, tasks, stories and presentations, comments, annotations and footnotes.
It is inspired by MagicTabs and Tiddlyscholar by Alberto Molina Pérez, which are very elaborated tools that alas do not seem to be in active development any more. I wanted to change the behaviour in some ways. For example I wanted show tabs only if they have content.

...furthermore there is

  • an export-plugin,
  • a footnote-plugin,
  • and a plugin to rearrange Tiddlers in the StoryRiver

"Stroll - a Roam-like experience" by David Gifford

 1st January 2021 at 8:14pm

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://giffmex.org/stroll/stroll.html

Stroll is a TiddlyWiki adaptation imitating certain features of Roam to help users easily see connections between their notes and navigate between them. Features include:

  • bi-directional links,
  • autocompletion when linking,
  • renaming of links upon changing tiddler titles,
  • side-by-side editing of multiple notes.

"TB5 - a pocket full of tips" by Tobias Beer

 6th January 2021 at 3:10pm

An enormous collection of tips beautifully curated by Tobias Beer. It is actually a collection of sites, with sub-sites dedicated to topics such as filtering (http://tobibeer.github.io/tw/filters/).

http://tobibeer.github.io/tb5/

A collection of references and sandbox for testing concepts around TiddlyWiki 5...

"Tekan: Kanban that stays with you" by Riz

 6th January 2021 at 3:10pm

A Kanban implementation for TiddlyWiki with a familiar look and feel (see the demo).

https://ibnishak.github.io/Tesseract/projects/tekan/Tekan.html

This is Tekan, a TW based kanban. The easiest way to know tekan is to use it. So let us begin, shall we?

"TiddlyServer" by Matt Lauber

 13th November 2021 at 11:07pm

Note: This is an older version of TiddlyServer. A modern version can be referenced here.


TiddlyServer is a special purpose Desktop app, designed to facilitate managing multiple instances of TiddlyWiki running as a server. It does not require internet acess to access the wikis.

https://github.com/mklauber/TiddlyServer/releases/

TiddlyServer can import both TiddlyWiki files and TiddlyFolder wikis. For each wiki, you specify a prefix to serve it with and the source to import from. It will copy the wikis to its own internal store and begin serving them up at http://localhost:8080/{prefix}/. The export button for each wiki will convert it to a single file wiki.

"TiddlyStudy" by Kebi

 10th January 2023 at 10:04pm

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://postkevone.github.io/tiddlystudy/

Tiddly Research is a free and local note-taking environment based on TiddlyWiki

Core Features:

  • Bidirectional note linking on multiple levels
  • Tags
  • Linked references
  • Unlinked references
  • Transclusions
  • Bullet point based hierarchical note taking structure
  • Integration with the spaced repetition flashcards tool Anki
  • TODOs
  • and more

"TiddlyWiki 5 im Betatest" by besim

 5th January 2014 at 8:45am

Reaction to TiddlyWiki5 from the translator of the German edition of TiddlyWikiClassic.

http://blog.netplanet.org/2014/01/03/tiddlywiki-5-im-betatest/

There is little software that can still inspire me so even after years, as on the first day. This includes TiddlyWiki, the "pocket-wiki". The latter is because the Wiki completely fits into an HTML file, and this HTML file brings everything - JavaScript program logic, CSS appearance and the entire Wiki content as stored records. So a TiddlyWiki file is then sometimes happy times some megabytes in size, but just has the unbeatable advantage that it works just as fast file created locally in a variety of browsers.

(Translation from German by Google Translate)

"TiddlyWiki for Scholars" by Alberto Molina

 6th January 2021 at 3:10pm

An early release of an edition of TiddlyWiki customised for rigorous, academic notetaking.

http://tw5.scholars.tiddlyspot.com/

TiddlyWiki for Scholars is a personal customisation of TiddlyWiki 5.0.13-beta I made for note-taking from readings, but it can be useful for other purposes. The idea behind this adaptation is to show and to allow creating relevant data related to the current tiddler without leaving the tiddler.

"TiddlyWiki guide FR" by Sylvain Naudin

 6th January 2021 at 3:10pm

A collection of tips and guides in French, introduced by this blog post:

http://sylvain.naud.in/post/2014/10/29/Ressources-pour-TiddlyWiki-5-%28FR%29

Ce guide de prise en main de TiddlyWiki vous permettra de débuter sur ce logiciel : rédiger du texte avec la syntaxe wiki, insérer des images, créer des Tiddler, faire une recherche, ajouter des fonctionnalités, et bien d'autres choses.. Bonne lecture ! Sylvain

"TiddlyWiki Knowledge Network" by Dmitry Sokolov

 6th January 2021 at 3:10pm

A Knowledge Network about TiddlyWiki.

http://confocal-manawatu.pbworks.com/w/page/113574373/TiddlyWiki

Interconnected with the visual taxonomy at every node: http://debategraph.org/Stream.aspx?nid=457381&vt=bubble&dc=focus

TWKN will be transferred into TWederation/TiddlyMap format as soon as I am convinced in reliable and secure versioning and multi-user operation in TW format. Your assistance and support would be highly appreciated.

"TiddlyWiki Notes" by James Anderson

 6th January 2021 at 3:10pm

Notes and tips by a developer working on writing TiddlyWiki plugins – including TWExe, a widget for running Windows scripts and executables.

http://welford.github.io

"TiddlyWiki Posts" by Jeffrey Kishner

 5th August 2023 at 2:07pm

A collection of articles covering integration with Fargo, Font Awesome and Google Calendar, and tips for managing task lists. The original site is missing, but a link to an archive is provided.

https://web.archive.org/web/20221015011644/http://blog.jeffreykishner.com/tiddlywiki/

I have become a regular user of TiddlyWiki and have become so accustomed to using Font Awesome icons in Fargo that I wanted to incorporate the icons into my wikis as well.

"TiddlyWiki Toolmap" by David Gifford

 6th January 2021 at 3:10pm

A topical index of known plugins, tutorials, themes, and other helpful tools for TiddlyWiki.

https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM

Some of the topics indexed so far include:

  • Background images and background colors
  • Breadcrumbs
  • Business - examples
  • CSS / Styles, general
  • Calendars, dates and timelines
  • Checklists
  • Collaboration
  • Color palettes
  • Colors
  • Data visualizations
  • Developer / advanced tools
  • Diplay tiddlers horizontally
  • Dropdowns
  • Educational
  • External files
  • Fields
  • Fonts
  • Fun and games
  • Home and lifestyle
  • IFrames and embedding media
  • Image galleries, modals and lightboxes
  • Images, icons, emojis
  • Importing and exporting between TiddlyWiki files
  • Includes scaffolding within a tiddler, dragging to reorder tiddlers, choosing the number of columns
  • Interfacing with, importing and exporting to and from other formats
  • Knowledge bases, dictionaries and glossaries
  • Layout/UI
  • Lightboxes
  • Links, linking
  • Lists and filters
  • Maps and geography
  • Masonry, scaffolding
  • Math
  • MindMapping
  • Mobile tools
  • Music and sound
  • Navigation
  • node.js
  • Note-taking
  • Open the "filter" tab
  • Partially hidden tiddlers
  • Personal websites (examples)
  • Presentations and slideshows
  • Printing
  • Project management
  • Publishing and hosting TiddlyWikis on the web
  • Searching tools
  • Security and backup tools
  • Social media, sharing, comments
  • Spreadsheets and math
  • Startup
  • Sticky titles
  • Story and screenplay creation
  • Table of contents
  • Tables, charts and graphs (cf data visualizations)
  • Tabs
  • Tags, tagging
  • Task management and productivity - to do lists
  • Themes
  • Understanding TiddlyWiki
  • Writing and editing

"TiddlyWiki 舞" by Bram Chen

 6th January 2021 at 3:10pm

A translation of the tiddlywiki.com documentation from Bram Chen, TiddlyWiki's Chinese translator.

http://tw5-zh.tiddlyspot.com

"TiddlyWiki" by Sander de Boer

 27th November 2014 at 4:32pm

Dutch blog post about TiddlyWiki

https://breinbout.wordpress.com/2014/11/26/tiddlywiki/

I'm allergic to websites that are highly dependent on JavaScript. I think that JavaScript has many useful applications to add functionality to a site, but content needs to be visible if JavaScript is switched off. I use the NoScript extension for Firefox and surf with pleasure over the Internet without spontaneous things happen that I do not give permission. I love JavaScript on a short leash. More crazier maybe I'm so excited about TiddlyWiki.

(Translation from Dutch by Google Translate)

"TiddlyWiki5 Bourbon" by mkt_memory

 6th January 2021 at 3:10pm

An extensive collection of tips and resources for users of TiddlyWiki in Japanese.

http://bacchus.ivory.ne.jp/bourbon/

TiddlyWikiをHTML5にしたTiddlyWiki5が正式にリリースされました。このTiddlyWiki5の使い方について、自分で試した機能を中心に解説します。

TiddlyWiki5は、非常に多機能なローカルWikiです。このブログに書いてあることは、TiddlyWiki5で出来ることのごく一部です。

"TiddlyWiki5 Forum on Reddit" by Riz

 6th January 2021 at 3:10pm

A TiddlyWiki5 forum on Reddit.

https://www.reddit.com/r/TiddlyWiki5/

A TiddlyWiki5 forum on Reddit. As of 2016, it claims to have the most up-to-date list of plugins available for TW5.

"TiddlyWiki5 Playground" by Ton Gerner

 6th January 2021 at 3:10pm

Huge collection of customisations and tweaks from Ton Gerner.

http://tongerner.tiddlyspot.com/

I am a longtime user of TiddlyWiki Classic and still use it daily since you can't do everything in TiddlyWiki 5 (yet) ;)

I started experimenting with TW5 at the end of September 2013 (alpha10). Since I missed a few things in the layout I got used to in TiddlyWiki Classic 1, I started with modifying the layout of TW5. To share my knowledge, I made a few guides about these 'modifications'. The guides started as a non-linear personal web notebook (yeah, the subtitle of TiddlyWiki!). I started experimenting with layout things and used TW5 to document my experiments.

"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos

 6th January 2021 at 3:10pm

A wealth of hints, tips and notes about using TiddlyWiki on Node.js:

TiddlyWiki is different from other wikis because of its principle of dynamically customizeable "storyline" based on tiddlers as basic units of information. That is, the user "composes" their own version of the webpage by clicking on tiddler links, which add tiddlers to the page in order to compose a storyline.

The Node.js implementation in TiddlyWiki5 adds all the advantages of flat-file markup language based type of site. This makes TiddlyWiki an excellent alternative to flat-file based CMS/webpage/blog authoring systems for the web.

Also very cool is the treatment of tags as menus everywhere.

http://larigot.avarts.ionio.gr/users/iani/wikis/tw5square.html

Also available on GitHub (download and save index.html and open it in your browser).

"TW Icons" by morosanuae

 13th November 2021 at 10:59pm
A large collection of icons for TiddlyWiki.

https://morosanuae.github.io/tw-icons

"TW5 Magick" by Stephan Hradek

 14th November 2021 at 8:53pm

Stephan Hradek's growing catalogue of tips, tutorials, and other resources. Stephan has also developed several plugins and macros that you can find at http://tiddlystuff.tiddlyspot.com/.

http://tw5magick.tiddlyspot.com/

Some things in TiddlyWiki seem like Magic. As my preferred nick is Skeeve, I felt that TW5 Magick is a proper name for this collection of some of the "magic" tricks one can do with TiddlyWiki.

"TW5 Tribal Knowledge" from Scott Kingery

 21st March 2014 at 8:45am

Tips and guides for using TiddlyWiki.

http://techlifeweb.com/tw5tribalknowledge.html

I never used Node.js until a couple weeks ago when I wanted to try a TW5 installation on Node and expand my knowledge a bit. I figured someone else may be in the same boat so I wrote it all down

"TW5-TeXZilla" plugin by Joe Renes

 6th January 2021 at 3:10pm

An alternative LaTeX plugin for TiddlyWiki5. It supports a wider set of LaTeX commands than KaTeX, though not as extensive as MathJax

http://tw5-texzilla.tiddlyspot.com

This plugin provides LaTeX support in TiddlyWiki5, using the TeXZilla latex parser to generate MathML.

Only Firefox and Safari support MathML at the moment, so the plugin is only useful if you're using one of these browsers. It might be possible to combine this plugin with MathJax to convert MathML to something that other browsers can understand, e.g. HTML+CSS, but I haven't tried this.

"TWeb.at" by Mario Pietsch

 6th January 2021 at 3:10pm

A collection of TiddlyWiki resources from Mario Pietsch, with a focus on cloud deployments. Mario also maintains the German translation of TiddlyWiki.

https://tweb.at

My name is Mario Pietsch from Austria. I'm living near Salzburg.

This page, will be the portal to my TiddlyWiki, TiddlyWeb related content.

"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond

 16th July 2014 at 8:45am

A guide (in French) to using TiddlyWiki on the BiblioBox, a variation of the PirateBox mobile communication and file sharing system.

http://bibliobox.net/blog/post/2014/07/16/un-wiki-sur-votre-bibliobox-avec-tiddlywiki

I've known TiddlyWiki since its beginning in 2004. For personal or professional needs, I used it regularly for notepad staff in 2007 and 2012. But I admit I ignored the tool during the past two years. And then I said yesterday: but why not put TiddlyWiki on a BiblioBox? Because it is a single HTML file with javascript. In addition I knew the existence of a server version for saving online amendments.

Hand optimised from a translation by Google Translate

"Whitespace, a negative-spacious, webapp-nostalgic theme" by JD

 1st January 2021 at 3:46pm

A beautiful theme that leverages the white spaces between elements.

http://j.d.whitespace.tiddlyspot.com/

"Wikilabs" by PMario

 6th January 2021 at 3:10pm

A collection of references for testing concepts around TiddlyWiki 5...

https://wikilabs.github.io

This is PMario's playground with ramblings about TiddlyWiki and related stuff.

It basically is a "jump off" page to various TiddlyWiki sites, that show editions, themes and plugins.

"Wills Q&D gTD" by Matabele

 6th January 2021 at 3:10pm

Matabele's stylish and clean system for personal task management.

http://wills.tiddlyspot.com

This is my work in progress version of TW5, incorporating various features and ideas as and when they intrigue me. To grab any feature you may wish to try, drag the listed tiddlers across to the dropzone of an empty TiddlyWiki 5.0.10-beta

"X3DOM for TiddlyWiki 5" by Jamal Wills

 6th January 2021 at 3:10pm

An experiment to embed interactive 3D graphics within TiddlyWiki by Jamal Wills. It is based X3DOM, an open source JavaScript library.

http://x3dom.tiddlyspot.com/

"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift

 11th November 2013 at 8:45am

A Gentle Guide to TiddlyWiki

 19th May 2021 at 11:06am

TiddlyWiki is an incredibly flexible and versatile tool that is conceived and constructed differently than most software. This can make it hard to understand until the moment when it clicks, and becomes a seamless extension of your brain.

Starting with the basics, TiddlyWiki is a note-taking web application you can download for free, store wherever you like and customise however you wish. Use it to capture, organise and share your notes in ways that word processors and other note-taking tools cannot.

TiddlyWiki is designed to be non-linear, structuring content with stories, tags, hyperlinks, and other features. You can organise and retrieve your notes in ways that conform to your personal thought patterns, rather than feel chained to one preset organisational structure.

You can use TiddlyWiki as a single file that you view and edit through any web browser, whether you are online or offline. Or you can use it as a powerful Node.js application that stores each of your notes as a separate file.

How can you make TiddlyWiki work for you? We recommend you start with our introductory documentation listed below, and then browse the TableOfContents, available in the Contents tab in the sidebar. Or just follow our simple instructions and try it out for yourself!

Also see:

About

 16th September 2014 at 1:20pm

abs Operator

 11th June 2019 at 5:42pm
purposecalculate the absolute value of a list of numbers
inputa selection of titles
outputthe absolute value of the input numbers

Learn more about how to use Filters

abs Operator (Examples)

 11th June 2019 at 5:42pm

[[-2000]abs[]]

=-1 =-2 =3 =4 =5 +[abs[]]

Ace Editor Plugin by Joerg Plewe

 6th January 2021 at 3:10pm

A plugin to integrate the Ace editor into TiddlyWiki.

http://innoq.tiddlyspot.com

Being quite new to TW5 development I tried my best to draft a SyncAdaptor to store tiddlers in IndexedDb. This is quite useful if an application / plugin installation is not possible (we have quite some restrictions at work...).

Acknowledgements

 12th September 2014 at 2:51pm

TiddlyWiki wouldn't be possible without the ongoing support of the TiddlyWiki Community. Their attention and feedback has made it possible to gain an understanding of what is wanted from the product, and their passion for it has taught me that it is worth the investment.

TiddlyWiki incorporates code from these fine OpenSource projects:

And media from these projects:

acos Operator

 21st October 2021 at 10:28pm
purposecalculate the arccosine value (in radians) of a list of numbers
inputa selection of titles
outputthe arccosine (in radians) of the input numbers

Learn more about how to use Filters

Introduced in v5.1.21 See Mathematics Operators for an overview.

Tip
This is the inverse operation of cos: cos calculate the cosine of an angle (in radian), but acos calculate the angle (in radian) of a cosine.

Examples

acos Operator (Examples)

 20th October 2021 at 2:27pm

[[2]acos[]]

=1 =2 =3 =4 +[acos[]]

ActionConfirmWidget

 15th November 2020 at 4:03pm

Introduction

Introduced in v5.1.23The action-confirm widget is an action widget that prompts the user for confirmation and invokes other action widgets contained within it only if the user confirms. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-confirm widget is invisible. Any content within it is only processed if the user confirms the action, or the confirmation has been disabled by the $prompt attribute.

AttributeDescription
$messageOptional message displayed to the user when asking for confirmation.
$promptOptional flag, set to "no" to disable the prompt for confirmation. Defaults to "yes"

Examples

Here is an example of a button that asks the user for confirmation, before deleting the caption and tags fields of the current tiddler:

<$button>
<$action-confirm $message="Do you wish to delete the caption and tags?">
<$action-deletefield caption tags/>
Delete "caption" and "tags"
</$action-confirm>
</$button>

That renders as:

Here is an example of a button that uses the optional $prompt attribute to control whether to prompt the user before deleting the text field of the tiddler HelloThere:

<$button>
<$action-confirm $message="Do you wish to delete the text field?" $prompt={{$:/state/promptUser}}>
<$action-deletefield $tiddler="HelloThere" $field="text"/>
</$action-confirm>
Delete text from ~HelloThere
</$button>

That renders as:

ActionCreateTiddlerWidget

 15th January 2023 at 8:47am

Introduction

The $action-createtiddler widget is an action widget that creates new tiddlers. Action widgets are used within triggering widgets such as the ButtonWidget.

There are several differences from the tm-new-tiddler message:

  • The new tiddler is not automatically displayed in the story river
  • The title of the new tiddler is made available for subsequent operations

Content and Attributes

The action-createtiddler widget is invisible.

AttributeDescription
$basetitleThe initial title that will be attempted. If a tiddler with that title already exists, then a numerical counter is added to the title and incremented until it is unique
$savetitleDeprecated since:5.1.20(seeActionCreateTiddlerWidget Example 5) A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created
$savedrafttitleDeprecated since:5.1.20(seeActionCreateTiddlerWidget Example 5) A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
$templateIntroduced in v5.1.22 The title of a template tiddler, that will be used to create a new tiddler
$overwriteIntroduced in v5.1.22 If set to "yes", it will overwrite existing tiddlers. Be careful!
{any attributes not starting with $}Each attribute name specifies a field to be created in the new tiddler

Variables

Introduced in v5.2.0 The content of the $action-createtiddler widget is executed after the new tiddler has been created. The title of the newly created tiddler is stored in the variable createTiddler-title.

VariablesDescription
createTiddler-titleThe tittle of the tiddler that has been created. See ActionCreateTiddlerWidget Example 5
createTiddler-draftTitleThis variable only exists to have feature parity with the deprecated parameters. It contains the title of a "draft tiddler"

Examples

Caption for new button: <$edit-text tiddler="$:/state/new-button-caption" tag="input" default=""/>

<$button>
<$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}>
<$action-navigate $to=<<createTiddler-title>>/>
</$action-createtiddler>
Create a new non-functional page control button and open the tiddler
</$button>

That renders as:

Caption for new button:


This example will create "New Tiddler", "New Tiddler 1", " New Tiddler 2" and so on

\define testCreate()
<$action-createtiddler />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab


This example will use the base title defined in $:/language/DefaultNewTiddlerTitle.

It will overwrite the tiddler, if the button is clicked several times.

\define testCreate()
<$action-createtiddler $basetitle={{$:/language/DefaultNewTiddlerTitle}} $overwrite="yes"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab


This example will uses a base-title and a template: ActionCreateTiddlerWidget Template

It will create: "base", "base 1", "base 2" and so on

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab


This example uses a base-title "base" and a template: ActionCreateTiddlerWidget Template.

There will be new fields "aa" and "bb" which are added to the new tiddlers.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template" aa="new field aa" bb="new field bb" />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab


This example will use the base title defined in ActionCreateTiddlerWidget Template.

It will create: "base", "base 1", "base 2" and so on, and navigate to this tiddler in draft mode.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template">
	<$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/>
</$action-createtiddler>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example

 13th November 2021 at 1:10am

Caption for new button:

ActionCreateTiddlerWidget Example 1

 13th November 2021 at 11:04pm

This example will create "New Tiddler", "New Tiddler 1", " New Tiddler 2" and so on

\define testCreate()
<$action-createtiddler />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 2

 13th November 2021 at 1:10am

This example will use the base title defined in $:/language/DefaultNewTiddlerTitle.

It will overwrite the tiddler, if the button is clicked several times.

\define testCreate()
<$action-createtiddler $basetitle={{$:/language/DefaultNewTiddlerTitle}} $overwrite="yes"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 3

 13th November 2021 at 1:11am

This example will uses a base-title and a template: ActionCreateTiddlerWidget Template

It will create: "base", "base 1", "base 2" and so on

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 4

 13th November 2021 at 1:11am

This example uses a base-title "base" and a template: ActionCreateTiddlerWidget Template.

There will be new fields "aa" and "bb" which are added to the new tiddlers.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template" aa="new field aa" bb="new field bb" />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 5

 11th January 2023 at 10:09pm

This example will use the base title defined in ActionCreateTiddlerWidget Template.

It will create: "base", "base 1", "base 2" and so on, and navigate to this tiddler in draft mode.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template">
	<$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/>
</$action-createtiddler>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Template

 16th November 2021 at 7:25pm

This is a tiddler used as a template in: ActionCreateTiddlerWidget Example 3

ActionDeleteFieldWidget

 8th June 2024 at 3:13pm

Introduction

The action-deletefield widget is an action widget that deletes specified fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-deletefield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler)
$fieldOptional name of a field to delete
$timestampNew in v5.3.4 Specifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
{any attributes not starting with $}Each attribute name specifies a field to be deleted. The attribute value is ignored and need not be specified

Examples

Delete currentTiddler fields using plain attributes

Use the $action-deletefield widget to delete the "caption" and "tags" fields of the current tiddler
titleOutput
captionA caption
tagstag1 tag2 tag3

Click and watch the "caption" and "tags" field disappear.

Delete fields from a specific tiddler

Use the $action-deletefield widget to delete the "list" and "tags" fields of the tiddler HelloThere
titleOutput

Click HelloThere, then click and watch the "list" and "tags" fields disappear

Delete field from a specific tiddler

Use the $field attribute of the $action-deletefield widget to delete the "text" field of the tiddler HelloThere
titleOutput

Click HelloThere, then click and watch the contents of the "text" field disappear

Delete a variable field name

Use the $field attribute of the $action-deletefield widget to delete a variable field name
titleOutput
descriptionThis field will be deleted

Click and watch the "description" field disappear.

Delete field without updating timestamps

Use the $timestamp attribute of the $action-deletefield widget to prevent creation/change of "modified" and "created" fields
titleOutput
descriptionThis field will be deleted

Click and watch the "description" field disappear without the "modified" and "created" fields getting added

ActionDeleteTiddlerWidget

 8th June 2024 at 3:22pm

Introduction

The action-deletetiddler widget is an action widget that deletes tiddlers. ActionWidgets are used within triggering widgets such as the ButtonWidget.

There are several differences compared to the WidgetMessage: tm-delete-tiddler:

  • The user is not prompted to confirm the deletion
  • No automatic updating of the story list
  • No special handling of draft tiddlers

Content and Attributes

The action-deletetiddler widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerOptional title of the tiddler to be deleted
$filterOptional filter identifying tiddlers to be deleted

Examples

Delete a specific tiddler

Use the $tiddler attribute of the $action-deletefield widget to delete the "HelloThere" tiddler
titleOutput

Delete tiddlers matching a filter

Use the $filter attribute of the $action-deletefield widget to delete all tiddlers tagged "TableOfContents"
titleOutput

ActionListopsWidget

 9th May 2024 at 1:50pm

Introduction

The action-listops widget is an action widget that manipulates user lists in any field or data index. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-listops widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose lists are to be modified (if not provided defaults to the current tiddler)
$fieldThe name of a field to be manipulated as a list (defaults to 'list')
$indexOptional index of a property in a data tiddler index to be manipulated as a list
$filterAn optional filter expression, the output of which will be saved to the field/index being manipulated
$subfilterAn optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated
$tagsAn optional subfilter expression, which takes the tags field of the target tiddler as input, and saves the modified list of tags back to the tags field

Note on subfilter expressions

If the manipulation depends on the current contents of the list, e.g. when using the toggle operator to toggle the presence of an element, the Filter Run would be prefixed with the + / :and filter run prefix so that it properly receives the list as input.

<$action-listops $subfilter="+[toggle[List Item]]"/>

The above widget will toggle the presence of the element List Item in the field list of the current tiddler, removing or adding the element as necessary.

Similarly, if an element is to always be removed when it is present, the - / :except filter run prefix can be used. Both of the following yield the same result:

<$action-listops $subfilter="-[[ListItem]]"/>
<$action-listops $subfilter="+[remove[ListItem]]"/>

Note that the parameter of the remove Operator is a Title List. To remove one or more titles containing spaces the individual titles must be wrapped in double square brackets, usually via a soft Filter Parameter. See Filtered List Variable Assignment in the SetWidget documentation to learn more.

Without any prefixes, the filter run output is simply dominantly appended to the list.

See also the Examples.

Using $filter or $subfilter

Standalone use of the $subfilter attribute can be replaced by using a (more complicated) $filter attribute value.

For example, the items "abc" and "123" can be appended to the field myfield using the $subfilter attribute:

<$action-listops $field="myfield" $subfilter="abc 123"/>

The same can be achieved using the $filter attribute and prepending the Filter Run [enlist{!!myfield}] to the Filter Expression:

<$action-listops $field="myfield" $filter="[enlist{!!myfield}] abc 123"/>

The short form is more convenient, but the long form is useful for live-debugging complicated $subfilter values using the filter tab of $:/AdvancedSearch. By using $:/AdvancedSearch, the Filter Expression can be tested before using action-listops to modify actual tiddler fields. For this use case, the all[current] portion of the expression needs to be changed to select the proper test tiddler.

Using $tags or $subfilter

Tagging is implemented using a tiddler's 'tags' field, so appending the tags "abc" and "123" using the $tags attribute like this:

<$action-listops $tags="abc 123"/>

is mostly equivalent to using $subfilter along with "tags" for the value of $field:

<$action-listops $field="tags" $subfilter="abc 123"/>

Comparison to ActionSetFieldWidget

In general, ActionSetFieldWidget is better for setting multiple fields at once and for replacing the value of a field, which can also be a list. The ActionListopsWidget is better for modifying a list field based on the existing list and for using a Filter Expression to derive the value of the field.

The ActionSetFieldWidget sets the value of a field using $field and $value attribute pairs or attributes that do not start with a $. A single ActionSetFieldWidget can be used to set any number of fields of a single tiddler.

The ActionListopsWidget replaces or modifies a single field's value using filter expressions.

The following widgets are functionally equivalent:

<$action-setfield $field="myfield" $value="abc 123"/>
<$action-setfield myfield="abc 123"/>
<$action-listops $field="myfield" $filter="abc 123"/>

Note that abc 123 in the first two cases is a literal string that is assigned to the field myfield, but in the third case a filter expression which evaluates to the same string.

Extended Filter Operators

A number of Extended Listops Filters are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list.

Notes on de-duplication

In some cases, there may occur unexpected de-duplication of lists.

Assignments to the list field

When assigning filter results to the list field (default), the generated list is automatically de-duplicated, so

<$action-listops $filter="[[1]] :and[[1]]"/>

will result in the list field of the current tiddler containing the string 1, but not 1 1.

Input to the subfilter expression

The input to the subfilter expression in the $subfilter attribute is also de-duplicated. If you rely on lists containing duplicates, consider using this alternative using the $filter attribute:

<$button>
<$action-listops $field="myfield" $filter="[enlist:raw{!!myfield}] :all[[abc]]" />
Add 'abc' to 'myfield'
</$button>

<$list filter="[enlist:raw{!!myfield}]" template="$:/core/ui/ListItemTemplate" />

That renders as:

The enlist Operator with raw suffix will enlist the list saved in myfield of the current tiddler without de-duplication, while e.g. the list Operator will always de-duplicate. The widget then adds the item abc – whether or not it is already included in the list – and replaces the original list in myfield.

Examples

ActionListopsWidget (Examples)

 5th August 2023 at 10:36am

In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default).

<$button>
<$action-listops $field="myfield" $filter="efg hlm pqr"/>
Populate 'myfield'
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="abc xyz"/>
Append More Items
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-abc -hlm"/>
Remove Items
</$button>
<$button>
<$action-listops $field="myfield" $filter="[[]]"/>
Clear 'myfield'
</$button>

<$list filter="[list[!!myfield]]">

</$list>

That renders as:


In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order.

<$button>
<$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/>
Mangle List
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/>
Unmangle List
</$button>

<$list filter="[list[!!myfield]]">

</$list>

That renders as:


The following example toggles the tag Examples for the current tiddler.

<$button>
<$action-listops $tags="+[toggle[Examples]]"/>
Toggle 'Examples' tag
</$button>

That renders as:


In this example we shall append a few tags to the 'tags' field of this tiddler (the default). We shall then remove some of the appended tags.

<$button>
<$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/>
Populate 'tags'
</$button>
<$button>
<$action-listops $tags="+[!remove:2{!!tags}]"/>
Remove Last Two Tags
</$button>
<$button>
<$action-listops $tags="+[!prefix[$:/]]"/>
Remove System Tags
</$button>
<$button>
<$action-listops $tags="-Mon -Tue"/>
Remove Mon and Tue
</$button>
<$button>
<$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/>
Remove User Tags
</$button>
<$button>
<$action-listops $tags="+[[]] ActionWidgets Widgets"/>
Clear Tags
</$button>

<$list filter="[list[!!tags]]">

</$list>

That renders as:

ActionListopsWidget

ActionLogWidget

 20th November 2020 at 3:52pm

Introduction

Introduced in v5.1.23 The action-log widget is an action widget that can be used to output debugging information to the JavaScript console supported by most browsers. This can be useful because otherwise it is difficult to observe what is going on within a sequence of actions.

ActionWidgets are used within triggering widgets such as the ButtonWidget.

Tip
For debugging outside of actions see LogWidget

Content and Attributes

The action-log widget is invisible. Any content within it is ignored.

When the actions are invoked, the names and values of all attributes are logged to the JavaScript console. In addition there are optional attributes that can be used:

Optional AttributeDescription
$$filterAll variables matching this filter will also be logged.
$$messageA message to display as the title of the information logged. Useful when several action-log widgets are used in sequence.
$$allSet to "yes" to log all variables in a collapsed table. Note that if there is nothing specified to log, all variables are always logged instead.

Tip
A handy tip if an action widget is not behaving as expected is to temporarily change it to an <$action-log> widget so that the attributes can be observed.

Example

Here is an example of logging two variables:

<$action-log myVar=<<myVar>> otherVar=<<otherVar>>/>

To log all variables:

<$action-log />

To log two variables as well as all core variables (which start with tv-):

<$action-log myVar=<<myVar>> other={{!!status}} $$filter="[prefix[tv-]]"/>

ActionNavigateWidget

 20th February 2015 at 4:20pm

Introduction

The action-navigate widget is an action widget that sends a tm-navigate message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-navigate widget is invisible. Any content within it is ignored.

AttributeDescription
$toThe title of the target tiddler for the navigation (if not provided defaults to the current tiddler
$scrollOptional parameter determining whether the navigation will also cause a scroll to the target tiddler (see below)

Scroll handling

The optional $scroll attribute can be set to "yes" to force scrolling to occur to bring the target tiddler into view. If set to "no" then scrolling does not occur. If the $scroll attribute is omitted then scrolling occurs unless either:

  • the control key is pressed
  • the action was initiated with the middle mouse button (if available)

Note that if navigating to multiple tiddlers at once you should use the same $scroll setting for all of them.

Examples

Here is an example of button that navigates to two different tiddlers at once:

<$button>
<$action-navigate $to="ButtonWidget"/>
<$action-navigate $to="ActionWidgets"/>
Click me!
</$button>

That renders as:

ActionPopupWidget

 31st July 2023 at 7:30pm

Introduction

The action-popup widget is an action widget that triggers the display of a popup defined via a state tiddler, or clears all displayed popups. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-popup widget is invisible. Any content within it is ignored.

AttributeDescription
$stateThe title of the state tiddler for the popup
$coordsOptional coordinates for the handle to which popup is positioned (see Coordinate Systems for the supported formats)
$floatingIntroduced in v5.2.0 Optional. Defaults to no. Set to yes to create a popup that must be closed explicitly.

Introduced in v5.1.23 If the $coords attribute is missing or empty then all popups are cancelled.
Introduced in v5.2.4 The $coords attribute supports absolute and relative coordinates. See Coordinate Systems for more information.

Tip
Delete the state tiddler for a floating popup to close it.

Examples

Here is an example of button that triggers the "more" button in the sidebar "Tools" tab. You may need to scroll to see the popup

<$button>
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" $value="$:/core/ui/SideBar/Tools"/>
<$action-popup $state="$:/state/popup/more--810643385" $coords="(0,20,0,0)"/>
Click me!
</$button>

That renders as:

ActionSendMessageWidget

 23rd October 2021 at 4:01pm

Introduction

The action-sendmessage widget is an action widget that sends a message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-sendmessage widget is invisible. Any content within it is ignored.

AttributeDescription
$messageThe message to send (eg, WidgetMessage: tm-new-tiddler)
$paramOptional parameter string whose meaning is dependent on the message being sent
$nameOptional name of additional parameter
$valueValue for optional parameter whose name is specified in $name
$namesIntroduced in v5.2.1 Optional filter evaluating to a list of additional parameter names
$valuesIntroduced in v5.2.1 Optional filter evaluating to a list of parameter values corresponding to the parameters names specified in $names
{any attributes not starting with $}Multiple additional, optional named parameters that are attached to the message

Examples

Here is an example of button that displays both a notification and a wizard, and creates a new tiddler with tags and text:

<$button>
<$action-sendmessage $message="tm-modal" $param="SampleWizard"/>
<$action-sendmessage $message="tm-notify" $param="SampleNotification"/>
<$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/>
Click me!
</$button>

That renders as:

ActionSetFieldWidget

 6th August 2015 at 5:14pm

Introduction

The action-setfield widget is an action widget that assigns values to the fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-setfield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler)
$fieldOptional name of a field to be assigned the $value attribute
$indexOptional index of a property in a data tiddler to be assigned the $value attribute
$valueThe value to be assigned to the field or index identified by the $field or $index attribute. If neither is specified then the value is assigned to the text field. If no value is specified, $field or $index will be deleted.
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
{any attributes not starting with $}Each attribute name specifies a field to be modified with the attribute value providing the value to assign to the field

Examples

Here is an example of a pair of buttons that open the control panel directly to specified tabs. They work by using action-setfield to set the state tiddler for the control panel tabs.

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Settings"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Settings" tab
</$button>

That renders as:

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then navigates to it and opens the tiddler info panel on the "Fields" tab:

<$button>
<$action-setfield $tiddler="HelloThere" tags="NewTag [[Another New Tag]]" color="red"/>
<$action-setfield $tiddler="$:/state/popup/tiddler-info--1779055697" text="(568,1443,33,39)"/>
<$action-setfield $tiddler="$:/state/tab--1890574033" text="$:/core/ui/TiddlerInfo/Fields"/>
<$action-navigate $to="HelloThere"/>
Modify ~HelloThere
</$button>

That renders as:

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then initiates editing it:

<$button>
<$action-setfield $tiddler="HelloThere" tags="MoreTag [[Further More Tags]]" color="green"/>
<$action-sendmessage $message="tm-edit-tiddler" $param="HelloThere"/>
Edit ~HelloThere
</$button>

That renders as:

Here is an example of a button that opens the control panel directly to the "Appearance" tabs:

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" $field="text" $value="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

That renders as:

ActionSetMultipleFieldsWidget

 23rd October 2021 at 4:01pm

Introduction

The action-setmultiplefields widget is an action widget that assigns multiple fields to a tiddler where the names and values of the fields are specified as separate filters. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-setmultiplefields widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerOptional title of the tiddler to modify (defaults to the current tiddler)
$fieldsOptional filter evaluating to the names of a list of fields to assign. Either $fields or $indexes must be specified
$indexesOptional filter evaluating to the names of a list of indexes to assign. Either $fields or $indexes must be specified
$valuesFilter evaluating to the values to be assigned to the fields or indexes
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"

Examples

Here is an example of button that uses the data in Days of the Week to assign fields day-Monday, day-Tuesday etc. to the tiddler "HelloThere":

<$button>
<$action-setmultiplefields $tiddler="HelloThere" $fields="[list[Days of the Week]addprefix[day-]]" $values="[list[Days of the Week]]"/>
Click me!
</$button>

That renders as:

actionTiddler Variable

 18th January 2019 at 8:46am

The variable actionTiddler is used in subtly different ways by different widgets:

  • Within the actions string of the DroppableWidget, the actionTiddler variable contains the title of the tiddler being dropped.
  • Within the startactions and endactions string of the DroppableWidget, the actionTiddler variable contains a quoted Title List of all of the titles being dragged.

ActionWidget Execution Modes

 16th November 2021 at 7:32pm

Introduced in v5.2.0 The default behaviour of action widgets has some peculiarities that often cause confusion. There is now an improved mode that simplifies how things work, but due to BackwardsCompatibility constraints, it must be explicitly engaged in order to take advantage of it.

The peculiarities relate to the way that the results of previous action widgets are available to subsequent action widgets. By default, action widgets are refreshed before each execution which ensure that they reflect the results of previous actions. However, ordinary widgets are not updated in the same way.

In the following contrived example, a button triggers a series of actions that should result in the string foo being assigned to the text field of the tiddler ActionTestTiddler. However, it fails to produce the expected result because the <$set> widget is not refreshed with the new value of ActionTestTiddler after the execution of the first <$action-setfield> widget.

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

That renders as:

Current value of ActionTestTiddler:

The new behaviour avoids these problems by refreshing all widgets before execution, not just action widgets. It is engaged by running the actions in a scope that includes the variable tv-action-refresh-policy set to the value always. (The default value for tv-action-refresh-policy is once).

The assignment can be done within an action string, or via a local variable declaration containing the widget triggering the action.

Warning
Do not attempt to set tv-action-refresh-policy globally; the core will only work correctly with the default setting

The example above works as expected with the addition of tv-action-refresh-policy:

\define tv-action-refresh-policy() always

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

That renders as:

Current value of ActionTestTiddler:

ActionWidgets

 31st October 2021 at 5:29pm

Action widgets are a special type of widget that have no visual appearance but perform an action when triggered (such as sending a message, navigating to a tiddler, or changing the value of a tiddler). Action widgets are used in association with other widgets that trigger those actions (for example, the ButtonWidget).

The following action widgets are provided:

There are two ways to use action widgets:

  • Placing them within an action string attribute (typically called actions) on the triggering widget (this is the preferred way)
  • Embedding the actions within the triggering widget (an older technique that is now deprecated)

Using action string attributes

The action widgets are passed as a string to the actions attribute of the triggering widget. Usually, it is more convenient to use a macro to assign the action widgets to a variable. For example, here is a button that triggers two actions of sending different messages:

\define my-actions()
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
\end

<$button actions=<<my-actions>>>
Click me!
</$button>

Directly embedding action widgets

The action widgets need not be immediate children of their triggering widget, but they must be descendents of it. The actions are performed in sequence. Here is the above example rewritten to use embedding:

<$button>
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
Click me!
</$button>

Action Execution Modes

Introduced in v5.2.0 The default behaviour of action widgets has some peculiarities that often cause confusion. There is now an improved mode that simplifies how things work, but due to BackwardsCompatibility constraints, it must be explicitly engaged in order to take advantage of it.

The peculiarities relate to the way that the results of previous action widgets are available to subsequent action widgets. By default, action widgets are refreshed before each execution which ensure that they reflect the results of previous actions. However, ordinary widgets are not updated in the same way.

In the following contrived example, a button triggers a series of actions that should result in the string foo being assigned to the text field of the tiddler ActionTestTiddler. However, it fails to produce the expected result because the <$set> widget is not refreshed with the new value of ActionTestTiddler after the execution of the first <$action-setfield> widget.

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

That renders as:

Current value of ActionTestTiddler:

The new behaviour avoids these problems by refreshing all widgets before execution, not just action widgets. It is engaged by running the actions in a scope that includes the variable tv-action-refresh-policy set to the value always. (The default value for tv-action-refresh-policy is once).

The assignment can be done within an action string, or via a local variable declaration containing the widget triggering the action.

Warning
Do not attempt to set tv-action-refresh-policy globally; the core will only work correctly with the default setting

The example above works as expected with the addition of tv-action-refresh-policy:

\define tv-action-refresh-policy() always

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

That renders as:

Current value of ActionTestTiddler:

add Operator

 21st March 2023 at 1:06pm
purposetreating each input title as a number, add to each the numeric value of the parameter
inputa selection of titles
parameterN=a number
outputthe input as numbers, but with N added to each one

Learn more about how to use Filters

add Operator (Examples)

 11th June 2019 at 12:55pm

[[23]add[19]]

=1 =2 =3 =4 +[add[4]]

Adding a table of contents to the sidebar

 6th November 2018 at 10:41pm

The standard mechanisms in TiddlyWiki for creating Table-of-Contents are macros known collectively as "toc" macros (click on link to learn more about macros). They use Tagging as their means of creating relationships, so be sure to review the Tagging topic tiddler if tagging is a new concept for you.

A customisable table of contents can be added to the sidebar with the following steps:

  1. Create a tiddler called TableOfContents
  2. Give it the tag $:/tags/SideBar
  3. Set the text to
    
    <div class="tc-table-of-contents">
    
    <<toc-selective-expandable 'TableOfContents'>>
    
    </div>
  4. Add a caption field with the text Contents
  5. Add a list-after field with the text $:/core/ui/SideBar/Open

Add entries to the table of contents by creating tiddlers tagged TableOfContents. An easy way is to choose new here from the tiddler toolbar of the TableOfContents tiddler. (if you don't see the "new here" button, click on the down arrow to see more menu options.)

To create child tiddlers (tiddlers that come below other tiddlers), tag them with the name of the parent tiddler.

Adding a Twitter Follow button

 19th September 2014 at 4:15pm

Here's a macro that provides a Twitter Follow button for a particular username:

\define twitterFollowButton(username)
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/follow_button.html?screen_name=$username$" style="width:300px; height:20px;"></iframe>
\end

The only change from the version published at https://dev.twitter.com/docs/follow-button is that new lines have been removed.

Note that the src URL is given without a protocol (ie "http" or "https"). It's done this way so that it works on sites whether they are hosted on a HTTP or HTTPS domain. If you want the Twitter button to work while using a TiddlyWiki offline on a "file://" URL, then you'll need to manually add the protocol. For example:

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=jermolene" style="width:300px; height:20px;"></iframe>

addprefix Operator

 3rd February 2015 at 6:18pm
purposeextend each input title with a prefix
inputa selection of titles
parameterS=a string of characters
outputthe input, but with S added to the start of each title

Learn more about how to use Filters

addprefix Operator (Examples)

 18th January 2015 at 6:31pm

Cat Garden [[Favourite Armchair]] +[addprefix[My ]]

addsuffix Operator

 3rd February 2015 at 6:32pm
purposeextend each input title with a suffix
inputa selection of titles
parameterS=a string of characters
outputthe input, but with S added to the end of each title

Learn more about how to use Filters

addsuffix Operator (Examples)

 18th January 2015 at 6:31pm

[[London]addsuffix[ Underground]]

Adopt a Titles Policy

 12th September 2014 at 3:01pm

As the structures within your TiddlyWiki documents get more complex it can be hard to keep the titles of tiddlers consistent. For example, should terms be defined in the plural or the singular? Camel case or separate words?

Recording a formal titling policy can help to reduce confusion. For example, the titling policies for this wiki are recorded in the Documentation Style Guide.

SystemTiddler Titles

A useful convention is to use the prefix $:/_ for any system tiddlers that you create to ensure that they are near the top of the system tiddler listing in the sidebar

after Operator

 3rd February 2015 at 6:32pm
purposefind which input title follows a specified one
inputa selection of titles
parameterT=one of those titles
outputthe title that immediately follows T in the input

Learn more about how to use Filters

If T is not present in the input, or is the last title there, then the output is empty.

Examples

after Operator (Examples)

 18th January 2015 at 6:31pm

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]after[Monday]]

[list[Days of the Week]after[Sunday]]

AlertMechanism

 6th June 2016 at 12:59pm

Alerts are displayed as yellow boxes overlaying the main TiddlyWiki window. Each one corresponds to a tiddler with the tag $:/tags/Alert. Clicking the delete icon on an alert deletes the corresponding tiddler.

Here's a demo .

Alert tiddlers should have the following fields:

FieldDescription
titleBy default, alert titles have the prefix $:/temp/alerts/
textThe text of the alert message
modifiedDate of the alert (used for ordering the alerts on screen)
componentComponent name associated with the alert
tagsMust include $:/tags/Alert

Alice in Wonderland

 

All Filter Run Prefix

 11th July 2023 at 8:46am
purposeunion of sets without de-duplication
inputall titles from previous filter runs
outputoutput titles are appended to the output of previous filter runs without de-duplication.
Introduced in v5.1.23
:allrun

This prefix has an optional shortcut syntax symbol =run

all Operator

 21st March 2023 at 1:14pm
purposefind all titles of a fundamental category
inputignored, unless the parameter is empty
parameterzero or more categories
outputthe titles that belong to all the specified categories

Learn more about how to use Filters

The parameter specifies zero or more fundamental categories using the following filter step syntax:

all[<{missingcurrentorphansshadowstagstiddlers+]>}
CategoryMembersSorted
currentjust the current tiddler
missingall non-existent tiddlers to which there is at least one hard linkno
orphansall tiddlers to which there are no hard linksby title
shadowsall the shadow tiddlers that exist, including any that have been overridden with non-shadow tiddlersno
tagsall the tags in use on non-shadow tiddlersno
tiddlersall the non-shadow tiddlers that existno

If the parameter specifies more than one category, they are processed from left to right. The overall output is initially empty, and each category's output is dominantly appended to it in turn. Unrecognised categories contribute nothing to the output.

As a special case, if the parameter is empty, the output is simply a copy of the input. This can be useful when the parameter is a soft parameter.

The is operator is similar, but its scope is restricted to its input.

Examples

all Operator (Examples)

 18th January 2015 at 6:31pm

[all[shadows]]

[all[shadows+tiddlers]]

[all[tiddlers+shadows]]

[all[orphans+missing+current]]

[all[current]]

[all[current]tag[Operator Examples]]

[all[current]tag[Recipes]]

Monday Thursday +[all[]]

allafter Operator

 8th November 2015 at 5:15am
purposediscard all items except those after the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker=the list item to be used as a marker
outputall items after the marker

Learn more about how to use Filters

allafter Operator (Examples)

 8th November 2015 at 8:05am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[allafter[Wednesday]]

[list[Days of the Week]] +[allafter:include[Wednesday]]

allbefore Operator

 8th November 2015 at 5:15am
purposediscard all items except those before the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker=the list item to be used as a marker
outputall items before the marker

Learn more about how to use Filters

allbefore Operator (Examples)

 8th November 2015 at 5:14am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]allbefore[Wednesday]]

[list[Days of the Week]allbefore:include[Wednesday]]

A B C D E +[allbefore:include[C]count[]]

AllTiddlers

 25th February 2014 at 9:19pm

Current tiddlers:

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
"A Thesis Notebook" by Alberto Molina
"ATWiki" by Lamusia Project
"BJTools" by buggyj
"BrainTest - tools for a digital brain" by Danielo Rodriguez
"Cardo - Task and Project Management Wiki" by David Szego
"CouchDB Adaptor" by William Shallum
"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond
"Dracula - a dark palette for TiddlyWiki" by SlyBouhafs & zenorocha
"Drift - Collect, Organise, Grow." by Tony K
"Dropboard" by Reid Gould
"Dynamic Tables" by Jed Carty
"Encrypt single tiddler plugin" by Danielo Rodriguez
"file-backups" Extension for Firefox by pmario
"Filter Examples" by Tobias Beer
"Font Awesome 5 Free SVGs for TiddlyWiki" by morosanuae
"Ghostwriter theme by Rory Gibson" adapted for TW5 by Riz
"Gospel Bubbles" by Rev. David Gifford
"Grok TiddlyWiki" by Soren Bjornstad
"GSD5" by Roma Hicks
"Hacks" by Thomas Elmiger
"Heeg.ru" by sini-Kit
"In My Socks" by Jed Carty
"JD Mobile Layout plugin" by JD
"JD's palettes" by JD
"Lucky Sushi" online shop by sini-Kit
"Mal's Sandbox" by Mal
"MathCell" by Stephen Kimmel
"Microblogging con Tiddlywiki" by Juan
"Moments: A little color won't hurt" by Riz
"Mono theme" by JD
"muritest" by Simon Huber
"Notebook theme" by Nicolas Petton
"Noteself" by Danielo Rodríguez
"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag
"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger
"Reveal.js" by Devin Weaver
"savetiddlers" Extension for Chrome and Firefox by buggyj
"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson
"Shining Ark Using TiddlyWiki" by Helu
"SK Plugins" by Stephen Kimmel
"Slides and Stories" by Jan
"Stroll - a Roam-like experience" by David Gifford
"TB5 - a pocket full of tips" by Tobias Beer
"Tekan: Kanban that stays with you" by Riz
"TiddlyServer" by Matt Lauber
"TiddlyStudy" by Kebi
"TiddlyWiki 5 im Betatest" by besim
"TiddlyWiki for Scholars" by Alberto Molina
"TiddlyWiki guide FR" by Sylvain Naudin
"TiddlyWiki Knowledge Network" by Dmitry Sokolov
"TiddlyWiki Notes" by James Anderson
"TiddlyWiki Posts" by Jeffrey Kishner
"TiddlyWiki Toolmap" by David Gifford
"TiddlyWiki 舞" by Bram Chen
"TiddlyWiki" by Sander de Boer
"TiddlyWiki5 Bourbon" by mkt_memory
"TiddlyWiki5 Forum on Reddit" by Riz
"TiddlyWiki5 Playground" by Ton Gerner
"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos
"TW Icons" by morosanuae
"TW5 Magick" by Stephan Hradek
"TW5 Tribal Knowledge" from Scott Kingery
"TW5-TeXZilla" plugin by Joe Renes
"TWeb.at" by Mario Pietsch
"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond
"Whitespace, a negative-spacious, webapp-nostalgic theme" by JD
"Wikilabs" by PMario
"Wills Q&D gTD" by Matabele
"X3DOM for TiddlyWiki 5" by Jamal Wills
"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift
A Gentle Guide to TiddlyWiki
About
abs Operator
abs Operator (Examples)
Ace Editor Plugin by Joerg Plewe
Acknowledgements
acos Operator
acos Operator (Examples)
ActionConfirmWidget
ActionCreateTiddlerWidget
ActionCreateTiddlerWidget Example
ActionCreateTiddlerWidget Example 1
ActionCreateTiddlerWidget Example 2
ActionCreateTiddlerWidget Example 3
ActionCreateTiddlerWidget Example 4
ActionCreateTiddlerWidget Example 5
ActionCreateTiddlerWidget Template
ActionDeleteFieldWidget
ActionDeleteTiddlerWidget
ActionListopsWidget
ActionListopsWidget (Examples)
ActionLogWidget
ActionNavigateWidget
ActionPopupWidget
ActionSendMessageWidget
ActionSetFieldWidget
ActionSetMultipleFieldsWidget
actionTiddler Variable
ActionWidget Execution Modes
ActionWidgets
add Operator
add Operator (Examples)
Adding a table of contents to the sidebar
Adding a Twitter Follow button
addprefix Operator
addprefix Operator (Examples)
addsuffix Operator
addsuffix Operator (Examples)
Adopt a Titles Policy
after Operator
after Operator (Examples)
AlertMechanism
Alice in Wonderland
All Filter Run Prefix
all Operator
all Operator (Examples)
allafter Operator
allafter Operator (Examples)
allbefore Operator
allbefore Operator (Examples)
AllTiddlers
AlphaReleases
Alternative page layouts
Amazon Web Services Plugin
Anchor Links using HTML
And Filter Run Prefix
append Operator
append Operator (Examples)
Apple
applypatches Operator
Articles
asin Operator
asin Operator (Examples)
atan Operator
atan Operator (Examples)
atan2 Operator
atan2 Operator (Examples)
Attribute Selectors
Audio
AutoSave
average Operator
average Operator (Examples)
backlinks Operator
backlinks Operator (Examples)
backtranscludes Operator
backtranscludes Operator (Examples)
Bags and Recipes
Base64
before Operator
before Operator (Examples)
Behaviour of invoked variables depends on how the variable was declared
Behaviour of variables invoked via filter expression function call
Behaviour of variables invoked via filter operator parameter
Behaviour of variables invoked via normal wikitext
Behaviour of variables invoked via widget attributes
BetaReleases
bf Operator
Block Mode WikiText
Block Mode WikiText (Examples)
Block Quotes in WikiText
Blog Edition
Blurry Lawn.jpg
Brackets
Brownies
BrowserCompatibility
BrowserStorage Plugin
BrowseWidget
BT
BuildCommand
Building TiddlyWikiClassic
butfirst Operator
butlast Operator
butlast Operator (Examples)
ButtonWidget
CamelCase
Caruso - Ave Maria
Cascade Filter Run Prefix
Cascade Filter Run Prefix (Examples)
Cascades
Cascading Style Sheets
ceil Operator
ceil Operator (Examples)
changecount Macro
changecount Macro (Examples)
Changes to filters in 5.0.9-beta
charcode Operator
charcode Operator (Examples)
CheckboxWidget
CheckboxWidget (field Mode)
CheckboxWidget (filter Mode)
CheckboxWidget (indeterminate)
CheckboxWidget (index Mode)
CheckboxWidget (listField Mode)
CheckboxWidget (listIndex Mode)
CheckboxWidget (tag Mode)
Chick Peas
Chinese (Simplified) Edition
Chinese (Traditional) Edition
ClearPasswordCommand
Code Blocks in WikiText
Code styles and auto format settings for IDEs
CodeBlockWidget
CodeMirror Plugin
colour Macro
colour Macro (Examples)
colour-picker Macro
colour-picker Macro (Example 1)
colour-picker Macro (Examples)
ColourPalettes
Comma-Separated Values
Commands
commands Operator
commands Operator (Examples)
CommandsCommand
Community
Community Editions
Community Links Aggregator
Community Palettes
Community Plugins
Community Themes
compare Operator
compare Operator (Examples)
Compose ballad
CompoundTiddlers
Concatenating text and variables using macro substitution
Concepts
Conditional Operators
Conditional Shortcut Syntax
Configuring startup tiddlers
Configuring the default TiddlerInfo tab
Consent Banner Plugin
Constructing JSON tiddlers
contains Operator
contains Operator (Examples)
Contents
ContentType
contrastcolour Macro
Contributing
ContributingTemplate
Contributor License Agreement
Contributors
Coordinate Systems
copy-to-clipboard Macro
copy-to-clipboard Macro (Examples)
Copying tiddlers between TiddlyWiki files
Core Classes
Core Functions
Core Icons
Core Macros
Core Messages
Core Procedures
Core Variables
Core Widgets
cos Operator
cos Operator (Examples)
count Operator
count Operator (Examples)
CountWidget
Creating a custom export format
Creating a splash screen
Creating and editing tiddlers
Creating journal tiddlers
Creating new toolbar buttons
Creating SubStories
csvtiddlers Macro
Current Tiddler
currentTab Variable
currentTiddler Variable
currentTiddler Variable (Examples)
Custom data-styles
Custom styles by data-tags
Custom styles by data-tiddler-title
Custom styles by user-class
Custom Styles FAQ
Custom tag pill styles
Custom Widgets
Customise TiddlyWiki
Customising search results
Customising Tiddler File Naming
Customising TiddlyWiki's user interface
Customizing EditTemplate field rendering
cycle Operator
cycle Operator (Examples)
D3 Plugin
Dashes in WikiText
Data URI
DataTiddlers
datauri Macro
datauri Macro (Examples)
DataWidget
Date Fields
DateFormat
datepicker plugin based on Pikaday, by kixam
Days of the Week
days Operator
days Operator (Examples)
Debugging Stylesheets
decodebase64 Operator
decodehtml Operator
decodehtml Operator (Examples)
decodeuri Operator
decodeuri Operator (Examples)
decodeuricomponent Operator
decodeuricomponent Operator (Examples)
DefaultTiddlers
Definitions
Definitions in WikiText
DeleteTiddlersCommand
Demo Tiddler List with Custom Story Tiddler Template
Demonstration: keyboard-driven-input Macro
Deprecated - What does it mean
deserialize Operator
deserialize Operator (Examples)
Deserializers
deserializers Operator
deserializers Operator (Examples)
Deutsch (Deutschland) Edition
Deutsch (Österreich) Edition
Developers
DictionaryTiddlers
DiffTextWidget
Disabling Plugins
Discover TiddlyWiki
Disqus comments plugin by bimlas
divide Operator
divide Operator (Examples)
Document Object Model
Documentation Macros
Documentation Style Guide
Dominant Append
done
DraftMechanism
Drag and Drop
DragAndDropMechanism
DraggableWidget
DroppableWidget
DropzoneWidget
dumpvariables Macro
dumpvariables Macro (Examples)
duplicateslugs Operator
Dynaview Plugin
each Operator
each Operator (Examples)
eachday Operator
eachday Operator (Examples)
Edición en Castellano
Edit Template Body Cascade
EditBitmapWidget
Editing Tiddlers with Emacs
Editing Tiddlers with Vim
Édition en Français (France)
editiondescription Operator
Editions
editions Operator
EditionsCommand
Editor toolbar
EditTextWidget
EditWidget
Else Filter Run Prefix
else Operator
else Operator (Examples)
Emergency Tiddler Export
Empty Edition
encodebase64 Operator
encodehtml Operator
encodehtml Operator (Examples)
encodeuri Operator
encodeuri Operator (Examples)
encodeuricomponent Operator
encodeuricomponent Operator (Examples)
Encryption
EncryptWidget
enlist Operator
enlist Operator (Examples)
enlist-input Operator
enlist-input Operator (Examples)
EntityWidget
Environment Variables on Node.js
ErrorWidget
escapecss Operator
escapecss Operator (Examples)
escaperegexp Operator
escaperegexp Operator (Examples)
Eucaly's Tiddly World
EventCatcherWidget
Example config-tiddlyweb-host for IIS
Example for tag Macro
Example package.json for IIS
Example Table of Contents: Expandable
Example Table of Contents: Selectively Expandable
Example Table of Contents: Selectively Expandable (custom icons)
Example Table of Contents: Simple
Example Table of Contents: Sorted Expandable
Example Table of Contents: Tabbed External
Example Table of Contents: Tabbed Internal
Example tiddlywiki.info for IIS
Example web.config for IIS
Examples
Except Filter Run Prefix
exponential Operator
exponential Operator (Examples)
Extended Listops Filters
External Attachments Plugin
ExternalImages
Favicon template.svg
Favorites by Mohammad
Features
FetchCommand
Field Editor Cascade
field Operator
field Operator (Examples)
FieldMangler Widget (Examples)
FieldManglerWidget
fields Operator
fields Operator (Examples)
FieldsWidget
FillWidget
Filter Expression
Filter Filter Run Prefix
Filter Filter Run Prefix (Examples)
filter Operator
filter Operator (Examples)
Filter Operators
Filter Parameter
Filter Run
Filter Run Prefix
Filter Run Prefix (Examples)
Filter Step
Filter Syntax
Filter Whitespace
Filtered Attribute Values
Filters
First
first Operator
first Operator (Examples)
FirstOne
FirstThree
FirstTwo
fixed Operator
fixed Operator (Examples)
floor Operator
floor Operator (Examples)
format Operator
format Operator (Examples)
Formatting in WikiText
Formatting List Results as Tables (no CSS)
Formatting List Results as Tables with CSS - Specified Columns Methods
Formatting List Results as Tables with CSS - Variable Column Method
Formatting text in TiddlyWiki
Forums
Fourth
Free Spaced Repetition Scheduler for TiddlyWiki by oflg
Friday
Full Edition
Full Text Search Plugin by Rob Hoelz
function Operator
Functions
Funding TiddlyWiki
Funding.png
Future Proof
Generating Static Sites with TiddlyWiki
GenesisWidget
get Operator
get Operator (Examples)
Get the Ring
getindex Operator
getindex Operator (Examples)
Getting Started Video
GettingStarted
GettingStarted - Android
GettingStarted - Chrome
GettingStarted - Firefox
GettingStarted - Internet Explorer
GettingStarted - iOS
GettingStarted - Node.js
GettingStarted - Online
GettingStarted - Safari
getvariable Operator
getvariable Operator (Examples)
Git
GitHub
GitHub Saver Tutorial by Mohammad
GitLab
Go to Mordor
Grok TiddlyWiki Banner
GroupedLists
GuerillaWiki
Hamlet
Hard and Soft Links
Hard and Soft Transclusions
Hard Linebreaks in WikiText
Hard Linebreaks with CSS
Hard Linebreaks with CSS - Example
has Operator
has Operator (Examples)
haschanged Operator
Headings in WikiText
Height of text editor
HelloThere
HelloThumbnail
HelloThumbnail - Funding
HelloThumbnail - Grok TiddlyWiki
HelloThumbnail - Intertwingled Innovations
HelloThumbnail - Introduction Video
HelloThumbnail - Latest Version
HelloThumbnail - Marketplace
HelloThumbnail - Newsletter
HelloThumbnail - TiddlyWikiLinks
HelloThumbnail - Twenty Years of TiddlyWiki
HelpCommand
HelpingTiddlyWiki
Hidden Setting: Content to be displayed for empty story
Hidden Setting: Default Tiddler Colour
Hidden Setting: Default Tiddler Icon
Hidden Setting: Disable Drag and Drop
Hidden Setting: Disable Lazy Loading
Hidden Setting: Enable File Import in Editor
Hidden Setting: Filename for Save Wiki Button
Hidden Setting: HTML Parser Sandbox
Hidden Setting: More Tabs Horizontal
Hidden Setting: Navigate on Enter
Hidden Setting: New-Image Type
Hidden Setting: Retain Story ordering
Hidden Setting: Scroll Top Adjustment
Hidden Setting: Search AutoFocus
Hidden Setting: Search Minimum Length
Hidden Setting: Show Edit Preview per Tiddler
Hidden Setting: Sync Logging
Hidden Setting: Sync Polling Interval
Hidden Setting: Sync System Tiddlers From Server
Hidden Setting: Tab Index for Edit-Inputs
Hidden Setting: Tags Minimum Length
Hidden Setting: Template for Save Wiki Button
Hidden Setting: Typing Refresh Delay
Hidden Setting: ViewTemplate and EditTemplate
Hidden Settings
Hidden Settings: Import Content Types for Editor
Highlight Plugin
History of TiddlyWiki
HistoryMechanism
Horizontal Rules in WikiText
How to add a banner for GitHub contributions
How to add a new tab to the sidebar
How to apply custom styles
How to apply custom styles by tag
How to build a TiddlyWiki5 from individual tiddlers
How to change the sort order of sub-branches in a TOC macro
How to create a custom story tiddler template
How to create a custom tiddler colour rule
How to create a custom tiddler icon rule
How to create dynamic editor toolbar buttons
How to create keyboard shortcuts
How to Customize TiddlyDesktop
How to embed PDF and other documents
How to export tiddlers
How to hide the author's and other fields with CSS
How to put the last modification date in a banner
How to remove stop words
How to turn off camel case linking
How to update TiddlyWiki to the latest version
How to widen tiddlers (aka storyriver)
HTML Block Elements
HTML Entities
HTML in WikiText
HTML Links in WikiText
HyperText Markup Language
Icon Gallery
image-picker Macro
image-picker Macro (Example 1)
image-picker Macro (Example 2)
image-picker Macro (Examples)
ImageGallery Example
Images in WikiText
ImageWidget
ImportCommand
Importing Tiddlers
ImportVariablesWidget
Improving TiddlyWiki Documentation
IndexedDB Plugin by Andreas Abeck
indexes Operator
indexes Operator (Examples)
InfoMechanism
InfoPanel
InitCommand
Inline Mode WikiText
Innerwiki Plugin
Insert link
Insert picture
insertafter Operator
insertafter Operator (Examples)
insertbefore Operator
insertbefore Operator (Examples)
Installing a plugin from the plugin library
Installing custom plugins on Node.js
Installing official plugins on Node.js
Installing TiddlyWiki on Microsoft Internet Information Server
Installing TiddlyWiki on Node.js
Installing TiddlyWiki Prerelease on Node.js
Instruction Tiddlers
Interactive Git Documentation by Devin Weaver
Interchangeable Filter Run Prefixes
Intersection Filter Run Prefix
Intersection Filter Run Prefix (Examples)
Intertwingled Innovations
Intertwingled Innovations.png
Introducing TiddlyDesktop Video
Introduction to filter notation
Introduction to Lists
Introduction Video
Introduction Video Thumbnail.jpg
is Operator
is Operator (Examples)
Japanese (Japan) Edition
JavaScript
JavaScript Object Notation
JeremyRuston
Jermolene
join Operator
join Operator (Examples)
JSON in TiddlyWiki
Json Mangler plugin by Joshua Fontany
jsonextract Operator
jsonget Operator
jsonindexes Operator
jsonset Operator
jsonset Operator (Examples)
jsonstringify Operator
jsonstringify Operator (Examples)
jsontiddler Macro
JSONTiddlers
jsontiddlers Macro
JSONTiddlerWidget
jsontype Operator
JSZip Plugin
KaTeX Plugin
kdi-demo-configtid
Keyboard Codes
Keyboard Shortcut Descriptor
Keyboard Shortcut Tiddler
keyboard-driven-input Macro
KeyboardShortcuts
KeyboardWidget
Kill the Dragon
Kin filter operator by bimlas
Kookma Plugin Library by Mohammad
Korean (Korea Republic) Edition
Language Icon: ca-ES
Language Icon: cs-CZ
Language Icon: da-DK
Language Icon: de-AT
Language Icon: de-DE
Language Icon: el-GR
Language Icon: en-US
Language Icon: es-ES
Language Icon: fr-FR
Language Icon: hi-IN
Language Icon: ia-IA
Language Icon: it-IT
Language Icon: ja-JP
Language Icon: ko-KR
Language Icon: nl-NL
Language Icon: pa-IN
Language Icon: pt-PT
Language Icon: ru-RU
Language Icon: sk-SK
Language Icon: sv-SE
Language Icon: zh-Hans
Language Icon: zh-Hant
LanguageGallery Example
Languages
last Operator
last Operator (Examples)
Latest
LazyLoading
Leaflet maps plugin by Sylvain Comte
Learning
Legacy
length Operator
length Operator (Examples)
LetWidget
levenshtein Operator
levenshtein Operator (Examples)
License
limit Operator
limit Operator (Examples)
lingo Macro
lingo Macro (Examples)
LinkCatcherWidget
Linking in WikiText
links Operator
links Operator (Examples)
LinkWidget
list Operator
list Operator (Examples)
list-links Macro
list-links Macro (Examples)
list-links-draggable Macro
list-links-draggable Macro (Examples)
list-tagged-draggable Macro
list-tagged-draggable Macro (Examples)
list-thumbnails Macro
list-thumbnails Macro (Examples)
listed Operator
listed Operator (Examples)
ListenCommand
ListField
ListopsData
Lists in WikiText
ListWidget
Literal Attribute Values
LoadCommand
Locator plugin by bimlas
log Operator
log Operator (Examples)
LogWidget
lookup Operator
lookup Operator (Examples)
lowercase Operator
lowercase Operator (Examples)
Macro Call Syntax
Macro Calls
Macro Calls in WikiText
Macro Calls in WikiText (Examples)
Macro Definition Syntax
Macro Definitions
Macro Definitions in WikiText
Macro Parameter Handling
Macro Pitfalls
Macro Syntax
MacroCallWidget
Macros
Macros in WikiText
Make the beds
makedatauri Macro
makedatauri Macro (Examples)
MakeLibraryCommand
makepatches and applypatches Operator (Examples)
makepatches Operator
Making a custom journal button
Making curved text with SVG
Manually installing a plugin
Map Filter Run Prefix
Map Filter Run Prefix (Examples)
Markdown
Markdown Plugin
match Operator
match Operator (Examples)
Mathematics Operators
MathJax Plugin by Martin Kantor
MathML
max Operator
max Operator (Examples)
maxall Operator
maxall Operator (Examples)
Mechanisms
median Operator
median Operator (Examples)
Meetups
MessageCatcherWidget
MessageHandlerWidgets
Messages
Milk
min Operator
min Operator (Examples)
minall Operator
minall Operator (Examples)
minlength Operator
minlength Operator (Examples)
Mobile Drag And Drop Shim Plugin
Modals
modifier Variable
Modifying JSON tiddlers
moduleproperty Operator
moduleproperty Operator (Examples)
Modules
modules Operator
modules Operator (Examples)
ModuleType
moduletypes Operator
moduletypes Operator (Examples)
Monday
More actions
Motovun Jack.ascii
Motovun Jack.jpg
Motovun Jack.pdf
Motovun Jack.svg
move Operator
move Operator (Examples)
multiply Operator
multiply Operator (Examples)
MultiTiddlerFiles
MultiTiddlerFileSyntax
Named Filter Run Prefix
NamedCommandParameters
namespace Variable
Naming of System Tiddlers
Navigating between open tiddlers
NavigatorWidget
negate Operator
negate Operator (Examples)
New Release Banner
Newnham Horizon.jpg
next Operator
next Operator (Examples)
node-webkit
Node.js
Notes for upgrading to 5.0.11-beta
Notes for upgrading to 5.0.8-beta
Notifications
now Macro
now Macro (Examples)
nsort Operator
nsort Operator (Examples)
nsortcs Operator
nsortcs Operator (Examples)
nth Operator
nth Operator (Examples)
NW.js
OfficialPlugins
Open Collective
Open Collective Logo
OpenSource
Operators without parameters
Or Filter Run Prefix
Order of Tagged Tiddlers
order Operator
Osmosoft
Other Resources
OutputCommand
OXTWIG
pad Operator
pad Operator (Examples)
Paragraphs in WikiText
ParametersWidget
ParametersWidget (Examples)
PasswordCommand
PasswordWidget
Percent Encoding
Performance
Performance Instrumentation
PerlinLight.jpg
PermaLinks
PESpot Lesson Planner by Patrick Detzner
Philosophy of Tiddlers
Pinstripe.gif
Places where the parser ignores WikiText
Platforms
Plugin Dependencies
Plugin Editions
Plugin Fields
Plugin Information Tiddlers
Plugin Ordering
Plugin Stability
Plugin Types
PluginFolders
PluginMechanism
Plugins
Plugins by TheDiveO
PluginsCS
plugintiddlers Operator
plugintiddlers Operator (Examples)
PopupMechanism
power Operator
power Operator (Examples)
Pragma
Pragma: \define
Pragma: \function
Pragma: \import
Pragma: \parameters
Pragma: \parsermode
Pragma: \procedure
Pragma: \rules
Pragma: \whitespace
Pragma: \widget
Pragmas
precision Operator
precision Operator (Examples)
prefix Operator
prefix Operator (Examples)
prepend Operator
prepend Operator (Examples)
Preserving open tiddlers at startup
previous Operator
previous Operator (Examples)
Procedure Call Syntax
Procedure Calls
Procedure Definition Syntax
Procedure Definitions
Procedure Parameter Handling
Procedure Syntax
Procedures
Product Hunt Link
product Operator
product Operator (Examples)
ProductHunt-Badge.svg
Projectify by Nicolas Petton
putafter Operator
putafter Operator (Examples)
putbefore Operator
putbefore Operator (Examples)
putfirst Operator
putfirst Operator (Examples)
putlast Operator
putlast Operator (Examples)
Q: How can I style a tiddler if it has "this" AND "that" tag?
Q: How can I style a tiddler if it has "this" OR "that" tag?
Q: How can I use a custom field to style a tiddler?
Q: Is there a way to create dynamic stylesheets?
Q: What if a tiddler has no tags?
qualify Macro
qualify Macro (Examples)
QualifyWidget
Quick Start
Quick Start: Desktop
Quick Start: DIY
Quick Start: Tiddlyhost
Quick Start: Xememex
Quine
RadioWidget
RadioWidget Example
RadioWidget ExampleTemplate
Railroad Diagrams
Railroad Plugin
range Operator
RangeWidget
RangeWidget Example
rboue's plugins for TiddlyWiki
Reading data from JSON tiddlers
ReadMe
ReadMeBinFolder
Reddit Logo
Reduce Filter Run Prefix
Reduce Filter Run Prefix (Examples)
reduce Operator
reduce Operator (Examples)
Reference
Reference Tiddlers
Refnotes by Mohammad
RefreshMechanism
RefreshThrottling
RegExp in Tiddlywiki by Mohammad
regexp Operator
regexp Operator (Examples)
Release 5.0.0-alpha.11
Release 5.0.0-alpha.12
Release 5.0.0-alpha.13
Release 5.0.0-alpha.14
Release 5.0.0-alpha.15
Release 5.0.0-alpha.16
Release 5.0.0-alpha.17
Release 5.0.1-alpha
Release 5.0.10-beta
Release 5.0.11-beta
Release 5.0.12-beta
Release 5.0.13-beta
Release 5.0.14-beta
Release 5.0.15-beta
Release 5.0.16-beta
Release 5.0.17-beta
Release 5.0.18-beta
Release 5.0.2-beta
Release 5.0.3-beta
Release 5.0.4-beta
Release 5.0.5-beta
Release 5.0.6-beta
Release 5.0.7-beta
Release 5.0.8-beta
Release 5.0.9-beta
Release 5.1.0
Release 5.1.1
Release 5.1.10
Release 5.1.11
Release 5.1.12
Release 5.1.13
Release 5.1.14
Release 5.1.15
Release 5.1.16
Release 5.1.17
Release 5.1.18
Release 5.1.19
Release 5.1.2
Release 5.1.20
Release 5.1.21
Release 5.1.22
Release 5.1.23
Release 5.1.3
Release 5.1.4
Release 5.1.5
Release 5.1.6
Release 5.1.7
Release 5.1.8
Release 5.1.9
Release 5.2.0
Release 5.2.1
Release 5.2.2
Release 5.2.3
Release 5.2.4
Release 5.2.5
Release 5.2.6
Release 5.2.7
Release 5.3.0
Release 5.3.1
Release 5.3.2
Release 5.3.3
Release 5.3.4
Release 5.3.5
Releases
ReleaseTemplate
remainder Operator
remainder Operator (Examples)
remove Operator
remove Operator (Examples)
removeprefix Operator
removeprefix Operator (Examples)
removesuffix Operator
removesuffix Operator (Examples)
RenderCommand
RenderTiddlerCommand
RenderTiddlersCommand
replace Operator
replace Operator (Examples)
ReportingBugs
resolvepath Macro
resolvepath Macro (Examples)
rest Operator
rest Operator (Examples)
Résumé Builder Edition
RevealWidget
reverse Operator
reverse Operator (Examples)
Rice Pudding
RoadMap
round Operator
round Operator (Examples)
SafeMode
sameday Operator
sameday Operator (Examples)
Sample Headings 1,2,3
Sample Headings 3,4,5
Sample Headings 4,5,6
Sample Tiddler Template
SampleModal
SampleNotification
SampleTabFour
SampleTabOne
SampleTabThree
SampleTabTwo
sampletag1
sampletag2
SampleTemplate
SampleTiddlerFirst
SampleTiddlerSecond
SampleTiddlerThird
SampleWindowTemplate
SampleWizard
SampleWizard2
Saturday
SaveCommand
SaveTiddlerCommand
SaveTiddlersCommand
SaveTrail Plugin
SaveWikiFolderCommand
Saving
Saving on a PHP Server
Saving on Android
Saving on Browser with File System Access API
Saving on Browser with TiddlyStow
Saving on iPad/iPhone
Saving on TiddlyDesktop
Saving on TiddlyHost
Saving on TiddlySpot
Saving on TidGi Desktop
Saving to a Git service
Saving via a Minimal Ruby Server
Saving via a Minimal Web Server
Saving via WebDAV
Saving with FireFox
Saving with Polly
Saving with the HTML5 saver
Saving with TiddlyFox
Saving with TiddlyFox on Android
Saving with TiddlyIE
Saving with TW Receiver
SavingMechanism
Scalability
Scripts for TiddlyWiki on Node.js
ScrollableWidget
search Operator
search Operator (Examples)
search-replace Operator
search-replace Operator (Examples)
Searching in TiddlyWiki
Searchwikis by Mohammad
Second
SecondOne
SecondThree
SecondThreeOne
SecondThreeThree
SecondThreeTwo
SecondTwo
SeeAlso by Matias Goldman
Selection Constructors
Selection Constructors: Conditional
SelectWidget
Semantic Colors by Mohammad
sentencecase Operator
sentencecase Operator (Examples)
ServerCommand
Serving TW5 from Android
SetFieldCommand
SetMultipleVariablesWidget
Setting a favicon
Setting a page background image
SetVariableWidget
SetWidget
sha256 Operator
sha256 Operator (Examples)
shadowsource Operator
shadowsource Operator (Examples)
ShadowTiddlers
Share Plugin
Sharing a TiddlyWiki on Dropbox
Sharing your tiddlers with others
Shiraz by Mohammad
Shortcut Filter Run Prefix
sign Operator
sign Operator (Examples)
Signing the Contributor License Agreement
Simple ways to write protect tiddlers
Simple Zork-like Game by Jed Carty
sin Operator
sin Operator (Examples)
SingleFileApplication
SinglePageApplication
Slider by Mohammad
SlotWidget
slugify Operator
Some of the things you can do with TiddlyWiki
Sort Filter Run Prefix
Sort Filter Run Prefix (Examples)
sort Operator
sort Operator (Examples)
sortan Operator
sortan Operator (Examples)
sortby Operator
sortby Operator (Examples)
sortcs Operator
sortcs Operator (Examples)
sortsub Operator
sortsub Operator (Examples)
Spelling
split Operator
split Operator (Examples)
splitbefore Operator
splitbefore Operator (Examples)
splitregexp Operator
splitregexp Operator (Examples)
standard-deviation Operator
standard-deviation Operator (Examples)
Stanford JavaScript Crypto Library
StartupActions
StateMechanism
Story River
Story Tiddler Template
Story Tiddler Template Cascade
storyTiddler Variable
storyTiddler Variable (Examples)
storyviews Operator
storyviews Operator (Examples)
String Operators
stringify Operator
stringify Operator (Examples)
Structuring TiddlyWiki
Styles and Classes in WikiText
Stylesheet Macros
subfilter Operator
subfilter Operator (Examples)
substitute Operator
substitute Operator (Examples)
Substituted Attribute Values
subtiddlerfields Operator
subtiddlerfields Operator (Examples)
subtract Operator
subtract Operator (Examples)
suffix Operator
suffix Operator (Examples)
sum Operator
sum Operator (Examples)
Sunday
SystemTag: $:/tags/AboveStory
SystemTag: $:/tags/AdvancedSearch
SystemTag: $:/tags/AdvancedSearch/FilterButton
SystemTag: $:/tags/Alert
SystemTag: $:/tags/BelowStory
SystemTag: $:/tags/ClassFilters/PageTemplate
SystemTag: $:/tags/ClassFilters/TiddlerTemplate
SystemTag: $:/tags/ControlPanel
SystemTag: $:/tags/ControlPanel/Advanced
SystemTag: $:/tags/ControlPanel/Appearance
SystemTag: $:/tags/ControlPanel/Info
SystemTag: $:/tags/ControlPanel/Plugins
SystemTag: $:/tags/ControlPanel/Saving
SystemTag: $:/tags/ControlPanel/Settings
SystemTag: $:/tags/ControlPanel/SettingsTab
SystemTag: $:/tags/ControlPanel/Toolbars
SystemTag: $:/tags/EditorToolbar
SystemTag: $:/tags/EditorTools
SystemTag: $:/tags/EditPreview
SystemTag: $:/tags/EditTemplate
SystemTag: $:/tags/EditToolbar
SystemTag: $:/tags/Exporter
SystemTag: $:/tags/Filter
SystemTag: $:/tags/Global
SystemTag: $:/tags/Global/View
SystemTag: $:/tags/Global/View/Body
SystemTag: $:/tags/Image
SystemTag: $:/tags/ImportPreview
SystemTag: $:/tags/KeyboardShortcut
SystemTag: $:/tags/Layout
SystemTag: $:/tags/Macro
SystemTag: $:/tags/Macro/View
SystemTag: $:/tags/Macro/View/Body
SystemTag: $:/tags/Manager/ItemMain
SystemTag: $:/tags/Manager/ItemSidebar
SystemTag: $:/tags/MoreSideBar
SystemTag: $:/tags/MoreSideBar/Plugins
SystemTag: $:/tags/PageControls
SystemTag: $:/tags/PageTemplate
SystemTag: $:/tags/Palette
SystemTag: $:/tags/PluginLibrary
SystemTag: $:/tags/RawMarkup
SystemTag: $:/tags/RawMarkupWikified
SystemTag: $:/tags/RawMarkupWikified/BottomBody
SystemTag: $:/tags/RawMarkupWikified/TopBody
SystemTag: $:/tags/RawMarkupWikified/TopHead
SystemTag: $:/tags/RawStaticContent
SystemTag: $:/tags/RemoteAssetInfo
SystemTag: $:/tags/SearchResults
SystemTag: $:/tags/ServerConnection
SystemTag: $:/tags/SideBar
SystemTag: $:/tags/SideBarSegment
SystemTag: $:/tags/StartupAction
SystemTag: $:/tags/StartupAction/Browser
SystemTag: $:/tags/StartupAction/Node
SystemTag: $:/tags/Stylesheet
SystemTag: $:/tags/TagDropdown
SystemTag: $:/tags/TextEditor/Snippet
SystemTag: $:/tags/TiddlerInfo
SystemTag: $:/tags/TiddlerInfo/Advanced
SystemTag: $:/tags/TiddlerInfoSegment
SystemTag: $:/tags/ToolbarButtonStyle
SystemTag: $:/tags/TopLeftBar
SystemTag: $:/tags/TopRightBar
SystemTag: $:/tags/ViewTemplate
SystemTag: $:/tags/ViewTemplate/Subtitle
SystemTag: $:/tags/ViewToolbar
SystemTags
SystemTiddlers
TabbedExampleType
Table Classes, Captions, Headers and Footers
table-example
Table-of-Contents Macros
Table-of-Contents Macros (Examples)
TableOfContents
Tables in WikiText
Tables in WikiText CSS Utility Classes
tabs Macro
tabs Macro (Examples)
tag Macro
tag Macro (Examples)
tag Operator
tag Operator (Examples)
Tag Operators
tag-picker Macro
tag-picker Macro (Examples)
tag-pill Macro
tag-pill Macro (Examples)
Tagging
tagging Operator
tagging Operator (Examples)
tags Operator
tags Operator (Examples)
TagTiddlers
tan Operator
tan Operator (Examples)
task
TaskManagementExample
TaskManagementExample (Draggable)
TaskManagementExampleDraggableTemplate
Technical Prose Style
TemplateTiddlers
Temporary Tiddlers
Ten reasons to switch to TiddlyWiki
TestCases/DataWidget/FilterMissingTiddler
TestCases/DataWidget/ImportCompound
TestCases/DataWidget/ImportedFilter
TestCases/DataWidget/ImportedTiddler
TestCases/DataWidget/Refreshing
TestCases/DataWidget/SimpleTiddler
TestCases/HTML/BlockModeInHTMLTable
TestCases/HTML/OpenTagBlankLine
TestCases/HTML/OpenTagBlankLineInBoldSyntax
TestCases/HTML/OpenTagBlankLineInTableSyntax
TestCases/HTML/OpenTagNoBlankLine
TestCases/RevealWidget/AccordionSlider
TestCases/RevealWidget/Popup
TestCases/RevealWidget/SimpleReveal
TestCases/RevealWidget/TextReference
TestCases/TestCaseTiddler/currentTiddler
TestCases/TestCaseWidget/FailingTest
TestCases/TestCaseWidget/NoExpectedResults
TestCases/TestCaseWidget/TwoPlusTwo
TestCases/TranscludeWidget/SimpleTransclusion
TestCaseTiddlers
TestCaseWidget
Testimonials - Joe Armstrong
Testimonials - Network World
Testimonials - Product Hunt
Text preview
Text-Slicer Edition
TextReference
TextWidget
The Extended Listops Filters
The First Rule of Using TiddlyWiki
Then Filter Run Prefix
Then Filter Run Prefix (Examples)
then Operator
then Operator (Examples)
Third
ThirdOne
ThirdThree
ThirdTwo
thisTiddler Variable
thisTiddler Variable (Examples)
thumbnail Macro
thumbnail Macro (Examples)
Thursday
Tiddler Colour Cascade
Tiddler Commander by Mohammad
Tiddler Fishes.svg
Tiddler Icon Cascade
Tiddler Poster.png
Tiddler Structure
Tiddler Title Policy
TiddlerFields
TiddlerFiles
TiddlerLinks
Tiddlers
TiddlerWidget
TiddlyBucket - Save to AWS or Google Storage
TiddlyChrome by Arlen Beiler
TiddlyClip by buggyjay
TiddlyDesktop
TiddlyDesktop Releases
TiddlyDrive Add-on for Google Drive by Joshua Stubbs
TiddlyFox
TiddlyFox Apocalypse
TiddlyFox Apocalypse.png
Tiddlyhost
Tiddlyhost Logo
TiddlyIE
TiddlyMap Plugin by Felix Küppers
TiddlyPWA - Save to Browser Storage
TiddlyServer by Arlen Beiler
Tiddlyshow by Mohammad
TiddlySpace
TiddlyWeb
TiddlyWeb JSON tiddler format
TiddlyWebAdaptor
TiddlyWiki
TiddlyWiki Archive
TiddlyWiki Camp Paris
TiddlyWiki Classic.png
TiddlyWiki Cloud
TiddlyWiki Docs PR Maker
TiddlyWiki European Meetup 2016
TiddlyWiki European Meetup 2017
TiddlyWiki extensions for Sublime Text 3 by roma0104
TiddlyWiki extensions for ViM
TiddlyWiki Hangouts
TiddlyWiki in the Sky for TiddlyWeb
TiddlyWiki Marketplace
TiddlyWiki Marketplace Banner
TiddlyWiki Newsletter
TiddlyWiki Newsletter Badge.png
TiddlyWiki on Firefox for Android Video
TiddlyWiki on Node.js
TiddlyWiki Releases
TiddlyWiki Video Tutorials by Francis Meetze
tiddlywiki.files Files
tiddlywiki.info Files
TiddlyWiki.mp3
TiddlyWiki2ReadMe
TiddlyWiki5
TiddlyWiki5 Versioning
TiddlyWikiClassic
TiddlyWikiFolders
TiddlyWikiLinks
Tidme by oflg
timeline Macro
timeline Macro (Examples)
Timelines by Mohammad
Timimi: WebExtension and Native Host by Riz
Tinka by Andreas Hahn
Title List
title Operator
title Operator (Examples)
Title Selection
titlecase Operator
titlecase Operator (Examples)
Todolist by Mohammad
toggle Operator
toggle Operator (Examples)
Transcluded Attribute Values
transcludes Operator
transcludes Operator (Examples)
TranscludeWidget
Transclusion
Transclusion and Substitution
Transclusion Basic Usage
Transclusion in WikiText
transclusion Variable
transclusion Variable (Examples)
Transclusion with Templates
Translate TiddlyWiki into your language
TranslationMechanism
translink Macro
translink Macro (Examples)
Trashbin by Mohammad
tree Macro
tree Macro (Examples)
tree-macro-example-car
tree-macro-example-car-boot
tree-macro-example-car-boot-handle
tree-macro-example-car-boot-lock
tree-macro-example-car-roof
tree-macro-example-car-roof-aerial
tree-macro-example-car-roof-rails
tree-macro-example-house
tree-macro-example-house-attic
tree-macro-example-house-attic-roof
tree-macro-example-house-attic-window
tree-macro-example-house-garden
tree-macro-example-house-garden-lawn
tree-macro-example-house-garden-shed
tree-macro-example-house-kitchen
tree-macro-example-house-kitchen-sink
tree-macro-example-house-kitchen-table
tree-macro-example-house-kitchen-window
TriggeringWidgets
trim Operator
trim Operator (Examples)
TriTarget.org by Devin Weaver
trunc Operator
trunc Operator (Examples)
Tuesday
Tutorials
tv-adjust-heading-level Variable
tv-adjust-heading-level Variable (Examples)
tv-auto-open-on-import Variable
tv-config-static Variable
tv-config-toolbar-class Variable
tv-config-toolbar-class Variable (Examples)
tv-config-toolbar-icons Variable
tv-config-toolbar-icons Variable (Examples)
tv-config-toolbar-text Variable
tv-config-toolbar-text Variable (Examples)
tv-filter-export-link Variable
tv-get-export-image-link Variable
tv-get-export-image-link Variable (Examples)
tv-get-export-link Variable
tv-get-export-path Variable
tv-history-list Variable
tv-show-missing-links Variable
tv-story-list Variable
tv-tiddler-preview Variable
tv-wikilink-template Variable
tv-wikilink-tooltip Variable
tv-wikilink-tooltip Variable (Examples)
tv-wikilinks Variable
tv-wikilinks Variable (Examples)
TW-Scripts by Mohammad
TW2Parser Plugin
TW5-firebase: TiddlyWiki5 for Google Firebase by Peter Neumark
TW5-SingleExecutable by Jed Carty
TWaddle by Matias Goldman
TWCommunitySearch
Twenty Years of TiddlyWiki
TWEUM Thumbnail.jpg
Twexe: Single File Tiddlywiki5 executable
Twitter Plugin
twproxy by Steve Gattuso
Typed Blocks in WikiText
Typography
UnaMesa
Uninstalling a plugin
Uninstalling a plugin with Node.js
unique Operator
unique Operator (Examples)
UnpackPluginCommand
untagged Operator
untagged Operator (Examples)
untrunc Operator
untrunc Operator (Examples)
unusedtitle Macro
unusedtitle Macro (Examples 1)
unusedtitle Macro (Examples)
UpgradeMechanism
Upgrading
Upgrading TiddlyWiki on Node.js
uppercase Operator
uppercase Operator (Examples)
URI
Using a custom path prefix with the client-server edition
Using Excise
Using HTTPS
Using links to navigate between tiddlers
Using Stamp
Using Stylesheets
Using SVG
Using the external JavaScript template
Using the integrated static file server
Using the read-only single tiddler view
Using TiddlyWiki for GitHub project documentation
Using TiddlyWiki on Node.js
Utility by Mohammad
Utility Classes
Variable Attribute Values
Variable Usage
Variables
Variables in WikiText
variables Operator
variables Operator (Examples)
variance Operator
variance Operator (Examples)
VarsWidget
VerboseCommand
version Macro
version Macro (Examples)
VersionCommand
Videos
View Template Body Cascade
View Template Title Cascade
ViewWidget
vis.js Timeline by emkay, revived by kixam
Visible Transclusions
Web Developer Tools
WebServer
WebServer Anonymous Access
WebServer API
WebServer API: Delete Tiddler
WebServer API: Force Basic Authentication Login
WebServer API: Get All Tiddlers
WebServer API: Get Favicon
WebServer API: Get File
WebServer API: Get Rendered Tiddler
WebServer API: Get Server Status
WebServer API: Get Tiddler
WebServer API: Get Wiki
WebServer API: Put Tiddler
WebServer Authentication
WebServer Authorization
WebServer Basic Authentication
WebServer Guides
WebServer Header Authentication
WebServer Parameter: admin
WebServer Parameter: anon-username
WebServer Parameter: authenticated-user-header
WebServer Parameter: credentials
WebServer Parameter: csrf-disable
WebServer Parameter: debug-level
WebServer Parameter: host
WebServer Parameter: password
WebServer Parameter: path-prefix
WebServer Parameter: port
WebServer Parameter: readers
WebServer Parameter: required-plugins
WebServer Parameter: root-render-type
WebServer Parameter: root-serve-type
WebServer Parameter: root-tiddler
WebServer Parameter: system-tiddler-render-template
WebServer Parameter: system-tiddler-render-type
WebServer Parameter: tiddler-render-template
WebServer Parameter: tiddler-render-type
WebServer Parameter: tls-cert
WebServer Parameter: tls-key
WebServer Parameter: tls-passphrase
WebServer Parameter: use-browser-cache
WebServer Parameter: username
WebServer Parameter: writers
WebServer Parameters
Wednesday
What happened to the original TiddlyWiki?
Widdly by Opennota
Widget Attributes
Widget Documentation Style Guide
WidgetMessage: tm-add-field
WidgetMessage: tm-add-tag
WidgetMessage: tm-auto-save-wiki
WidgetMessage: tm-browser-refresh
WidgetMessage: tm-cancel-tiddler
WidgetMessage: tm-clear-password
WidgetMessage: tm-close-all-tiddlers
WidgetMessage: tm-close-all-windows
WidgetMessage: tm-close-other-tiddlers
WidgetMessage: tm-close-tiddler
WidgetMessage: tm-close-window
WidgetMessage: tm-copy-to-clipboard
WidgetMessage: tm-delete-tiddler
WidgetMessage: tm-download-file
WidgetMessage: tm-edit-bitmap-operation
WidgetMessage: tm-edit-text-operation
WidgetMessage: tm-edit-tiddler
WidgetMessage: tm-focus-selector
WidgetMessage: tm-fold-all-tiddlers
WidgetMessage: tm-fold-other-tiddlers
WidgetMessage: tm-fold-tiddler
WidgetMessage: tm-full-screen
WidgetMessage: tm-home
WidgetMessage: tm-http-cancel-all-requests
WidgetMessage: tm-http-request
WidgetMessage: tm-http-request Example - Basic Authentication
WidgetMessage: tm-http-request Example - Random Dog
WidgetMessage: tm-http-request Example - Zotero
WidgetMessage: tm-http-request Examples
WidgetMessage: tm-import-tiddlers
WidgetMessage: tm-load-plugin-from-library
WidgetMessage: tm-load-plugin-library
WidgetMessage: tm-login
WidgetMessage: tm-logout
WidgetMessage: tm-modal
WidgetMessage: tm-navigate
WidgetMessage: tm-new-tiddler
WidgetMessage: tm-notify
WidgetMessage: tm-open-external-window
WidgetMessage: tm-open-window
WidgetMessage: tm-perform-import
WidgetMessage: tm-permalink
WidgetMessage: tm-permaview
WidgetMessage: tm-print
WidgetMessage: tm-relink-tiddler
WidgetMessage: tm-remove-field
WidgetMessage: tm-remove-tag
WidgetMessage: tm-rename-tiddler
WidgetMessage: tm-save-tiddler
WidgetMessage: tm-save-wiki
WidgetMessage: tm-scroll
WidgetMessage: tm-server-refresh
WidgetMessage: tm-set-password
WidgetMessage: tm-unfold-all-tiddlers
WidgetMessage: tm-unload-plugin-library
Widgets
Widgets in WikiText
Wiki
WikificationMechanism
WikifyWidget
WikiText
WikiText parser mode transitions
WikiText parser mode: HTML examples
WikiText parser mode: macro examples
WikiText parser mode: transclusion examples
WikiText Parser Modes
Windows HTA Hack
Working with the TiddlyWiki5 repository
Working with the TiddlyWiki5 repository video
Working with TiddlyWiki
Xememex
Xememex Logo
XLSX Utilities Edition
zth Operator
zth Operator (Examples)
中文社区 - Chinese Community

AlphaReleases

 20th December 2023 at 11:30am

Here are the details of the alpha releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.1-alpha

Released 6th December 2013 at 17:53

See GitHub for detailed change history of this release

Improvements

  • Changes to the importing process to enable a smoother Upgrading process
    • Ignores attempts to import plugins that are older than currently installed plugins
    • System tiddlers are now imported as usual
  • If $:/theme isn't defined or refers to a missing tiddler, then fallback through Snow White to Vanilla. This means that empty.html now defaults to Snow White
  • Added support for Block Quotes in WikiText

Bug fixes

  • Fixed bug that was preventing $:/tags/PageControls tiddlers from being reordered

Internal changes

Alternative page layouts

 1st August 2024 at 2:06am

Introduced in v5.1.23 You can have multiple alternative page layouts and switch between them. To see a list of available layouts and switch between them, use the keyboard shortcut ctrl-shift-L.

Creating an alternative page layout

Creating an alternative layout goes beyond adding or removing features from the default interface, which also known as standard layout, and allows you to create an entirely new layout from scratch.

To create an alternative page layout and have the ability to switch to it, you need to create an alternative page template tiddler with the SystemTag: $:/tags/Layout.

This alternative page template can either be a tweaked and modified version of the default page template, or something entirely different. The layout switching mechanism requires that your page template tiddler has the fields name and description, which are used in the listing in the switching user interface.

Common layout setup

\whitespace trim
\import [subfilter{$:/core/config/GlobalImportFilter}]
\define containerClasses()
tc-page-container tc-language-$(languageTitle)$ your-plugin-name-container
\end
\procedure redirected-navigate-actions()
  <$action-setfield $tiddler="$:/layout" text="" $timestamp="no" />
  <$action-navigate $to=<<event-navigateTo>> $scroll="yes" />
\end

<$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>
	<$messagecatcher $tm-navigate=<<redirected-navigate-actions>>>
		{{$:/core/ui/CommandPaletteTemplate}}
		<div class=<<containerClasses>>>
			<!-- Your layout content here -->
		</div>
	</$messagecatcher>
</$navigator>

It includes

  1. Import macros that is globally available in standard layout, so wikitext that works on standard layout also works on your layout.
  2. Define the top-level css class, some style may depends on them. You can add your plugin's name in css class here.
  3. Handle navigation when click on links. If your layout does not contains a story view (for example, you are writing a calendar or whiteboard layout), then the combination of redirected-navigate-actions $navigator and $messagecatcher will redirect user back to standard layout, and open the tiddler there.
  4. Add some PageTemplate back, for example the $:/core/ui/CommandPaletteTemplate or $:/core/ui/PageTemplate/sidebar, if you want them exist on your layout.

Amazon Web Services Plugin

 3rd July 2017 at 7:33pm

The Amazon Web Services Plugin provides several tools for working with Amazon Web Services:

  • Templates for saving a TiddlyWiki as a single JavaScript file in a ZIP file that can be executed as an AWS Lambda function. In this form, TiddlyWiki is a self contained single file containing both code and data, just like the standalone HTML file configuration
  • Commands that can be used to interact with AWS services, under both the Node.js and Lambda configurations of TiddlyWiki

Anchor Links using HTML

 30th November 2020 at 6:43am

What do they do?

In TiddlyWiki anchor links can help us link to target points and distinct sections within rendered tiddlers. They can help the reader navigate longer tiddler content.

For example this link, Bottom, should take you to the bottom of this tiddler. The "Back to the top" link below should return you back to the top of this tiddler.

Back to the top

How do I make them?

There are only 2 steps to making anchor links.

  • First, create the target point (called an 'anchor') where you want it.
  • Second, add a link to it where the reader might need it.

That's it.

Step 1: Create an 'anchor' (link target)

<a id="#Bottom_of_tiddler"></a>

Step 2: Create a link to the target anchor

<a href="##Bottom_of_tiddler">Bottom</a>
  • Create an <a href> link using exactly the same 'address' value as the target but with double ## characters preceding it.
  • Place this code where it will most help the reader.

The above example can be adapted to work for many situations in TiddlyWiki, such as the table of contents at the top of this tiddler.

Is it really that simple?

Yes, it's that simple. BUT... in TiddlyWiki there are some small differences from standard HTML5 anchor links and some specific TiddlyWiki limitations.

Back to the top

Step 1: Creating the target anchor

  • Unlike standard HTML5, in TiddlyWiki you must put a single # character in front of the target address value that follows the id attribute. (Notice the single # character used in the #Bottom_of_tiddler in Example 1.)
  • Unlike standard HTML5, TiddlyWiki anchor links are case sensitive. In the example above #Bottom_of_tiddler works, but #bottom_of_Tiddler wouldn't.
  • Avoid using the % character in your link, as some browsers have a bug where navigation to anchors containing a % character can sometimes fail (see warning below).
  • Avoid using any whitespace in your link (see note 1 below).
  • Each link address should be unique in the TiddlyWiki. If transclusions create multiple instances of the same id attribute, navigation will take place to the first instance found that satisfies the above criteria. To avoid this, you can use the qualify macro in both the id and the href attributes in a similar style to the example given below: Avoiding duplicate IDs when transcluding.

Step 2: Creating the link to the target

  • Remember that the href value should start with two # characters, one more than the id value of the target anchor.
  • Remember that TiddlyWiki anchor links are case sensitive

Step 3: Navigating to the target

Normally you can click on the link and TiddlyWiki will scroll the window so the target anchor is at the top of the window, but there are several limitations:

  • Anchor links in TiddlyWiki do not work if the tiddler is not in the Story River, or is not displayed in the sidebar.
  • Anchor links in TiddlyWiki do not work if the tidlder is in the Story River or sidebar but anchor marked target point is not visible on the page (e.g., the tiddler is folded or the anchor is within a non-displaying $reveal widget). Ctrl+Click on such an anchor link will open a new browser window/tab loading the base web page and will not navigate to the expected tiddler.
  • Anchor links in Tiddlywiki do not work if Control Panel > Appearance > Story View is set to Zoomin (the single page view) and the tiddler is not at the top of the story river (i.e. not displayed).
  • When an anchor link is clicked the browser's navigation history will be updated with the link's href value appended to the web page's URL. This will happen even if the Control Panel > Settings > Navigation History value is set to "Do not update history".

Note
1. The HTML5 specification for the id attribute says that its value should not contain any whitespace. Currently (Dec 2020) an id value with whitespace can sometimes work. However, it may not work in all browsers and is not guaranteed to work in the future.

Warning
Some browsers may fail to navigate to an anchor target whose id value includes a % character followed by 2 digits. This is a bug in the browser and nothing that TiddlyWiki can fix. To be safe, avoid using the % character.

Back to the top

More examples

In each case the target code is placed at the destination the reader navigates to, the link code is placed where it will help the reader navigate from.

<h2 id="#heading-01"> My Target Heading</h2>

<a href="##heading-01">Link to My Target Heading</a>

This looks like:


My Target Heading

Link to My Target Heading


<section id="#unique001">

!! My Target section

A `<section>` HTML tag is generally used to define sections in an HTML document, such as chapters, headers, footers, or any other sections of the document.
</section>

Clicking this anchor link goes to: <a href="##unique001">Link to My Target Section</a>

This looks like:


My Target section

A <section> HTML tag is generally used to define sections in an HTML document, such as chapters, headers, footers, or any other sections of the document.

Clicking this anchor link goes to: Link to My Target Section


Back to the top

Suggestions for HTML elements to use

Some suggestions for the HTML element you choose for marking a position using the id attribute:

Element Sample code Observations
anchor<a id="#part001-of-TiddlerName"></a>Should work perfectly everywhere
heading<h2 id="#a-new-heading">A New Heading</h2>Headings can have id attributes as well
section<section id="#sect001-of-TiddlerName">This is a new section</section>If you use the section element it should probably have an id of its own
span<span id="#007">Marker 007 is here!</span>span elements can be used to insert an id mid-paragraph

Back to the top

Suggestions for target names to use

Sample code Observations
Recommended<a id="#part001-of-TiddlerName"></a>Include the tiddler name for easy unique ids
Avoid: whitespace<h2 id="#0 0 1">A New Heading</h2>Whitespace is not guaranteed to work in all browsers
Avoid: %<section id="#sect001%20of%20TiddlerName">This is a new section</section>URI encoding (turning space into %20 and so on) may not work in some browsers
Avoid: duplicate IDs<span id="#007">Marker 007 is here!</span>id values should be unique within entire wiki
Avoid: duplicate IDs<a id="#007"></a>A different marker 007If id values are duplicated, one will be ignored

Back to the top

Avoiding duplicate IDs when transcluding

The id and anchor link to this header has been made as follows:

<a href=<<qualify "##qualify-example">>>Avoiding duplicate IDs when transcluding</a>

<h2 id=<<qualify "#qualify-example">>>Avoiding duplicate IDs when transcluding</h2>
For this to work:
  • The href and id values use the macro invocation syntax for attributes, using the qualify Macro to create a unique id value.
  • Both the id and the anchor link must be in the same tiddler.
  • There must not be any quote characters between the = and the <<.
  • The double quotes around the target name are optional, but recommended.
  • There should be a total of three > characters after the target name, two >> to close the <<qualify macro, and one > to close the <a tag.

Back to the top

Style Hints

If you don't want the link to look like an external link, give the <a> element's class attribute the value tc-tiddlylink and if you want the link to also be italic & bold, give the additional classes tc-tiddlylink-missing tc-tiddlylink-shadow like below:

<a class="tc-tiddlylink" href="##Introduction:Anchor-Links-using-HTML">Back to the top</a> or just back to <a class="tc-tiddlylink tc-tiddlylink-missing tc-tiddlylink-shadow" href=<<qualify ##Hints>>>Hints</a>.

Back to the top or just back to Style Hints.

If you want to include an id attribute to a link in your sidebar Table of Contents, you can include it in your listed tiddler's caption field similar to the way shown below:

<span id=#some-value>Your caption</span>

Back to the top

And Filter Run Prefix

 11th July 2023 at 8:47am
inputthe filter output of all previous runs so far
outputoutput titles replace the output of previous filter runs
Introduced in v5.1.23
:andrun

This prefix has an optional shortcut syntax symbol +run

append Operator

 21st March 2023 at 1:16pm
purposeappend a range of items from an array to the list
inputa list of items
suffixan integer N, defaulting to all
parameterlist=the array of items to be appended to the tail of the list
outputa list with items appended from the head of the parameter array
! outputa list with items appended from the tail of the parameter array

Learn more about how to use Filters

append Operator (Examples)

 8th November 2015 at 5:15am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]append[Tomorrow]]

[list[Days of the Week]append[Yesterday Today Tomorrow]]

Append the first 4 short days of the week to our list

[list[Days of the Week]append:4{Days of the Week!!short}]

Apple

 27th February 2022 at 9:08pm

This example tiddler is used to illustrate some of the Filter Operators.

It has a list field containing the following items:

applypatches Operator

 4th March 2023 at 3:48pm
purposeapplies a set of patches to transform the input
inputa selection of titles
parameterP=a string containing patches from the makepatches Operator
outputthe transformed input to which the patches P have been applied

Learn more about how to use Filters

Articles

 2nd June 2016 at 5:27pm

Here are some recent articles written about TiddlyWiki. Submit new articles via GitHub, Twitter or by posting in the TiddlyWiki Groups.

asin Operator

 21st October 2021 at 10:28pm
purposecalculate the arcsine value (in radians) of a list of numbers
inputa selection of titles
outputthe arcsine (in radians) of the input numbers

Learn more about how to use Filters

Introduced in v5.1.21 See Mathematics Operators for an overview.

Tip
This is the inverse operation of sin: sin calculate the sine of an angle (in radian), but asin calculate the angle (in radian) of a sine.

Examples

asin Operator (Examples)

 20th October 2021 at 2:27pm

[[2]asin[]]

=1 =2 =3 =4 +[asin[]]

atan Operator

 21st October 2021 at 10:28pm
purposecalculate the arctangent value (in radians) of a list of numbers
inputa selection of titles
outputthe arctangent (in radians) of the input numbers

Learn more about how to use Filters

atan Operator (Examples)

 20th October 2021 at 2:13pm

[[2]atan[]]

=1 =2 =3 =4 +[atan[]]

atan2 Operator

 21st October 2021 at 10:28pm
purposereturns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X]
inputa selection of titles = coordinate Y (Y)
parameterX=coordinate X
outputthe angle in radians (in [ - π , π ] ) between the positive x-axis and the ray from (0,0) to the point (x,y)

Learn more about how to use Filters

atan2 Operator (Examples)

 20th October 2021 at 2:08pm

[[2]atan2[5]]

=1 =2 =3 =4 +[atan2[4]]

Attribute Selectors

 11th April 2018 at 5:39pm
[attr]
Represents an element with an attribute name of attr.
[attr="value"]
Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~="value"]
Represents an element with an attribute name of attr whose value is a whitespace-separated list of words, one of which is exactly "value".
[attr|="value"]
Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^="value"]
Represents an element with an attribute name of attr and whose first value is prefixed by "value".
[attr$="value"]
Represents an element with an attribute name of attr and whose last value is suffixed by "value".
[attr*="value"]
Represents an element with an attribute name of attr and whose value contains at least one occurrence of string "value" as substring.
[attr "operator value" i]
Adding an i (or I) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).

Learn more at: Attribute selectors - CSS or CSS-Specification

Audio

 19th October 2014 at 8:06pm

Audio files can be incorporated into TiddlyWiki in a very similar way to images.

Embedded Audio

Small audio files can be embedded directly within TiddlyWiki. Embedding isn't suitable for large files (over a few hundred kilobytes) because it increases the size of the TiddlyWiki file.

For example, the tiddler TiddlyWiki.mp3 contains an MP3 recording of the word "TiddlyWiki". If you visit that tiddler, you should see an audio player that will play back the recording.

You can also transclude audio files. For example:

{{TiddlyWiki.mp3}}

That renders as:

External Audio

External audio tiddlers use the _canonical_uri field to point to an external audio file/stream, and have their text field blocked. This reduces their size considerably, but still allows for playback.

For example, the tiddler Caruso - Ave Maria points to an online audio recording hosted on http://archive.org:

{{Caruso - Ave Maria}}

That renders as:

AutoSave

 10th June 2016 at 8:15am

If there is a SavingMechanism available that supports it, TiddlyWiki will automatically trigger a save of the current document on clicking ok or delete when editing a tiddler.

You should see a yellow notification at the top right of the window to confirm that an automatic save has taken place.

Automatic saving can be enabled or disabled through the Settings tab of the control panel . Behind the scenes, it is controlled through the configuration tiddler $:/config/AutoSave, which must have the value yes to enable automatic saving.

average Operator

 26th April 2021 at 1:15pm
purposetreating each input title as a number, compute their arithmetic mean
inputa selection of titles
outputthe arithmetic mean of the input as numbers

Learn more about how to use Filters

average Operator (Examples)

 26th April 2021 at 1:15pm

=1 =3 =4 =5 +[average[]]

Note that if there is no input the operator returns NaN

[tag[NotATiddler]get[price]] +[average[]]

backlinks Operator

 3rd February 2015 at 6:33pm
purposefind the titles that link to each input title
inputa selection of titles
parameternone
outputany non-system titles that contain hard links to the input titles

Learn more about how to use Filters

Each input title is processed in turn. The corresponding tiddler's list of backlinks is generated, sorted alphabetically by title, and then dominantly appended to the operator's overall output.

Examples

backlinks Operator (Examples)

 18th January 2015 at 6:31pm

[[HelloThere]backlinks[]]

[tag[TableOfContents]backlinks[]]
→ tiddlers that link to tiddlers tagged TableOfContents

[all[current]backlinks[]]
→ tiddlers that link to this one

backtranscludes Operator

 10th June 2024 at 8:59am
purposefind the titles that transclude each input title
inputa selection of titles
parameternone
outputany non-system titles that hard-transclude the input titles

Learn more about how to use Filters

New in v5.3.4 Each input title is processed in turn. The corresponding tiddler's list of backtransclusions is generated, sorted alphabetically by title, and then dominantly appended to the operator's overall output. Analogous to backlinks.

Examples

backtranscludes Operator (Examples)

 

[[Motovun Jack.jpg]backtranscludes[]]

[[Transclusion]backtranscludes[]]

Bags and Recipes

 9th March 2024 at 2:21pm

The bags and recipes model is a reference architecture for how tiddlers can be shared between multiple wikis. It was first introduced by TiddlyWeb in 2008.

The principles of bags and recipes can be simply stated:

  1. Tiddlers are stored in named "bags"
  2. Bags have access controls that determines which users can read or write to them
  3. Recipes are named lists of bags, ordered from lowest priority to highest
  4. The tiddlers within a recipe are accumulated in turn from each bag in the recipe in order of increasing priority. Thus, if there are multiple tiddlers with the same title in different bags then the one from the highest priority bag will be used as the recipe tiddler
  5. Wikis are composed by splicing the tiddlers from the corresponding recipe into the standard TW5 HTML template

A very simple example of the recipe/bag model might be for a single user who maintains the following bags:

  • recipes - tiddlers related to cooking recipes
  • work - tiddlers related to work
  • app - common tiddlers for customising TiddlyWiki

Those bags would be used with the following recipes:

  • recipes –> recipes, app - wiki for working with recipes, with common custom components
  • work –> work, app - wiki for working with work, with common custom components
  • app –> app - wiki for maintaining custom components

All of this will work dynamically, so changes to the app bag will instantly ripple into the affected hosted wikis.

A more complex example might be for a teacher working with a group of students:

  • student-{name} bag for each students work
  • teacher-course bag for the coursework, editable by the teacher
  • teacher-tools bag for custom tools used by the teacher

Those bags would be exposed through the following hosted wikis:

  • student-{name} hosted wiki for each students work, including the coursework material
  • teacher-course hosted wiki for the coursework, editable by the teacher
  • teacher hosted wiki for the teacher, bringing together all the bags, giving them an overview of all the students work

Base64

 21st February 2015 at 6:17pm

Base64 is a way of representing binary data, such an image, as a string of text.

before Operator

 3rd February 2015 at 7:19pm
purposefind which input title precedes a specified one
inputa selection of titles
parameterT=one of those titles
outputthe title that immediately precedes T in the input

Learn more about how to use Filters

If T is not present in the input, or is the first title there, then the output is empty.

Examples

before Operator (Examples)

 18th January 2015 at 6:31pm

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]before[Saturday]]

[list[Days of the Week]before[Monday]]

Behaviour of invoked variables depends on how the variable was declared

 19th June 2024 at 9:17pm

Invoked in normal wikitext context: <$transclude $variable=myvar/> or <<myvar>>

how declaredbehaviour
\defineAll wikitext and variable substitution and textual substitution takes place
$set, $let, $vars, \procedure, \widgetAll wikitext and variable substitution takes place
\functionInvoking a function in this way (<<.myfun>>) is a synonym for <$text text={{{[function[.myfun]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded

Invoked via widget attribute: <div class=<<myvar>>/>

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function (e.g. .myfun) is invoked as <div class=<<.myfun>>/>, it is a synonym for <div class={{{[function[.myfun]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

Invoked via filter operator parameter: [<myvar>]

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the filter operator's parameter.
\functionThe body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.

Invoked via function call in a filter expression: [function[.myfun]]

how declaredbehaviour
\define, $set, $let, $vars, \procedure, \widgetEvery function is a variable, but only variables defined using \function are invokable using the function filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.
\functionThe body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.

Examples

Below is an example macro, procedure and function definition. All three forms of parameter substitution $a1$, <<__a1__>>, and <<a1>> are included in each definition. The output helps illustrate when each form of substitution will or will not have affect.

\define m1(a1) $a1$ - <<__a1__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
Variable transclusionoutput
<<m1 foo>>foo - foo -
<<p1 foo>>$a1$ - - foo
<<f1 foo>>$a1$ - - foo
Widget attributeoutput
<$text text=<<m1 foo>>/>foo - <<__a1__>> - <<a1>>
<$text text=<<p1 foo>>/>$a1$ - <<__a1__>> - <<a1>>
<$text text=<<f1 foo>>/>$a1$ - - foo
Filter operator parameteroutput
[<m1 foo>]foo - <<__a1__>> - <<a1>>
[<p1 foo>]$a1$ - <<__a1__>> - <<a1>>
[<f1 foo>]$a1$ - - foo
Function call in filter expressionoutput
[function[m1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[p1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[f1],[foo]]$a1$ - - foo

Behaviour of variables invoked via filter expression function call

 26th July 2023 at 3:06pm
how declaredbehaviour
\define, $set, $let, $vars, \procedure, \widgetEvery function is a variable, but only variables defined using \function are invokable using the function filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.
\functionThe body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.

Behaviour of variables invoked via filter operator parameter

 26th July 2023 at 3:06pm
how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the filter operator's parameter.
\functionThe body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.

Behaviour of variables invoked via normal wikitext

 19th June 2024 at 9:14pm
how declaredbehaviour
\defineAll wikitext and variable substitution and textual substitution takes place
$set, $let, $vars, \procedure, \widgetAll wikitext and variable substitution takes place
\functionInvoking a function in this way (<<.myfun>>) is a synonym for <$text text={{{[function[.myfun]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded

Behaviour of variables invoked via widget attributes

 19th June 2024 at 9:07pm
how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function (e.g. .myfun) is invoked as <div class=<<.myfun>>/>, it is a synonym for <div class={{{[function[.myfun]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

BetaReleases

 20th December 2023 at 11:30am

Here are the details of the beta releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.18-beta

Released 17th September 2014 at 21:10

See GitHub for detailed change history of this release

This is a minor release prior to the full release of TiddlyWiki on September 20th. The documentation has been cleaned up and improved (with more improvements to come).

File Layout of tiddlywiki.com

The layout of files on tiddlywiki.com has been adjusted to make it more logical. See the ticket for a discussion. You can see the source files that make up tiddlywiki.com at https://github.com/Jermolene/jermolene.github.com

Hackability Improvements

  • Added first iteration of a list-links macro (further improvements are planned)
  • Added support for importing .markdown and .md files
  • Extended timeline macro to support a subfilter

Bug Fixes

  • Fixed problem with digits being classified as lower case letters for wiki link matching
  • Fixed crash when sorting missing tiddlers by fields other than title
  • Fixed problem with handling .jpeg file extensions
  • Fixed problem with RadioWidget and missing tiddlers
  • Fixed problem with dragging a partially selected link

Contributors

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

bf Operator

 3rd February 2015 at 6:37pm
purposesame as rest

Learn more about how to use Filters

Block Mode WikiText

 12th May 2024 at 12:15am

Some WikiText is recognised only while the parser is in block mode.

Common characteristics of such block mode WikiText:

  • At least one entire line is required to delimit the WikiText.
  • The closing punctuation must come at the end of the line (in some cases the end of the line is the closing punctuation.
WikiTextPunctuation
Block Quotes in WikiTextMulti-line block quotes are enclosed by lines containing only the text <<<; single line block quotes are also possible.
Code Blocks in WikiTextEnclosed by lines containing only the text ```
Definitions in WikiTextEach term is on its own line and each definition is on its own line.
Hard Linebreaks in WikiTextEnclosed by lines containing only the text """.
Headings in WikiTextEntire line starting with !.
Horizontal Rules in WikiTextA line containing only the text ---.
Lists in WikiTextEach list item is on its own line.
Paragraphs in WikiTextAny text other than the start punctuation of one of the other block mode WikiText will start a paragraph. Even the start punctuation of inline mode WikiText will start a paragraph. The parser includes all following lines into the paragraph until it encounters a blank line.
Styles and Classes in WikiTextEnclosed by lines starting with @@.
Tables in WikiTextEach table row is a line starting and ending with |.
Typed Blocks in WikiTextEnclosed by lines starting with $$.

The above WikiText types are only recognised in block mode. However, the text enclosed by most of them will be parsed in inline mode (Block Quotes in WikiText and Styles and Classes in WikiText are the two exceptions in which the parser will continue in block mode). While in inline mode the parser may encounter something which moves it to block mode (see WikiText parser mode transitions).

At the end of the terminating line, the parser will return to block mode.

Tip
Note: Hard Linebreaks in WikiText require an extra blank line after the trailing """ before the parser will return to block mode.

If the punctuation for the above types of WikiText is encountered while the parser is in inline mode, it will be ignored and output as-is.

Examples

Block Mode WikiText (Examples)

 15th January 2022 at 4:10pm

Paragraphs are the most common WikiText. It is important to know they do not end until a blank line is encountered. Once a paragraph starts the parser will be in inline mode. Until that blank line is encountered other block mode syntax will be ignored:

This is a paragraph.
Only __//inline mode//__ punctuation is recognised here.
Block mode punctuation will be <b>ignored</b> until
the paragraph ends (i.e. a blank line is encountered).
For example:
* List item punctuation is ignored
* So is this horizontal rule:
---
|tables|are|ignored|
! headings are ignored
<<<
multi-line block quotes are ignored
<<<

That renders as:

This is a paragraph. Only inline mode punctuation is recognised here. Block mode punctuation will be ignored until the paragraph ends (i.e. a blank line is encountered). For example: * List item punctuation is ignored * So is this horizontal rule: — |tables|are|ignored| ! headings are ignored <<< multi-line block quotes are ignored <<<

To get the parser to recognise the above block mode WikiText, a blank line needs to be inserted after the "For example:" line. The blank line will be treated as the end of the paragraph and the parser will start recognising block mode punctuation again. Like this:

This is a paragraph.
Only __//inline mode//__ punctuation is recognised here.
Block mode punctuation will be <b>ignored</b> until
the paragraph ends (i.e. a blank line is encountered).
For example, here is a blank line:

* due to above blank line,
* list items work
* the following horizontal rule also works:
---
|!tables|!work|
|cell 1| cell 2|
! Headings work
<<<
multi-line block quotes work
<<<
; Term
: Definition of that term
Another paragraph can start here, but it will not end until blank line

That renders as:

This is a paragraph. Only inline mode punctuation is recognised here. Block mode punctuation will be ignored until the paragraph ends (i.e. a blank line is encountered). For example, here is a blank line:

  • due to above blank line,
  • list items work
  • the following horizontal rule also works:

tableswork
cell 1cell 2

Headings work

multi-line block quotes work

Term
Definition of that term

Another paragraph can start here, but it will not end until blank line

All the block mode examples above except for the paragraph are written one line after the other without blanks between. Those types of WikiText don't require the extra blank line to terminate.

Block Quotes in WikiText

 12th May 2024 at 12:09am

There are two ways to produce HTML block quotes in TiddlyWiki5, one for content spread across multiple lines, and one for single line content.

Multi-line Block Quotes

The syntax for multi-line block quotes () is:

<<<
This is a block quoted paragraph
written in English
<<<

That renders as:

This is a block quoted paragraph written in English

... and the underlying HTML is:

<blockquote class="tc-quote"><p>This is a block quoted paragraph
written in English
</p></blockquote>

Citation

A citation can be added to the quote like this:

<<<
Computers are like a bicycle for our minds
<<< Steve Jobs

That renders as:

Computers are like a bicycle for our minds

Steve Jobs

... and the underlying HTML is:

<blockquote class="tc-quote"><p>Computers are like a bicycle for our minds
</p><cite>Steve Jobs</cite></blockquote>

CSS Classes

CSS classes can be added to a block quote:

<<<.myClass.another-class
Operating systems are like a brick wall for our minds
<<< Nobody

That renders as:

Operating systems are like a brick wall for our minds

Nobody

... and the underlying HTML is:

<blockquote class="tc-quote myClass another-class"><p>Operating systems are like a brick wall for our minds
</p><cite>Nobody</cite></blockquote>

The core includes the class tc-big-quote that renders block quotes with outsize double quotes:

<<<.tc-big-quote
A dramatic quote
<<< Somebody Important

That renders as:

A dramatic quote

Somebody Important

... and the underlying HTML is:

<blockquote class="tc-quote tc-big-quote"><p>A dramatic quote
</p><cite>Somebody Important</cite></blockquote>

Single-line Block Quotes

The single-line syntax for block quotes is actually an extension of the syntax for Lists in WikiText. For example:

> Quoted text
> Another line of quoted text

That renders as:

Quoted text
Another line of quoted text

... and the underlying HTML is:

<blockquote><div>Quoted text</div><div>Another line of quoted text</div></blockquote>

You can also nest quotes like this:

> A top quote
>> A subquote
> Another top quote

Which renders as:

A top quote
A subquote
Another top quote

You can also mix block quotes with other list items. For example:

* List One
** List Two
**> A quote
**> Another quote
* List Three

That renders as:

  • List One
    • List Two
      A quote
      Another quote
  • List Three

... and the underlying HTML is:

<ul><li>List One<ul><li>List Two<blockquote><div>A quote</div><div>Another quote</div></blockquote></li></ul></li><li>List Three</li></ul>

Advanced Wikitext and Block Quotes

You can also mix block quotes with paragraphs and other block wikitext. Be mindful of block mode - if other quoted content follows a paragraph, end it with a blank line. The final paragraph in the quote does not need to end with a blank line. If using indentation, make sure not to indent the blank lines. The parser will interpret this as additional inline content and not return to block mode. For example:

<<< Mixing Block Quotes with Inline Wikitext
A paragraph appears before other //wikitext//, which needs to end with a blank line.

    * List One
    ** List Two
    **> A quote
"""
A poem
with line beaks
needs to have
a blank line after
the final quotes
if followed
by other content
"""

    <<<< Deep Block Quote
        A paragraph before other //wikitext//, which ends with a blank line.

        ! A Header
        Another paragraph, which needs to end with a blank line.

            !! Sub Header
            A final paragraph, which __does not__ need to end with a blank line as the Block Quote ends.
    <<<<
<<<

That renders as:

Mixing Block Quotes with Inline Wikitext

A paragraph appears before other wikitext, which needs to end with a blank line.

  • List One
    • List Two
      A quote

A poem
with line beaks
needs to have
a blank line after
the final quotes
if followed
by other content

Deep Block Quote

A paragraph before other wikitext, which ends with a blank line.

A Header

Another paragraph, which needs to end with a blank line.

Sub Header

A final paragraph, which does not need to end with a blank line as the Block Quote ends.

... and the underlying HTML is:

<blockquote class="tc-quote"><cite>Mixing Block Quotes with Inline Wikitext</cite><p>A paragraph appears before other <em>wikitext</em>, which needs to end with a blank line.</p><ul><li>List One<ul><li>List Two<blockquote><div>A quote</div></blockquote></li></ul></li></ul><p>A poem<br>with line beaks<br>needs to have<br>a blank line after<br>the final quotes<br>if followed<br>by other content<br></p><blockquote class="tc-quote"><cite>Deep Block Quote</cite><p>A paragraph before other <em>wikitext</em>, which ends with a blank line.</p><h1 class="">A Header</h1><p>Another paragraph, which needs to end with a blank line.</p><h2 class="">Sub Header</h2><p>A final paragraph, which <u>does not</u> need to end with a blank line as the Block Quote ends.
</p><blockquote class="tc-quote"><blockquote class="tc-quote"></blockquote></blockquote></blockquote></blockquote>

Blog Edition

 2nd September 2015 at 12:32pm

The Blog edition of TiddlyWiki contains tools to help publish static HTML blogs written in TiddlyWiki. It is currently designed for use under Node.js.

While documentation is being prepared, see https://github.com/Jermolene-blog/blog for an example of use.

Blurry Lawn.jpg

 

Brackets

 28th July 2022 at 3:04pm

WikiText syntax uses a number of different types of brackets. Their names are shown in the table below:

AppearanceNameShort nameUsage
()Round bracketsParenthesisNot used in WikiText
[]Square bracketsBracketsLinks, Filters
{}Curly bracketsBracesText references, Filtered attributes
<>Angle bracketsChevronsHTML elements and widgets, Macros

Brownies

 6th October 2020 at 6:12pm

This is a sample shopping list item for the reduce Operator (Examples)

BrowserCompatibility

 

TiddlyWiki is designed to work with HTML5-compatible browsers.

The following table summarises the browser versions that are known to work with TiddlyWiki

BrowserStatus
Internet ExplorerVersion 10 and above
ChromeAll recent versions
FirefoxAll recent versions
Firefox for AndroidAll recent versions
SafariVersion 6 and above

BrowserStorage Plugin

 6th February 2019 at 6:12pm

The BrowserStorage Plugin enables TiddlyWiki to save tiddlers in browser local storage. This means that changes are stored within the browser, and automatically re-applied any time the base wiki is reloaded.

Browser local storage is not a panacea for TiddlyWiki:

  • Browsers limit the amount of local storage available to a page, typically to 5 or 10MB
  • Keeping personal data in browser local storage can lead to unexpected privacy violations
  • Browsers reserve the right to without warning delete data stored in local storage at any time
  • Browsers tie local storage to a URL which can lead to problems if you move a wiki to a URL previously occupied by a different wiki

Please use this plugin with caution. There are a number of unresolved issues and open questions.

The BrowserStorage Plugin can be installed from the plugin library.

BrowseWidget

 13th November 2023 at 9:33am

Introduction

The browse widget displays an HTML file browser button that allows the user to choose one or more files to import. It sends a WidgetMessage: tm-import-tiddlers carrying a JSON representation of the tiddlers imported from the files up through its parents. This message is usually handled by the NavigatorWidget which adds the tiddlers to the store and updates the story to display them.

Content and Attributes

The content of the $BrowseWidget widget is ignored.

AttributeDescription
multipleSet to "multiple" to select multiple file upload
deserializerIntroduced in v5.1.15 Optional name of deserializer to be used (by default the deserializer is derived from the file extension or type)
tooltipOptional tooltip text
acceptIntroduced in v5.1.23 Optional comma delimited list of file accepted extensions and/or MIME types
messageOptional override of widget message to be generated. The files will be passed in the JavaScript object event.target.files
paramOptional parameter to be passed with the custom message
data-*New in v5.3.2 Optional data attributes to be assigned to the HTML element
style.*New in v5.3.2 Optional CSS properties to be assigned to the HTML element

On iPhone/iPad choosing the multiple option will remove the ability to take photographs/videos directly into TiddlyWiki.

e.g.

<$browse/>

renders as:

BT

 17th November 2021 at 7:55pm

BT (née British Telecom) is the UK's largest telecommunications company. In 2007, Osmosoft was acquired by BT. JeremyRuston subsequently left BT in 2011.

BuildCommand

 27th April 2014 at 9:04pm

Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.

--build <target> [<target> ...]

Build targets are defined in the tiddlywiki.info file of a wiki folder.

See tiddlywiki.info Files for details of defining build targets.

Building TiddlyWikiClassic

 12th September 2014 at 2:16pm

TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:

  • The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
  • The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
  • The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
    • For example, {tiddler}HelloThere would be transformed to HelloThere

Usage

TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:

node ../../tiddlywiki.js \
	--verbose \
	--load <path_to_recipe_file> \
	--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
	|| exit 1

butfirst Operator

 3rd February 2015 at 6:37pm
purposesame as rest

Learn more about how to use Filters

butlast Operator

 26th February 2022 at 4:33am
purposediscard the last N input titles
inputa selection of titles
parameterN=an integer, defaulting to 1
outputall but the last N input titles

Learn more about how to use Filters

Introduced in v5.2.2 The butlast operator returns the input list unchanged if N is 0. This is consistent with the behaviour of the rest Operator.

Examples

butlast Operator (Examples)

 26th February 2022 at 4:33am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]butlast[]]

[list[Days of the Week]butlast[0]]

[list[Days of the Week]butlast[2]]

A B C D E F G H I J K L M +[butlast[7]]

ButtonWidget

 13th November 2023 at 9:33am

Introduction

The button widget displays an HTML <button> element that can perform a combination of optional actions when clicked:

  • Executing any ActionWidgets passed in the actions attribute
  • Executing any ActionWidgets that are immediate children of the button widget
  • Execute any integrated actions:
    • Navigate to a specified tiddler
    • Dispatch a user defined widget message
    • Trigger a user defined popup
    • Assign new text to a specified tiddler

The integrated actions are provided as a shortcut for invoking common actions. The same functionality is available via ActionWidgets, with the exception of the support for highlighting selected popups.

Content and Attributes

The content of the <$button> widget is displayed within the button.

AttributeDescription
actionsA string containing ActionWidgets to be triggered when the key combination is detected. Introduced in v5.1.23 the modifier variable lists the modifier keys that are pressed when the action is invoked. The possible modifiers are ctrl, ctrl-alt, ctrl-shift, alt, alt-shift, shift and ctrl-alt-shift
toThe title of the tiddler to navigate to
messageThe name of the widget message to send when the button is clicked
paramThe optional parameter to the message
setA TextReference to which a new value will be assigned
setTitleA title to which a new value will be assigned, without TextReference. Gets preferred over set
setFieldA field name to which the new value will be assigned, if the attribute setTitle is present. Defaults to the text field
setIndexAn index to which the new value will be assigned, if the attribute setTitle is present
setToThe new value to assign to the TextReference identified in the set attribute or the text field / the field specified through setField / the index specified through setIndex of the title given through setTitle
selectedClassAn optional additional CSS class to be assigned if the popup is triggered or the tiddler specified in set already has the value specified in setTo
defaultDefault value if set tiddler is missing for testing against setTo to determine selectedClass
popupTitle of a state tiddler for a popup that is toggled when the button is clicked. See PopupMechanism for details
popupTitleTitle of a state tiddler for a popup that is toggled when the button is clicked. In difference to the popup attribute, no TextReference is used. See PopupMechanism for details
popupAbsCoordsIntroduced in v5.2.4 If set to yes writes absolute coordinates to the tiddler referenced by the popup. If set to no (the default) uses relative coordinates. See Coordinate Systems for details
aria-labelOptional Accessibility label
tooltipOptional tooltip
classAn optional CSS class name to be assigned to the HTML element
data-*New in v5.3.2 Optional data attributes to be assigned to the HTML element
style.*New in v5.3.2 Optional CSS properties to be assigned to the HTML element
styleAn optional CSS style attribute to be assigned to the HTML element
tagAn optional html tag to use instead of the default "button"
dragTiddlerAn optional tiddler title making the button draggable and identifying the payload tiddler. See DraggableWidget for details
dragFilterAn optional filter making the button draggable and identifying the list of payload tiddlers. See DraggableWidget for details
tabindexSets the tabindex attribute of the button to the given value
disabledIntroduced in v5.1.23 Optional, disables the button if set to "yes". Defaults to "no"

Note: In almost all other cases where a TextReference is used as a widget attribute, it will be placed between curly brackets, to transclude the value currently stored there. However, when we use a TextReference as the value of a button widget's set attribute, we are referencing the storage location itself, rather than the value stored there, so we do not use curly brackets there. Example: we could code a button widget that sets the caption field of TiddlerA to be the same as that of TiddlerB as:

Tip
Introduced in v5.1.18 setTitle, setField and setIndex attributes allow specifying Tiddler states directly, without interpreting them as TextReferences. This is useful for edge-cases where titles may contain characters that are used to denote Tiddler fields or indices (!!, ##)

<$button set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} >

Press me!

</$button>

Tip: Set class to tc-btn-invisible tc-tiddlylink to have a button look like an internal link.

CamelCase

 23rd September 2024 at 4:20pm

CamelCase is formed by taking a phrase, capitalising the initial letter of each word, and smashing the words together to form a portmanteau word. Traditionally most wikis including TiddlyWiki use CamelCase to signal phrases that should automatically become links.

You can also disable CamelCase linking in TiddlyWiki if you want.

New in v5.3.0 CamelCase is disabled by default in new wikis.

Caruso - Ave Maria

 

Cascade Filter Run Prefix

 10th July 2023 at 7:33am
purposemodify input titles by successively evaluating a list of filters and applying the first result
inputthe filter output of all previous runs so far
outputthe input titles as modified by the filters returned by this filter run
Introduced in v5.2.1
:cascaderun

The filter expression for this filter run is evaluated to return a list of filters. Each input title is then evaluated against each of the filters in turn, and the input title is replaced with the first result of the first filter that returns a non-empty list. If none of the filters return a result for an input title, it is replaced with an empty string.

The following variables are available within the filter run:

  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the filter run.

Cascade Filter Run Prefix (Examples)

Cascade Filter Run Prefix (Examples)

 5th March 2023 at 12:52pm

The :cascade filter run prefix is used by the TiddlyWiki core to choose the colour for each tiddler as used in the tag pill generated by the tag macro.

:cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]

The filter expression inside the above :cascade filter run returns a list of filters from the text fields of tiddlers tagged as shown below:

  • [has[color]then{!!color}]
  • [tag[TableOfContents]then[#1e90ff]]
    [tag[Working with TiddlyWiki]then[darkorchid]]
    
  • [[$:/config/DefaultTiddlerColour]has[text]get[text]trim[]]

For each input title, each of these filters is now applied to in turn until the first filter that returns a non-empty list. The first result from this non-empty list replaces that input title and is used as the colour for that tiddler.

[all[shadows+tiddlers]] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] +[!is[blank]limit[10]]

Extended example

This example illustrates step-by-step how the :cascade filter run works.

A filter expression whose output returns a list of filters is required. Typically such a filter expression will construct the list of filters by querying some field in a set of tiddlers (likely via tag). To keep this example self-contained, 3 filters are stored in the filter1, filter2 and filter3 fields of this tiddler. Text references and instances of the append operator are used to combine the fields into a list of filters.

The filter [{!!filter1}append{!!filter2}append{!!filter3}], generates this list of filters:

  • [prefix[ca]then[ca]]
  • [suffix[at]then[at]]
  • other

For this example, cat can bat bug will be used as the input titles. Each input title will be evaluated by :cascade against each of the above filters in turn. To help understand what :cascade sees internally, the following table uses the Map Filter Run Prefix to show the result of each individual filter.

cat can bat bug :map[prefix[ca]then[ca]]
cat can bat bug :map[suffix[at]then[at]]
cat can bat bug :map[[other]]

Click "Try it" on the above 3 examples. The first non-blank value from each row as read from left to right will be returned when :cascade is used. Click "Try it" below to see the final result:

cat can bat bug :cascade[{!!filter1}append{!!filter2}append{!!filter3}]

Cascades

 6th December 2021 at 4:47pm

Introduction

Cascades are a key mechanism used to construct and customise TiddlyWiki's user interface.

Tip
See Customising TiddlyWiki's user interface for an overview of all the customisation mechanisms

How cascades work

Cascades provide a means to select one of multiple values based on flexible, extensible criteria. They can be thought of as a list of conditions that are evaluated in turn until one of them matches.

Each cascade is defined by a special tag which identifies the tiddlers containing the conditions to be matched. The Order of Tagged Tiddlers determines the order in which the conditions are processed, and provides the means for arranging new rules at specific points in the cascade.

The conditions are defined by a Filter Expression in the text field. The filters are evaluated with the list of input titles set to the title of the tiddler to be considered. The currentTiddler variable is also set to the title of the tiddler to be considered.

If the filter returns no result then that result will be ignored and the cascade proceeds to test the next condition. If the filter expression does return at least one result then it serves as the result of the entire cascade.

The Cascade Filter Run Prefix provides the implementation of the underlying logic.

Example

The Story Tiddler Template Cascade contains the logic for determining a tiddler should be displayed as an editable draft or in view mode. By default, it consists of two tiddlers containing the following list of rules:

  1. [is[draft]then{$:/config/ui/EditTemplate}] – if it is a draft tiddler, use the template title given in the tiddler $:/config/ui/EditTemplate
  2. [{$:/config/ui/ViewTemplate}]  – otherwise, use the template title given in the tiddler $:/config/ui/ViewTemplate

Usage in the core

The TiddlyWiki core uses cascades to choose the following elements:

Story Tiddler Template CascadeThe template used to display a particular tiddler in the story river. By default, the edit template is chosen for draft tiddlers, and the view template for others
Tiddler Icon CascadeThe optional icon associated with a particular tiddler (displayed alongside the title)
Tiddler Colour CascadeThe optional colour associated with a particular tiddler (used to colour the tiddler icon and if the tiddler is used as a tag also provides the colour for the tag pill)
View Template Title CascadeThe template used to display the title of a particular tiddler (used by the default view template to display the tiddler title)
View Template Body CascadeThe template used to display the view mode body of a particular tiddler (used by the default view template to display the tiddler body)
Edit Template Body CascadeThe template used to display the edit mode body of a particular tiddler (used by the default edit template to display the tiddler body editor)
Field Editor CascadeThe template used to display the edit mod