This is a preview of an experimental branch of Streams intended to explore optimizations and new ideas. Not all of these changes will make it to the final released version, depending on user feedback.
Specifically, I am interested in feedback from regular users of Streams who can compare these new changes to the stable released version.
https://saqimtiaz.github.io/sq-tw/temp/streams-0.2-preview.html
If you are new to Streams, I suggest looking at the latest stable release instead:
https://groups.google.com/g/tiddlywiki/c/1jTwdmq8cgI
There are significant performance improvements. Very large streams now render over 300% faster.
This has involved drastically simplifying the HTML structure of nodes, as well as optimizing the code used for drag and drop and the context menu.
You can compare the rendering time for the tiddler "TiddlyWiki Toolmap" on the old version versus the new one.
Please pay attention to whether drag and drop and the context menu still work as expected.
A lot of tweaks to the core code and custom widgets previously included in Streams have been deprecated as they are now a part of the TiddlyWiki core, making the plugin smaller and lighter to use despite the addition of new features.
The context menu has been extended with indent and unindent options.
Drag and Drop
The area that can be grabbed to drag a node has been extended.
Drag and drop now works relatively well in Chrome on Android mobile devices.
The modifier keys used to control the behaviour when dragging and dropping a node are customizable
Double click
You can also double click inside the editor as well as in the area to left of it to exit editing
You can now double click the area left of a node as well as on the content of a node to edit.
If using the default editor, you can also turn off double click inside the editor textarea
Swipe on touch devices
There is experimental support for swiping on nodes in touch devices
Two modes are supported
Swipe to indent / unindent
Swipe to trigger a context menu on the node, from which you can indent/unindent, open, delete etc.
There isn't any visual feedback when swiping. Due to the lack of native browser support this will not be implemented and therefore the behaviour to indent/unindent for swipe is likely to be dropped as it can be difficult to undo.
Miscellaneous
The max-width of a node is now customizable.
The indent level of the stream root has been decreased.
There is a new settings control panel for Streams, available both in the Control Panel as well as the plugin tiddler.
If the CodeMirror plugin is installed, there is a configuration option in the Streams settings to choose the editor to use for Streams nodes.
Testing and feedback is needed to make sure this works as expected, both using codemirror as the editor and using the default editor. The areas most likely to be affected are:
- splitting a node by hitting Enter with the text cursor/caret in the middle of some text,
- hitting Enter with the cursor at the beginning of some text,
- or hitting backspace with the cursor at the beginning of a text.
--
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 tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/450be3ea-2b1f-4206-89b8-b1230bded881n%40googlegroups.com.
Hi Mohammad,Thank you for the kind words and also the enthusiasm. Note that this is still version 0.2, we haven't gotten to 1.0 yet :)A lot of the smaller tweaks and widgets from Streams 0.1.x were already included in the core for TW 5.1.23.There are indeed some smaller things that I would prefer to include as separate plugins, but do not do so due to the lack of better dependency management and installation.
I did indeed have the core in mind when experimenting with the search in the Settings.Speaking of settings, I would personally prefer to have the code which displays the settings UI as a separate plugin, which when added creates a nice configuration UI for plugins that support it. You may find it of interest how each config tiddler for a setting specifies its own UI:
I am extending this with options for grouping settings together, specifying an order, and making a setting dependent on another setting being enabled.
The next round of improvements in Streams will focus on simplifying the action macros to take advantage of the filter improvements in 5.1.23.
Cheers,
Saq
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/19bf96f9-4303-481c-8371-0a268bab1659n%40googlegroups.com.
- It feels like I have to hold down a little longer that I would expect before the node becomes draggable. I know you wouldn't want it to happen too quickly so as not to interfere with scrolling, but to me it just feels too long. It's hard to say for sure without trying it for a longer period, but I think it impacts the UX enough that it would probably prevent me from bothering to use drag&drop at all on mobile.
- I have found that whenever I double tap to close edit mode on mobile I end up highlighting some text. In most cases this doesn't actually affect the function, but I do find it mildly stressful.
- Double tapping to the left of the text to works well, though currently I don't instinctively do this. It also feels like it would be more natural as a single rather than a double tap.
- Swiping to open the context menu is super-useful. Currently it seems that if a context menu is already open, switching to a context menu on a different node requires two steps: tapping to close the menu, then swiping to open a new one. I think it would be more natural if swiping on a separate node did both of these things at once.
- I tried the swipe-to-indent setting and found that it worked well, and the lack of visual feedback/ability to undo doesn't strike me as a massive problem. However I would probably not use this feature personally as I feel that the context menu option is more useful.
- One thing that bothered me about the current release is that I would occasionally create new nodes from tiddlers that already had titles like "tiddler/timestamp" and end up with lots of tiddlers called "tiddler/timestamp/timestamp/timestamp" etc. With the new control panel I was able to change the title template to my own custom macro that ignores any already existing timestamps when generating new titles. I wonder if this should be the default behaviour? Here is the macro that I used:
- \define new-streams-title()
<$vars timestamp=<<now "[UTC]YYYY0MM0DD0hh0mm0ssXXX">> >
<$list filter="[<stream-root-title>!regexp[^.*/\d{17}$]]">
{{{ [<currentTiddler>addsuffix[/]addsuffix<timestamp>] }}}
</$list>
<$list filter="[<stream-root-title>regexp[^.*/\d{17}$]]">
{{{ [<currentTiddler>splitbefore[/]addsuffix<timestamp>] }}}
</$list>
</$vars>
\end
- The last point doesn't relate directly to the new features, but I might as well mention it here. I frequently find myself opening a tiddler and seeing that I have a bunch of nodes left in edit mode, which I have to toggle one at a time. It would be nice I think to have a way either for nodes to be set to read-mode automatically (maybe triggered by opening the tiddler for a node, or closing the streams tiddler), or an option to just set all nodes to read-only in batch.
I know that you specifically mentioned the drag and drop reordering functionality in Mobile Chrome but I can confirm that it doesn't work in Mobile Firefox. However, what does work in Firefox is the pop-up context menu which doesn't seem to work on Mobile Chrome. If there was a "Move" option in there that put the stream in "draggable-mode", Firefox would have full functionality. I have no idea if that is possible though in the context of UI events and javascript or whether it doesn't work in Firefox due to it not having some core functionality.
One issue that I have been trying to find the best way to tackle is the concept of cloning tiddlers with streams. The current cloning will work in one sense in that you can create a clone tiddler, and it will look like the original, but they are kind-of siamese-clones in that they point to the same stream-children and if something is edited in the original stream, the clone stream gets changed too.
2) An option/button to also clone the stream-children on demand into the new cloned parent if desired. Either a config option that bakes it into the core clone button, a new clone-and-relink button or a right-click option on the stream controls to relink/clone children to a new parent.
3) A "destream" option to convert a stream into a normal unordered list so that you can clone it normally and a corresponding "enstream" option that does the opposite to undo the destream on both copies. I am working on this option ... "destream" is pretty straight-forward (see below). "enstream" is trickier and I am still working out the way to do that. It seems like the less straightforward way but I think that it will have a nice dual purpose to import lists from other sources (like Word or html) into streams. I think some of the new search and replace functionality might make this possible.
I might abandon my efforts on 3) and do 2) since that seems more doable (but lacks the import functionality). 1) is more elegant but I haven't worked out how to do that as it might involve tweaking the innards of stream itself which I am lost in as soon as it gets into javascript.
>>> I am now wondering if we should just use the context menu for this. Swipe to show the context menu and have an option to exit editing. I intend to make the menu items that come up in the context menu configurable via a control panel so that it does not get overly crowded and users can customize it to their liking.My instinct is that this would be quite cumbersome, but it's hard to know without having tried it.
I am a heavy streams user. It helps to organize my notes in a structured manner so that I can easily retrieve them when I need a quick reference. I had given an early feedback regarding the current beta version in Reddit and GitHub. So I will concentrate on what I wish to see in streams in future plus a few late feedback comments about the beta version.
--
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 tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/30e1424f-143e-480a-be54-08793d5b8008n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/309a2a37-28ee-4e81-bf2e-a6cb9a259167n%40googlegroups.com.
--
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 tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/5ee2c2ca-65cb-4297-a5c8-d7734e3add16n%40googlegroups.com.
Item one
item two
sub-item of two
sub-sub-item of two
item three