Streams-States (expanding the Outliner and Fusion plugins)

I really appreciate your work on it @linonetwo. The plan is to explore adopting your changes as part of a complete rewrite once I find the time. The very first versions of Streams were heavily macro based but changed to transcluding tiddlers instead because of drastic performance differeneces. Since then I believe we have mitigated most of the performance differences but some testing will be needed to make sure that we have no regression in this regards if we switch to using procedures. I am also holding off on a Streams rewrite until some things land in the core, like better localization support and improved palettes.

I have experimented with this and use it in one of my wikis, and it also entails changes to streams to remove the distinction to some extent between editing and view modes. This is another area that I want to address in the Streams rewrite.

The Streams rewrite is planned to be entirely backwards compatible for end users, but not for plugin writers or advanced users that have customized the plugin. Therefore, the plan is to one such breaking change with a complete rewrite rather than piecemeal. Once I find the time, I will make a post with the issues that I am tracking that I want to explore or address in a Streams rewrite.

For reference here is how you can use the original Streams as a widget or procedure though without the ability to pass parameters to replace config tiddlers:

\procedure streams(id:"tiddler-to-hold-stream-list")
<$tiddler tiddler=<<id>> >
<$transclude $tiddler="$:/plugins/sq/streams/nodes-list-template"/>
</$tiddler>
\end streams

This should also make it possible to embed more than one Stream in a single tiddler, though I would approach that differently. Namely, a Stream where the first level was customized to just appear like a regular paragraph (rather than a list item) with the children nodes visible as a stream.

Allowing easier customization of the appearance of the nodes (list vs paragraphy etc) is a part of what I want to explore in the rewrite.

Edit: corrected syntax typo

3 Likes

Interesting, I will need to experiment with this some, but it sounds like it might be applicable to my desire to have multiple sets of relationships for the same streamlist (entanglement), perhaps with some tinkering.

As in, same tiddler but different ID (if I understand your usage) representing different states, allowing the same node to be represented in multiple lists with multiple relationship sets.

If this is the direction you’re interested in taking the plugin, with sections, etc, I would gladly PR it. I did not do so because 1) I meant as a demo, hence not being in the plugin section, 2) I originally began with the “Entanglement” project that seemed a bit of of scope.

I suppose another reason I didn’t PR it is because I have mostly worked on modifying @fastfreddys plugin, and have modified the stream outliner only a little.

EDIT

Realize after waking up some that I did not understand your usage – not a path forward for my idea.

This does not seem to work straight out of the box for me, perhaps user error.

1 Like

There was a typo, now corrected.

I haven’t yet had the chance to explore your customizations so don’t quite have a feel for what your requirements are. If you need to customize and pass configuration options as variables, it wont help. If you want to view multiple streams inside the same tiddler, then this is one way to achieve that.

Create a tiddler at Streams — on TiddlyWiki 5.2.2 called Test and paste the following in it:

\define streams(id)
<$tiddler tiddler=<<__id__>> >
<$transclude tiddler="$:/plugins/sq/streams/nodes-list-template"/>
</$tiddler>
\end

!!UX Tweaks

Some text about UX tweaks.

<<streams "Streams 0.2 improvements/20201219205647810">>

!! Filters

Some text about filters.

<<streams "Streams 0.2 improvements/Filters">>

I suspect it will need more finessing in terms of state tiddlers but that is one way to approach it.

Yes, that works, I expect that it would be able to achieve the same functional role as Stream-outliner in the demo I have set out – some further tests down the line.

1 Like