Final Checks Before Release of v5.3.0

TiddlyWiki v5.3.0 is due to be released on 30th June 2023. Before then we would appreciate everyones help in testing the new release.

The upcoming v5.3.0 release of TiddlyWiki introduces some significant improvements and new features related to some of TiddlyWiki’s most fundamental components: macros, widgets, operators and transclusion. v5.3.0 also contains several other bug fixes and improvements. All the changes are intended to be backwards compatible.

Since I announced early testing of v5.3.0 there have been several further new features added to v5.3.0:

  • A new syntax for widget attributes quoted with backticks that can use textual substitution
  • A new “substitute” filter operator for performing flexible textual substitution without having to create a macro
  • A new message for sending HTTP requests for integrating with APIs or dynamically loading content
  • A new :then[...] filter run prefix
  • An updated Google Analytics plugin to work with the new GA4 version
  • Automatic linking of CamelCase terms is now disabled by default
  • A change to way that custom widgets and filter operators are marked - see V5.3.0: Custom widgets and filter operator names must now contain a period

The prerelease is available at:

https://tiddlywiki.com/prerelease

There are several ways you can help:

Any feedback is welcome here, or on GitHub.

Please wait until the official release before updating your day-to-day wikis, and remember the first rule of TiddlyWiki: to make sure to take (and verify) backups before doing anything risky.

Best wishes

Jeremy

8 Likes

Are there plans to convert many of the core macros to use this new system? (Not necessarily this release, but in the future)

This is all very exciting and I look forward to its release. I will continue to test and play with the prerelease to assist in the detection of issues, to come to understand it, and to find ways to explain new methods available once release.

Thanks @jeremyruston and all the contributors to getting it this far, there are numerous improvements that allow much more to be done within tiddlywiki than ever before and often in much simpler ways.

I want to encourage people, of all skill levels, to take a little time to play with one or more of the new features. Of course if you find a bug all the better but it also helps knowing what people struggle with.

Other than @jeremyruston’s backup guidance I also want to remind everyone that

TiddlyWiki endeavours to ensure backward compatibility, so all your methods and tricks should still work in the new release and you don’t have to learn any of these new methods, but when you do you will be empowered to do more, or use solutions made by others that do more.

This is a serious milestone event in TiddlyWikis history, and your reviews and contributions encouraged.

1 Like

I think there are some macros left in the core, that use the “old” text substitution style. I’m pretty sure, they will be changed in the future.

For the rest there is no need to rush.

I think as soon as we start to replace macros with parametrized transclusions, they will not be 100% backwards compatible. At the moment 3rd party plugins can overwrite core-macros to change them, without changing core tiddlers.

Eg: If core-macros are replaced by transclusions, just for the sake of it, existing 3rd party plugins may stop working. So we need to be careful.

As I was reading through the documentation for the :then filter run prefix added, I expected to see it in the Filter Expression page as it sounded like essentially a mirror of the :else filter run prefix. Especially this section which I reference a lot - should :then be shown below the :else here?.

image

I then started digging around and saw a couple inconsistencies in which prefixes were mentioned on other pages of the documentation. The only complete list appears to be NFRP Named Filter Run Prefix but in that article there are no links to any of the other documentation. To get links to prefix documentation, the other (incomplete) lists are:

image

As a summary of which articles mention which (my abbreviations up above), here’s what I’m seeing.
image

There are enough of these Filter Run Prefixes that maybe they should be consolidated and have a summary table like there is for Filter Operators (my most commonly referred to page) which looks like this:

It has all operators listed with links to documentation with a brief purpose and helpful flags on the end columns. So I was thinking we could use a similar format for Filter Run Prefixes, something like:

image

Now I’m aware that my personal style tends towards overly simplified, but reading / contrasting is often how I am able to understand, so it’s really helpful to see all options together and compared.

7 Likes

There are 2 big docs PR open at the moment.

Have a look at: TiddlyWiki — a non-linear personal web notebookwhere both of them can be tested.

It would be possible to include the tables you have created. … But first we would need to get the first 2 doc only PRs merged

@jeremyruston Any chance to review the first PR with the breadcrumbs, so that I can fix the second one which now contains conflicts, due to the merge of the :then filter run-prefix.

In this learning phase I would see value adding documentation with real world examples and perhaps even some text on the ways to use features that go beyond the precise formal documentation.

  • This includes how to replace more fragile methods with new ones that will be available soon.

Can or could we submit documentation updates or changes to the pre-release as we do on tiddlywiki.com where it generates a PR?

  • It’s not that the current way we do documentation is wrong, concise and specific documentation is critical, but I feel especially with new changes, and certainly much of the existing documentation, we could add more value to help users, new or experienced to get more insight into features
  • What opportunities for solving problems does a particular feature enables?
    • eg substitute for constructing strings or tooltips using variables etc…
  • How to make use of a new feature to do common activities
    • For example currently using +[join[ ]] is a good way to generate tooltips with current and active content.
    • In 5.3.0 we can do this using the new substitute features to generate tooltips containing other values.
  • Present more examples that suit what we want to do, for example few features explain how to use them with variables, or values in tiddlers and fields as a parameter to that feature, but this is common.
    • For example using enlist and enlist-input, to save lists of titles, in a variable and use it multiple times rather than needing to use the same filter multiple times.
    • 5.3.x will allow users to do this with functions, as filters and custom operators, but how can you make use of this?

If necessary we could build a separate “make use of” wiki or add it to the existing documentation.

  • I am happy to contribute to this type of documentation, and traditional changes, on the pre-release, but it would help if it were as easy as submitting changes to tiddlywiki.com

On the prerelease site the tiddler SystemTag: $:/tags/Macro links SystemTag $:/tags/Global which does not exist.
There is a colon missing. SystemTag: $:/tags/Global exists.

The first code-block in Procedure Definitions and the second code-block in Pragma: \procedure use \define.
Shouldn’t they use \procedure as \define creates a macro instead of a procedure?

i agree with this, it’s quite a bit confusing to get details on all the filter run prefixes, especially when one would assume they were collected somewhere like filter operators, widgets, etc. i find myself searching for “Filter Run Prefixes” looking for a master list in its own tiddler.

1 Like

Immanent release, exciting!

I have been scanning for whether there would be a banner competition as has been the tradition. Have you decided against that path, @jeremyruston ?

-Springer

No! I’m just running a bit late, I’ll send out a message shortly with the competition details.

Many thanks

Jeremy

1 Like

Contributions to the documentation are very welcome. Filter run prefixes documentation needs a fair bit of attention, see the first two items at Documentation tiddlers on TiddlyWiki.com in need of work (please contribute to the list)

For those with a Github account, this wiki is a relatively easy means of submitting documentation updates for tiddlywiki.com

2 Likes

Looks like my mind went the same place that @twMat 's did a couple years ago with his post - Ranty proposal for docs on "Filter Run Prefixes". I’ll see if I can figure out how to contribute.

1 Like

A minor documentation suggestion (which at this late stage can certainly wait until after v5.3.0 is released):

In https://tiddlywiki.com/prerelease/#Procedures

The opening example:

\procedure my-procedure(parameter:"Default value")
This is the procedure, and the parameter is <<parameter>>.
\end

might avoid any ambiguity if rewritten like this:

\procedure my-procedure(param1:"Default value")
This is the procedure, and the first parameter is <<param1>>.
\end

Or param-1, paramOne, first-param, etc.

4 Likes

5 posts were split to a new topic: V5.3.0 - final checks - undefined function in a filter creates RSOD

I think before anyone can meaningfully contribute, we need to get PR #7368 out of the door to establish a baseline of Mario’s current progress, and expand from there. Otherwise, much work may be for naught.

You might remember that I had to “cripple” the :then FRP documentation in order not to base it on that PR…

1 Like

I read;

the new text substitution syntax for widget attributes, allows widget attributes to be assigned the value of a string with certain placeholders being replaced by their processed contents.

The emphasis here is on widget attributes.

  • Would it be possible for this to be extended to html attributes including arbitrary html tags and attributes?
  • If not it may be better to modify the examples in TiddlyWiki Pre-release tiddler to illustrate the attr= is only inside a widget, perhaps using an existing attribute in an existing widget.
    • Perhaps bold widget attributes for emphasis
    • Perhaps state “this is not valid on html attributes”.

See the section on Attributes in https://tiddlywiki.com/prerelease/#HTML%20in%20WikiText

HTML elements and widgets use the same attribute types: https://tiddlywiki.com/prerelease/#Widget%20Attributes

Thanks @saqimtiaz some tests I did must have had other errors.

I am now doing some experiments with the new substitution also on html attributes, I have it working in some cases;

  • But the documentation can still spell this out and link to your references.
<span title=`Here in $(currentTiddler)$` style.color=`${ [{!!text-color}!is[blank]else[green]] }$`>tooltip</span>
  • This works but we need the !is[blank]]