Faster alternative to MagicTabs?

210 views
Skip to first unread message

Philip Dyer

unread,
Nov 3, 2015, 1:09:11 AM11/3/15
to TiddlyWiki
I started using MagicTabs a while ago, I feel it rounded out the TW interface by making the heirarchy of my wiki clear, as well as providing quick and smart ways to create "child" tiddlers. I actually found the original http://tw5.scholars.tiddlyspot.com/ before it was a plugin and I tweaked it to work on 5.1.9.

An issue that has started to plague me is lag in edit boxes. Maybe my wiki has too many widgets and plugins, or maybe it just has too many tiddlers, but it happens less when editing draft tiddlers directly.

I am proposing to create an alternative plugin, less shiny than MagicTabs, but possibly faster to use.

I'll keep
*the tabs 
*the type tagging of tiddlers
*the fields specifying relationships (which is great with tiddlymap because you get edges generated automatically). 

I'll change
*New buttons immediately create a new tiddler, not a set of edit boxes
*Make use of some of the efforts to make all fields behave like tags (if they make it into core, even better) so you can add sources like you currently add tags

I'll start from the bottom too, so the backend will look a little different.

When it's working, the demo/documentation will be at http://phdyellow.github.io/TW5-fulgurfurca

Any thoughts, suggestions, requests?

Cheers
Phil

Matabele

unread,
Nov 3, 2015, 2:22:18 AM11/3/15
to TiddlyWiki
Hi

On Tuesday, 3 November 2015 08:09:11 UTC+2, Philip Dyer wrote:

*New buttons immediately create a new tiddler, not a set of edit boxes

I had a similar problem some time ago -- have a look at the $x-maketid widget from here.
 
*Make use of some of the efforts to make all fields behave like tags (if they make it into core, even better) so you can add sources like you currently add tags

Again, after trying other approaches I have made some progress with the $action-listops widget -- this may be found here
 
Any thoughts, suggestions, requests?

Would appreciate your feedback on these widget plugins -- they were constructed with such applications in mind. I see you are familiar with TW5 Scholars Edition -- this was constructed using some of my legacy widgets from here. Although much of the functionality of the legacy widgets have now been included in the core (with action-widgets), there still appear to be gaps when developing an application in TW5.

If you need any additional functionality for your application, please let me know and I will attempt to redress the deficiency.

regards

Philip Dyer

unread,
Nov 4, 2015, 2:38:14 AM11/4/15
to TiddlyWiki
Hi Matabele,
Thanks for pointing out listops, I'd found your $x-mangletags widget earlier, is listops newer? For field manipulation I've also seen http://ooktech.com/jed/ExampleWikis/ListManipulation/ . I'll try these out let you know how it goes.

Just to be clear, I want the button to create a new tiddler for immediate editing without prior configuration. My main issue right now is the lag that seems to build up when an edit box is added to the ui. I don't think there is anything I can't do with the tm-newtiddler message at this stage, but I'll let you know if I need to use your widget. One question, if I set the title field to something not unique, will  $x-maketid correct that and append a number? The tm-newtiddler message will not do that.

Cheers
Phil

Matabele

unread,
Nov 4, 2015, 12:09:37 PM11/4/15
to TiddlyWiki
Hi 


On Wednesday, 4 November 2015 09:38:14 UTC+2, Philip Dyer wrote:

Thanks for pointing out listops, I'd found your $x-mangletags widget earlier, is listops newer?

The $action-listops widget is all new and aimed at manipulating a list in any field or data index, using a subfilter expression The $x-mangletags widget was an evolution from my old $mangletags widget, which was designed to do a search/replace on the tags field. 

For field manipulation I've also seen http://ooktech.com/jed/ExampleWikis/ListManipulation/ . I'll try these out let you know how it goes.

I first tried an approach similar to this, using an increasing number of widget attributes to manipulate the string (an evolution from the $x-mangletags widget.) This proved difficult as it seemed impossible to guess all of the uses to which lists might be put, and write attributes to cover all of the necessary operations. I then tried the technique adopted in the $action-listops widget -- applying a subfilter expression to the string.

The advantage is that the widget is simple and never needs to change -- subfilter expressions can be built using any combination of filter operators to achieve the desired result. In the event that an operation is missing, a new filter operator may be written. If you need a new filter operator, please let me know and I'll andeavour to write one.

The only advantage of Jed's list $action-editlist is in the case that your application requires multiple instances of a single item (this was one of the design considerations for his widget.) Although none of my filters enforce single instances of items, several of the core filter operators do so (including the +[] and -[] operators -- in practice, therefore, my widget manipulates sets.)
 
 One question, if I set the title field to something not unique, will  $x-maketid correct that and append a number? The tm-newtiddler message will not do that.

The $x-maketid widget will create a unique name using an appended integer -- repeated clicks of the button will, therefore, create a number of tiddlers with different names. A date/time may also be appended to the title -- this tends to generate a unique name without the need for appending an integer (if two are created in quick succession, an integer will be appended to the second title.)

The $x-maketid widget can create tiddlers in the background, or navigate to the new tiddler without opening for editing, or will navigate to and open the tiddler for editing -- whatever you require.

regards

Philip Dyer

unread,
Nov 4, 2015, 4:06:02 PM11/4/15
to TiddlyWiki
Hi Matabele


The advantage is that the widget is simple and never needs to change -- subfilter expressions can be built using any combination of filter operators to achieve the desired result. In the event that an operation is missing, a new filter operator may be written. If you need a new filter operator, please let me know and I'll andeavour to write one.

I do like the modular approach of filters. I'll start from there.
 
The only advantage of Jed's list $action-editlist is in the case that your application requires multiple instances of a single item (this was one of the design considerations for his widget.) Although none of my filters enforce single instances of items, several of the core filter operators do so (including the +[] and -[] operators -- in practice, therefore, my widget manipulates sets.)

Sets is exactly what I want. I am just listing tiddler titles like tags do, only in multiple fields. I want the interface to look like you are adding tags, with a popup autocomplete. No more typos or copy pasting a search result inside [[ ]]. Actually, that might be a really useful widget/macro on it's own.

 
The $x-maketid widget will create a unique name using an appended integer -- repeated clicks of the button will, therefore, create a number of tiddlers with different names. A date/time may also be appended to the title -- this tends to generate a unique name without the need for appending an integer (if two are created in quick succession, an integer will be appended to the second title.)

Great, creating a unique name is an advantage. Dates are a good idea too, hadn't thought of that.

Cheers
Phil 
Reply all
Reply to author
Forward
0 new messages