Is this regarding the actions and events attributes of eventcatcher that are already mentioned in the documentation as deprecated

gavart.ist
Gavin Gamboa 🌱 digital garden work repository 🗂 personal wiki
Is this regarding the actions and events attributes of eventcatcher that are already mentioned in the documentation as deprecated
As a side note, if we need to do a major version update, then the documentation should be supplemented with as many rich examples as possible. Otherwise, we’ll be asking all sorts of questions on the forums again about the content after the update, whether it’s new or old changes. I know that the forums are very enthusiastic and helpful, but good documentation with lots of examples would probably reduce a lot of unnecessary problems. In fact, there are some solutions that could be put into the documentation, as having such explanations would allow a better understanding of what some of the new features do. Similar to TW-Scripts, but put the content in the documentation instead of a separate project. Because the content of the documentation will be translated by someone, a separate project will rarely be translated.
Just to add my two cents about uglifying. I don’t know if the core should be uglified by default. The advantage of the Uglify plugin is that if one wants uglified code, all they need do is include the plugin (or run their file through the wizard if they’re not using Node.JS).
This allows users to have their cake and eat it too. They can have uglified code quite easily, or if they want easy-to-work-with code, then they don’t. If we uglify by default, then we’re forcing end-users’ hands.
I wouldn’t be against Relink being added to the core. Its size would come down quite a bit from doing that, because a significant part of its code is about tampering with parts of core to make it do what it wants.
It also goes to major steps to be able to relink in extreme edge cases, and if we’re willing to drop that, it also slims quite a bit.
Though the strong argument against merging it is that currently it’s maintained by me, and that it gets kept up to date with new releases with no extra effort from the core team. The only price is that I get pissed off and snip at people on the forums for every major release.
The nature of these is that they might be off, but that the spirit of them would be great any way closest they can be accomplished without breaking the dedication level to backwards/forwards compatibility.
These UI feature suggestions:
These features could create a mass of possibilities of proliferation in custom layout configurations without users needing to know js.
Thank you for the thoughtful and useful feedback. I’ve made some edits to the OP which I have marked with the date.
Yes, the idea is to expose low level primitives that allow deep customisation of the location hash behaviour.
There would be a global setting to control the deduplication behaviour. I am also hoping to offer the ability to switch between modes on a per-filter basis, and the ability to control deduplication via a variable.
The primary work involved with this is to go through the core and ensure that there are no dependencies on the current deduplication setting.
I agree that an official plugin library is vital to the future of TiddlyWiki. However, I think we would be wise to treat improvements to the plugin library as out of scope for v5.4.0. There is a lot of work involved, and a good deal of that work is tasks that fall outside of the core development that is the focus for v5.4.0.
This comes up regularly, and I very much like that there are experiments in this area.
However, while I am sympathetic to the desire to optimise the performance per byte ratio, there is a trade-off here: it would make supporting TiddlyWiki users more complex because we would be dealing with what would amount to a series of different TiddlyWikis, each with their own selection of core tiddlers and plugins.
I like to talk about universality as one of the key goals of the core. It’s a useful way of thinking about several different aspects of the development of TiddlyWIki:
I am not referring to the filtered attribute syntax like this:
<$text text={{{ [<myvar>addprefix<anothervar>] }}}/>
The problems are around using the triple brace syntax on its own:
{{{ [<myvar>addprefix<anothervar>] }}}
As things stand, that syntax produces a list of linked titles returned by the filter. Sadly, it just produces a stack of DIVs and not a semantic HTML list
My guess is that this syntax is rarely used because it is so limited. Part of the process of the development v5.4.0 is to validate those assumptions.
If we do decide to redefine this syntax, there is an opportunity to think up some useful alternative meanings. For example:
I’d like to tack on to this, I think stronger definitions of what a plugin, palette, theme, and so on may be beneficial. Many times these bleed over into one another. I’m unsure if this counts more towards enhancements to TiddlyWiki itself, or something more along the lines of revisions to documentation?
It would be fantastic if we could mobilise a team to focus on documentation improvements. We’ve had some incredibly useful contributions over the years and yet there is always more to do.
Is there any interest in updating the JavaScript syntax from ES5 → ES2024? Stuff like using class syntax instead of prototype updating, async/await over callbacks, etc.
My thoughts on this are included in the associated GitHub thread. While it may be appropriate to use ES2024 in some subsidiary projects like MWS, I think we should continue to target a relatively conservative subset of JavaScript, albeit more modern than at present. I think this approach is enormously beneficial to end users, and doesn’t hit developers too hard.
I would be very interested on how sections will be implemented:
We’ve had a few attempts at this over the years, but nothing that has been truly satisfactory. I am confident that implementing this feature would require at least a modest break in backwards compatibility, and so we should definitely give it consideration for v5.4.0.
There have been improvements to permalink handling that go a long towards making linking to section marks viable. However, my sense is that users actually want something more ambitious: to be able to address a section of a tiddler in such a way that it can be used anywhere a tiddler can be used. In other words, being able to transclude just the chunk of a tiddler delimited by two section marks.
I would like to explore whether we can find a viable approach. There is a possibility that we could somehow be able to optionally treat wikitext tiddlers as if they were plugins with each section being a separate shadow tiddler. More thinking is definitely needed; we need a solution that is elegant and easy to use.
The proposed change in deduplication also worries me the most. There are so many filters not only in my own code but also in the core that might or might not behave differently. Also, it would be hard to trace any strange UI behavior back to this change without explicitly looking for it. Any uses of
count[]
come to mind, but I’m sure there are many others where I implicitly rely on deduplication.
We’ll change the filters in the core to work in either mode.
When we’ve experimented with disabling deduplication in the core we actually found that the broken cases were relatively easy to spot; typically, the giveaway would be duplicate items appearing in a list that shouldn’t have duplicates.
I’m surprised that this ActionWidget Execution Modes wasn’t mentioned - the tiddler mentions backwards capability right in it. This is an ongoing source of confusion for people as they start building things with buttons. It comes up in the forum often as the default setting makes TiddlyWiki seem broken.
Excellent point, thank you.I will add it to the OP.
I wouldn’t be against Relink being added to the core. Its size would come down quite a bit from doing that, because a significant part of its code is about tampering with parts of core to make it do what it wants.
I think that might be the best approach. I will add it to the OP in the section about staying competitive.
The problems are around using the triple brace syntax on its own:
{{{ [<myvar>addprefix<anothervar>] }}}
As things stand, that syntax produces a list of linked titles returned by the filter. Sadly, it just produces a stack of DIVs and not a semantic HTML list
My guess is that this syntax is rarely used because it is so limited. Part of the process of the development v5.4.0 is to validate those assumptions.
For what it’s worth, I use this syntax regularly, especially for testing purposes, and use the {{{ filter || template }}}
syntax even more often — essentially, whenever I don’t need to define any of the other $list attributes. I would be sad to lose the current functionality, and it would also break a number of my templates.
ETA: One common scenario in which I’d use {{{ [<myvar>addprefix<anothervar>] }}}
alone (i.e., without a transclusion template) is to display an inline link to the single-tiddler output of the filter if and only if it exists — thus, as a shorter alternative to <$link to={{{ [<myvar>addprefix<anothervar>] }}} />
or <$list filter="[<myvar>addprefix<anothervar>]"/>
. In such cases, I wouldn’t want it to default to <ul><li><$link/></li></ul>
.
In instances in which I do want filter results in an unordered list, I normally use <<list-links "[<myvar>addprefix<anothervar>]">>
instead.
The problems are around using the triple brace syntax on its own:
{{{ [<myvar>addprefix<anothervar>] }}}
As things stand, that syntax produces a list of linked titles returned by the filter. Sadly, it just produces a stack of DIVs and not a semantic HTML list
My guess is that this syntax is rarely used because it is so limited. Part of the process of the development v5.4.0 is to validate those assumptions.
I can confirm that I for one use the stand-alone version only for temporary debugging… for exactly the reasons you describe.
Yes, I do that a lot too. Even though I know its practically equivalent to the following, I still favour this shortcut syntax. This further raises the question, how consistent is TiddlyWiki’s shortcut syntax, and will this incompatible update break the previous shortcut syntax? Because I’ve always preferred to use the shortcut syntax when I’ve grasped what it means.
<$list filter="[<myvar>addprefix<anothervar>]">
<$transclude tiddler="template" />
</$list>
Incompatible updates can include updates that are more friendly to newbies. For example, as mentioned here, add a hidden setting to turn off drag and drop importing in Story River. I often run into this problem when I visit many TiddlyWiki sites.
Improvements specifically ruled out for v5.4.0
…
- Improvements to the plugin library
I noticed this when i re-read the OP after I had posted about the plugin mechanism - so fair call on keeping it out of scope for now. Good to know that it is on the radar as a vital feature.
Given that this is a growing build up of planning over future releases - have you considered using the Projects feature of GitHub so its clear whats in this release and whats a priority for future releases ? I imagine it could also help track anyone who volunteers to work on code or documentation changes prior to the PR being raised ?
CB
My guess is that this syntax is rarely used because it is so limited. Part of the process of the development v5.4.0 is to validate those assumptions.
from user point of view, <<list-links [<myvar>addprefix<anothervar>] >>
works well, it’s clear what the purpose of the filter is.
I also use the shortcut inside codeblocks for debugging eg
\function lf()[charcode[10]]
<$codeblock code={{{ [<myvar>addprefix<anothervar>] +[join<lf>] }}} />
I have always thought of it more as a tool, I never really thought this shortcut syntax was intended for use in wikitext body.
Fascinating discussion. I appreciate the rigor with which Jeremy is approaching the new version. I am learning a lot as I catch up in this thread.
FWIW I do use this filtered transclusion shortcut syntax in my right sidebar tabs. I find it useful beyond simply for testing filters.
Table of Contents tiddler example:
Gavin Gamboa 🌱 digital garden work repository 🗂 personal wiki
On a non technical note, would this be a good time to move the default icon set over to one @jeremyruston you were discussing …some time ago?
Or did that already happen?!
I suggest we try to tackle refactoring the import process as part of v5.4.0, to allow for manually switching which deserializer is used and thus allowing for greater end user control over how data to be imported is interpreted.
we try to tackle refactoring the import process as part of v5.4.0, to allow for manually switching which deserializer is used and thus allowing for greater end user control over how data to be imported is interpreted.
Right. Given that for many end-users (though not all) import and export are both central to getting the best usage of TW—I’d really like to see both better grained control of import and export; and more documentation on how to write importers and exporters.