Announcing the release of TiddlyWiki v5.3.0

I’m delighted to announce the release of TiddlyWiki v5.3.0 at:

https://tiddlywiki.com/

The jump in version number is because the new parameterised transclusion and related features in this release are the culmination of thinking and experimenting that began around 7 years ago. These are far reaching improvements that allow authors to write clearer, more concise wikitext that is more powerful than ever before. They also fix some of the mistakes in the original design of TiddlyWiki 5. The real challenge has been to deliver these improvements without compromising on our commitment to backwards compatibility.

At its simplest, parameterised transclusion is the ability to pass parameters in a transclusion, separating them with a single vertical bar:

{{MyUtility|red|22px}}

Those parameters can be accessed within the tiddler “MyUtility” with the following declaration:

\parameters (colour:"green",size: "20px")
...

The work to implement parameterised transclusion also provides some other significant features:

  • Custom widgets in wikitext
  • Custom, parameterised named functions
  • Procedures – these are essentially what macros should have been; they work in exactly the same way except that parameters are exposed as simple variables (without the double underscores) and no textual substitution takes place

The major features of the new release are:

  • A new syntax for widget/html attributes that allows textual substitution of variable and filters
  • Support for sending HTTP requests, opening up exciting possibilities to call web APIs and load content dynamically
  • Updated Google Analytics plugin compatible with the new version
  • New :then[...] filter run prefix
  • New thisTiddler variable for transcluded tiddlers to access their own title
  • More improvements to the browser storage plugin, making it more flexible and robust
  • Many bug fixes
  • Finally, CamelCase linking is now turned off by default

You can upgrade your existing single file wikis here:

https://tiddlywiki.com/upgrade.html

For Node.js users, the new version is available on npm at tiddlywiki - npm

As usual, please exercise caution when upgrading, and take care to keep backup copies of everything important.

My thanks to everyone who contributed to this release, from code contributions to feedback. We’re phenomenally lucky to have so many people willing to help, and it is much appreciated.

Any questions or comments are welcome here, or via GitHub.

Best wishes

Jeremy

banner-530

19 Likes

Congratulations on this release! Looking forward to trying it out.

Boy, oh, boy - this is just so exciting, my summer will be totally wrecked and the relationship with my fiancée will end up like all the previous ones :sweat_smile:

A huge thank you to Jeremy and everyone who has spent time, ideas, effort, discussion, hacking and just overall helped out. TiddlyWiki is truly incredible thanks to you!

2 Likes

Thanks @jeremyruston et al, this certainly is a “step change” to TiddlyWiki deserving of the 5.3.x version change. I too have being involved for some time in this and speaking from a super user perspective, rather than a developer, some of the changes will take time for people to come to terms with, but critically, with the backwards compatibility approach there is no rush to learn about these substantial changes, but still value in upgrading your wikis.

I plan to do a post, a more verbose discussion of the changes, on my own view of many of the changes to inspire a broader audience to make use of these advances.

  • And welcome support or critisisum

I urge community members to post as well on new features they value and thus help others come to terms with the changes.

I would also ask people to consider contributing to the documentation at tiddlywiki.com to help in its adoption. If you struggle with something then come to understand it, regardless of your expertise level you are qualified to contribute improved documentation.

2 Likes

Thank you to Jeremy and the whole team!

I’m very excited to dig in deeper now. The changes look useful, powerful, and well thought-out. I can’t wait to try them!

1 Like

Impressive set of new features @jeremyruston and the team! Even more impressive is the way you have been able to weave these powerful new mechanisms into the core without disrupting the existing tools for power users.
Lastly, it takes quite a bit of humility to acknowledge that these new features intend to address shortcomings of previous designs.

Procedures, which are essentially what macros should have been; […]

I look forward to getting myself acquainted with the new set of capabilities!
Congratulations!

Might I ask where to find this plugin?
(Or maybe I misunderstood and it is GA for TW as a whole and not for a single instance?)

If you open the ControlPanel → Plugins tab, you can “Get more plugins”

See screenshot.

Once the plugin is imported, there should be a readme, settings and usage tabs, that you should read.

…and CamelCase finally disabled by default! Thank you Jesus! and Jeremy!

1 Like

This is super cool! Just rewrote a wiki to take advantage of parameterized transclusion, just to get to know this stuff.

Does anyone know if there’s any way to put a 5.3.0 version wiki up on tiddlyhost, or will we need to wait till tiddlyhost updates its available wikis to take advantage of it?

If you can’t wait, you can - in the your wikis page - simply upload a 5.3.0 to an existing tiddlyhost wiki of yours.

1 Like

Oh great! I had been looking around for a place to upload a wiki and could not find it, but I just found it – in the three-dots menu at the far right on the wiki list is an “upload” option. Just tried it and it works great. Thank you!

From the documentation plus this example, it looks as though {{TheText||TheCSS}} in a third tiddler should show the text of TheText but with the CSS (green, 20px). And {{TheText||TheCSS|red|80px}} should show the text of The Text but in red, 80px.

I tried this and nothing changed in the text of either. And I don’t see anything like this in the documentation. Can someone elaborate how I am misunderstanding this?

No. That’s the default transclusion syntax where TheText is the tiddler to be shown and TheCSS is the template to be used to show TheText

The snippets Jeremy quoted are examples and out of context. So they may be misleading.


The parameter pragma docs is here: https://tiddlywiki.com/#Pragma%3A%20\parameters

You can create a tiddler eg:

title: TheText

\parameters (FirstName:Mario, SecondName:Pietsch)

My name is <<FirstName>> <<SecondName>>

and call it like this:

title: test transclusions

{{TheText}}

---

{{TheText|Dave|Gifford}}

The first transclusion will show: “My name is Mario Pietsch”
The second transclusion will show: “My name is Dave Gifford”

The parameters have to be used in the text like variables. …

hope that helps
-mario

2 Likes

Thank you, pmario, that is exactly what I needed.

Are there ways to adjust the CSS of a transclusion by creating a template with css rules?

All hail our misleader Jeremy! :slight_smile:

Thanks Mario, I found it and installed it (had to use the node.js way, put "tiddlywiki/googleanalytics", in tiddlywiki.info). However, I put in my Google Analytics ID in the settings part of the plugin (usage says there are two options to be set but I can see only one) and GA does not see the tag when scanning it manually from GA.
The TW is hosted via docker/node.js - anyone knows if that makes a difference? I tried with a blank test tiddlywiki on tiddlyhost.com, which also did not work as expected.
Are there any pitfalls that I could somehow avoid and get GA to run as intended?

Hooray for parametrized transclusions!

It’s just so much more intuitive to say:

“Transclude Tiddler B, with these parameters, into Tiddler A”

than

“create a list widget context in tiddler A, which the current tiddler of the list template (A1) has the content I want inserted into the transcluded tiddler B, then transclude A1 in place but pipe it through B as a template tiddler” (or something like that) which is what I have usually been doing instead.

Yes. Let me think about a nice way that also respects user palette settings.

1 Like