The problem is that you are attempting to find a "logical" approach to what is fundamentally a "human" problem -- There is no "logic" (at the string level) to how things are named. As far as electrons are concerned, TiddlyWiki makes as much sense as TiddlYwiki .
A somewhat harder, but more reliable approach, might be to grab the text from the widget tiddlers. At the bottom of each tiddler is text like: exports.setvariable = SetWidget; where you could, hypothetically, extract the widget name. Unfortunately, for the "action-" tiddlers, you're going to have to append "action" since they're named differently (did I mention names weren't logical?) On Monday, February 17, 2020 at 11:49:57 PM UTC-8, Mat wrote: > > Darn... turns out it ain't quite enuff. OK, here's the real issue I'm > trying to solve: > > I'm trying to extract the widget names from the actual js widgets in order > to create links to their respective widget doc on tiddlywiki.com. The > goal is a selectwidget where the user selects a widget title to get its > docs show up in iframes. > > The problem is thus about reshaping the widgets js code names into > tiddlywiki.com doc title format, i.e CamelCase. > > The initial extraction is done like so: > > [all[shadows]prefix[$:/core/modules/widgets/]removeprefix[$:/core/modules/ > widgets/]removesuffix[.js]splitbefore[/]!suffix[/]] > > which gives this: > > action-createtiddler >> action-deletefield >> action-deletetiddler >> action-listops >> action-navigate >> action-sendmessage >> action-setfield >> browse >> button >> <http://editormagic.tiddlyspot.com/#button>... > > > From here, the exact manipulation depends on the title. E.g "browse" > merely needs a capital initial, whereas "action-creattiddler" should become > "ActionCreateTiddler". First this filter is added: > > sentencecase[]split[-]sentencecase[]join[] > > so "action-creattiddler" and all the other such formatted become > ActionCreatetiddler where only the capital T, for tiddler, is missing. > > Thus my original question - but I missed to clarify that there are > multiple suffixes that must also have uppercase initial: > > field >> tiddler >> message >> block >> mangler >> variables >> catcher >> call >> (possibly some more) . > > > Here's the full construct thus far: > > <$list filter=' > [all[shadows]prefix[$:/core/modules/widgets/]removeprefix[$:/core/modules/widgets/]removesuffix[.js]splitbefore[/]!suffix[/]addsuffix[ > > ]sentencecase[]split[-]sentencecase[]join[]split[ ]addsuffix[ ]]'/> > > Marks clever idea was in deed good for my simplified case with only one > suffix but can anyone come up with something efficient also for this > problem with multiple suffixes? > > For my use case, one may argue that the complete list is not overly long > so it could as well be a static title list - but the solution should not > have to be modified if new widgets are added. In deed, the suffix list > would still need to be hard coded but these are (hopefully) less likely to > change. > > The whole concept is part of a much more general thingy soon to be > released :-) > > Thank you! > > <:-) > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/29bbb6bd-edfb-48cd-b041-65328406aa45%40googlegroups.com.

