Preview: keyboard driven draggable bullets

2,301 views
Skip to first unread message

Saq Imtiaz

unread,
May 20, 2020, 5:44:31 PM5/20/20
to tiddl...@googlegroups.com
Edited (06/07/2020)
I've been asked to point out that here is a new thread for further updates, feedback and bug reports for Streams:

Please do not post further in this thread as it is getting far too long.

Demo:

Code:

---

When I'm under the weather I tend to prototype. Spent some time reworking code from my eternally in progress task manager in an attempt to make it more general purpose, as a bullet list note taking tool that may be of utility to others.

https://drive.google.com/file/d/1SB06s13tj8P3cC2UewnfzXf08UQ7jwYK/view?usp=drivesdk

https://drive.google.com/file/d/1SLESm6OIfHsScwYePGOs5ce3o3wpQ0CO/view?usp=drivesdk

- everything except the dragging is keyboard driven
- each bullet is a separate tiddler. Lots of different pros and cons to this approach, but was ideal for a task manager.
- this is all in wikitext, no extra JS.

 Will post the file in the near future, a bit more clean up needed. Don't expect a final product, but rather a pattern to follow that would hopefully help anyone wanting to implement similar workflow.

Cheers,
Saq



Mat

unread,
May 20, 2020, 5:57:41 PM5/20/20
to TiddlyWiki
Oh, what is shown in the video looks really interesting! That other (i.e the first) link requires permissions to open.

Wonderful how you can control the level depth also

Thanks for sharing Saq! You make really cool stuff.

<:-)

Saq Imtiaz

unread,
May 20, 2020, 6:00:17 PM5/20/20
to TiddlyWiki
Hopefully I've fixed the permissions issue on the video.

Tony K

unread,
May 20, 2020, 6:22:32 PM5/20/20
to TiddlyWiki
Saq that's the outliner I've been looking for 😍
Can't wait

Joshua Fontany

unread,
May 20, 2020, 7:05:42 PM5/20/20
to TiddlyWiki
Excellent prototype. I was just designing a "drag-able bullet list" in my head because, as you said, it would be incredibly useful...

Thanks for giving me something to springboard from!

Best,
Joshua F

Birthe C

unread,
May 20, 2020, 7:20:04 PM5/20/20
to TiddlyWiki
Saq,

Late night cocoa drinking, seeing your video, and now I am totally awake. Thinking, dreaming. Very interesting.


Birthe

Julio Peña

unread,
May 20, 2020, 8:27:44 PM5/20/20
to TiddlyWiki
Saq...that is looking VERY useful.


Best wishes,
Julio

Saq Imtiaz

unread,
May 20, 2020, 8:37:43 PM5/20/20
to TiddlyWiki
There are a few things not shown in the video:

- bullets can be multiline.
- you can drag and drop bullets between "bullet list tiddlers". This moves a bullet from one tiddler to another.
- you can hold down Ctrl when dragging to another tiddler to copy it rather than move it.
- holding down shift when dragging transcludes the contents of a bullet rather than moving or copying it.
- it works around some of the annoyances in the core draggable list links macro, where for each item there are two positions it can be dragged to that don't actually result in a change of position.

Currently the relationship between a bullet and its children is based on fields as per my needs in my task manager. This could definitely be simplified from what it is now.

Also note that modelling each bullet as a tiddler means thought needs to be given to tags, backlinks etc as the parent tiddler itself has no body. For my use case this was fine but for general purpose text it may limit the usefulness of filter lookups.

My goal is to add comments to the wikitext macros, as time and energy allows, and then post the file for everyone to play with. Since this is all in wikitext, it means that any TW user, developer or not, can try to make a generalized solution out of it.

Unless of course, Joshua beats us all to it :)

TonyM

unread,
May 20, 2020, 9:11:38 PM5/20/20
to TiddlyWiki
Saq,

I cant seem to get any video working and I really want to see this.

Any suggestions?

Tony

David Gifford

unread,
May 20, 2020, 9:30:44 PM5/20/20
to TiddlyWiki
WOW I cannot wait to try this!

Saq Imtiaz

unread,
May 21, 2020, 4:02:42 AM5/21/20
to tiddl...@googlegroups.com
@TonyM it would be helpful if you described what you are experiencing.

The links are to videos shared via Google Drive and should open in any browser.

TonyM

unread,
May 21, 2020, 4:09:13 AM5/21/20
to TiddlyWiki
The videos at best show a first screen if not blank. And play goes no where.

If its not systematic I will debug my computer/ browser.

Regards
Tony

Mat

unread,
May 21, 2020, 5:11:22 AM5/21/20
to TiddlyWiki
I guess I'll have to wait until release but I cannot figure out how to add a bullet to begin with since you're in tiddler view mode. Maybe that is part of what "keyboard driven" refers to, i.e some command that triggers adding a bullet?

...and if the bullets are individual tiddlers, what are their titles?

Should be really useful!

<:-)


Thomas Elmiger

unread,
May 21, 2020, 5:21:58 AM5/21/20
to TiddlyWiki
Saq, just one question
- you can hold down Ctrl when dragging to another tiddler to copy it rather than move it.
Why did you opt for Ctrl to copy? I am used to Software from Microsoft and Adobe where Alt/Option is used to duplicate/copy elements ...

Looking forward to your release!
Thomas

Saq Imtiaz

unread,
May 21, 2020, 5:48:05 AM5/21/20
to TiddlyWiki
Hi Mat and Thomas,

First off, don't expect a release. More of a sharing of code. As I said, the intent is not to share a finished product but rather something others can understand to implement similar solutions. Lots of rough edges still, and unfinished bits, but enough to get started.

Regarding choice of keyboard shortcuts, I haven't customized them for this demo and they are what fit my workflow and easy enough to change. As background, this code is taken from a task manager that I worked on in late 2017 to replace Todoist (todoist.com) which works really well for me but I prefer hosting my own data. Since I never got around to finishing my work on the natural language parsing part of that, I wanted to at least share the concepts and code patterns behind some of the funcionality for others to explore. The keyboard shortcuts are based around what Todoist uses as I have years of muscle memory built up with those.

Tiddlers with the bullet functionality are identified via the presence of a field. If the field is present and there are no bullets, there is an text area to get you started. This is what you see at the beginning of the first video This could also be a "+" button but that just feels like an unncessary click. You could also use a keyboard shortcut. You are always in view mode. In fact I rarely use the classic edit mode in any of my TW.

The individual bullet tiddlers have autogenerated titles that have no significance and are prefixed with $:/. No particular reason other than that in my task manager, I did not need these tiddlers to have a memorable title nor want to generate one as they are never displayed directly.
For display purposes an auto-generated caption was used that was an excerpt of the body. This could be adapted however one wanted with regards to titles. This is one of those design decisions that would need to be made by anyone wanting to adapt my code to implement similar functionality.

Keyboard driven refers to the fact that you can add your bullets, including changing indent levels, move up and down through the bullets and edit them, all without needing the mouse. For my needs this is a key requirement and probably the part of this code that needed the most thought. 

I think whats especially significant that this can all be done using default core macros and widgets.

The major caveat here is that while this all worked great in my use case, there is a trade off. All the bullets being individual tiddlers means that all tags, links etc belong to those tiddlers and not the parent. So if the intent is to work with these tiddlers as is usual in TW with filters/backlinks etc, you're going to run into problems.

(Hey Mat, this would be a much more natural fit in TWC with tiddler slices;) )

Regards,
Saq

David Gifford

unread,
May 21, 2020, 8:06:18 AM5/21/20
to TiddlyWiki
Okay, now I have questions:

1) You say each bullet is a tiddler. Are we seeing/editing in the present tiddler the text field of that other tiddler? Some other field?
2) Is it possible to add basic text formatting / links / html span classes, etc to the text entered in a bullet? (I understand the problem you refer to re: links. My question is about [[]] within the bullet, leading to a normal tiddler)
3) Bigger question: could your system conceivably be adapted so that instead of creating an entire new tiddler for each bullet, you would create a new field of the present tiddler? I am thinking of filesize issues and also what you mention about tagging.
4) Have you thought about making this a special tiddler type?

Regardless of your answers to these questions, this is really amazing. This could really change the writing experience for users in TiddlyWiki. I really did not think anything like this was possible for TiddlyWiki, but you pulled it off. Thank you so much.

Mat

unread,
May 21, 2020, 8:18:47 AM5/21/20
to tiddl...@googlegroups.com
Saq Imtiaz wrote:
Tiddlers with the bullet functionality are identified via the presence of a field.

...so... how was the field added?
 
If the field is present and there are no bullets, there is an text area to get you started.

So, those tiddlers are reserved to be bullet lists then, right?
 
[...]In fact I rarely use the classic edit mode in any of my TW.

For this particular feature, right? I mean, what if you want something other than bullet lists?
 
...

If this "method" could be generalized so that any item, based on a tiddler, could be presented in indentable lists we could make even cooler stuff ;-)

Imagine a checkbox list for projects (top level in list) with tasks as subitems. ...and project status (i.e checked or unchecked) could be calculated from subitem status. The super part would be your feature to easily move items among projects or even make projects into subprojects.

...and this would perhaps also open for... whatsitcalled... expandable text like in most real code editors. Instead of bullet it's the reveal type + character.

Anyway, great stuff Saq and thanks for sharing your ideas.

<:-)


Saq Imtiaz

unread,
May 21, 2020, 10:28:51 AM5/21/20
to TiddlyWiki
Hi David, responses below:


1) You say each bullet is a tiddler. Are we seeing/editing in the present tiddler the text field of that other tiddler? Some other field?

You see/edit the text fields of the underlying tiddlers. You are editing directly and the changes are saved as you type. It would be easy to make it so you edit a draft and the changes aren't saved until you hit ctrl+enter, also allowing you to cancel without saving.
 
2) Is it possible to add basic text formatting / links / html span classes, etc to the text entered in a bullet? (I understand the problem you refer to re: links. My question is about [[]] within the bullet, leading to a normal tiddler)

It is the text field of a tiddler, so anything goes.
 
3) Bigger question: could your system conceivably be adapted so that instead of creating an entire new tiddler for each bullet, you would create a new field of the present tiddler? I am thinking of filesize issues and also what you mention about tagging.

I think filesize is less of an issue that one might think. I did try this with fields when I first worked on it, the key constraint there is that it gets very unwieldy and impractical if you have more than one level of children. Also, I don't think links in fields other than the text field count towards backlinks, do they?
 
4) Have you thought about making this a special tiddler type?

It is in my setup but there is a lot of flexibility around how someone choses to use this. One way is to consider this a special type of tiddler that might not count towards working with filter operators for tags/links but lets you quickly create an outline and potentially then "flatten" to a normal tiddler. Used in a task manager the way that I do, this isn't really a concern so I have not given a great deal of thought.

There are significant limitations to all of this, but I think also the potential for some new and interesting ways to interact with and create content in TW.
Regards,

Saq

David Gifford

unread,
May 21, 2020, 10:33:28 AM5/21/20
to tiddl...@googlegroups.com
Regards back, thanks for your responses. Sounds awesome!

David Gifford
Mexico team leader, Mexico City

Resonate Global Mission
Engaging People. Embracing Christ.
A Ministry of the Christian Reformed Church
resonateglobalmission.org



--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/KeVDndcnY0g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/6595b6fa-cb25-4dae-8768-3535bc4312b8%40googlegroups.com.

Saq Imtiaz

unread,
May 21, 2020, 10:42:27 AM5/21/20
to tiddl...@googlegroups.com
Hi Mat, 
responses below for convenience.


On Thursday, May 21, 2020 at 2:18:47 PM UTC+2, Mat wrote:
Saq Imtiaz wrote:
Tiddlers with the bullet functionality are identified via the presence of a field.

...so... how was the field added?

How would you want to add that field? Recall that I am not offering a ready to use plugin, but a workflow to emulate to build your own solution. I suspect a lot of things will become clearer once you get the chance to play with it.
 
So, those tiddlers are reserved to be bullet lists then, right?

Again that would depend on how you want to use them. The code for the bullets leaves the text of the parent tiddler untouched, so you could have content in there and the bullets would appear underneath.
 
 
[...]In fact I rarely use the classic edit mode in any of my TW.

For this particular feature, right? I mean, what if you want something other than bullet lists?

Overall, while tiddlers are the basic units of information in most of my TW based apps, I do not interact with tiddlers directly for editing for most of them.. but now we are getting off track.
 

If this "method" could be generalized so that any item, based on a tiddler, could be presented in indentable lists we could make even cooler stuff ;-)

If I understand you correctly, it already is so. The bullets only look like they are <li> html elements. They are actually just DIVs styled to look like list items. This is a trick I emulated from dynalist/workflowy for the sake of this demo. In my original setup there is no list styling. The contents of each bullet are the text field of a tiddler, so no real limitations as to what you can have in there... until and unless you do something crazy and possibly break the indented css styling :)
 
Imagine a checkbox list for projects (top level in list) with tasks as subitems. ...and project status (i.e checked or unchecked) could be calculated from subitem status. The super part would be your feature to easily move items among projects or even make projects into subprojects.

Which in essence is how my task manager works, from which this is derived. Each bullet also has a due date, priority, tags etc.
The task manager however is incomplete and has a lot of other complexity for my use case, and as such would take too long to make ready for distribution.
 
...and this would perhaps also open for... whatsitcalled... expandable text like in most real code editors. Instead of bullet it's the reveal type + character.


If you mean collapsing child bullets, then yes, that is trivial to do and something I have therefore skipped in this demo. 

I do think it will help with understanding a lot when you get to tinker with this yourself. It isn't a magic bullet by any means but hopefully useful in creating new workflows. I could see someone building a dynalist/workflowy clone using these techniques.

Cheers,
Saq

Mat

unread,
May 21, 2020, 2:22:06 PM5/21/20
to TiddlyWiki
Saq , thank you for your patient answers - and I realize now it is indeed a bit silly to ask questions at this stage. Looking forward to investigate it!

<:-)

TonyM

unread,
May 21, 2020, 8:54:47 PM5/21/20
to TiddlyWiki
Saq,

I love it, we can create much more interactive outliners that generate tiddlers. 

An important point,

I suspect you are using the edit field including title and it creates a tiddler  "feature"?
  • I would be great if we could set a template=template tiddler field on the master, or as a parameter on the macro which is used to create such subtiddlers. 
  • This introduces a wide range of possibilities like setting a parent field, setting context fields and more
  • I understand it could be difficult to achieve, but I mention it so you keep it in your mind if you see the possibility.
  • If the `<enter>` can be used to trigger actions on the tiddler that was edited as the "currentTidder".
Love Your work
TonyM



NB; I got the video working in FireFox for me not My Chrome

TonyM

unread,
May 22, 2020, 2:33:21 AM5/22/20
to tiddl...@googlegroups.com
Saq,

Watching you video I saw mention of how to handle re-occuring tasks. I have found a very elegant algorithm with minimal complexity and designed for the tools already within tiddlywiki

Basically if you want something weekly you stamp a weekly-date field with now. When done next week you stamp it again with now.

Too see whats overdue the date stamp will be greater than -7 days using the days operator. 
  • As soon as stamped it will disappear from the list.
  • You can always see when it was last done because the indicator is the date and time done.
  • The logic to select the valid items is in the listing not the field used to manage it. 
    • So Instead of weekly etc, I could have review dates of Operation, Tactical and Strategic
    • It is simple to set these to say daily, weekly and Monthly with the list using -1 -7 and -28
  • If you want it done on Mondays you could stamp the field monday-review and list on mondays,
    • If it is monday hide things done today, and list those not done today.

Using  date stamp to indicate it is done, in a given period, is nice because it can be a simple button, just click, no need to set the date to other than to now in everyday operations.

With a date selector the user can post date or predate, so I could stamp it with 1st July 2020 an it will become weekly from the 7th July.

Happy to discuss further to generalise it even more.

Regards
Tony

Saq Imtiaz

unread,
May 22, 2020, 2:37:59 AM5/22/20
to tiddl...@googlegroups.com
@TonyM appreciate the input. Recurring tasks weren't an issue and were already implemented back when I first worked on my task manager. 

The content of the text in the video is entirely for demonstration purposes, and just whatever came to my mind on the fly while recording.
It is a hypothetical plan for creating a hypothetical task manager.

Regards,
Saq

TonyM

unread,
May 22, 2020, 8:38:29 AM5/22/20
to TiddlyWiki
Saw

That's fine, I suppose I was happy to publish my reoccurring tasks algorithm again.

Never the less I would love to see you implement this. If you do so I would hope it included the ability to provide a template to new tiddlers, but that may be tricky.

I would also be keen if the listed items, the to do list items you click drag and drop also permitted additions to the list template. After all they are just tiddlers. What I mean is most list items in tiddlywiki eventually use the or a listitem template. Perhaps this is where you may make changes to support this method but is also a great place to extend features. For example one could add an open in new window button alongside the listed item, or click to view contents of the item.

What you illustrated is the closest I have seen to a real outliner which is a powerful way to capture structured and unstructured ideas and information. I would like to see it extensible or hackable because it can be an engine that drives alot.

Regards
Tony

Saq Imtiaz

unread,
May 23, 2020, 3:11:02 AM5/23/20
to TiddlyWiki
@Thomas: also remembered that the droppable widget doesn't support the ALT key (and I was trying to work with just what is in the core), but that may get addressed soon:

bimlas

unread,
May 23, 2020, 5:18:01 PM5/23/20
to TiddlyWiki
Saq,

I think we should work together...


I wonder how you solved the navigation with the arrow buttons? It works for me too, but only in one direction (good down, but not perfect up) and I had to create a Javascript filter for that too.

Tony K

unread,
May 23, 2020, 5:21:28 PM5/23/20
to TiddlyWiki
@bimlas is it shared or for your own use?

bimlas

unread,
May 23, 2020, 5:30:50 PM5/23/20
to TiddlyWiki
It is not shared yet because many things are still unclear and I am not sure I have chosen the best solutions.

Mat

unread,
May 23, 2020, 5:37:13 PM5/23/20
to TiddlyWiki
@bimlas - looks great! Is it made in WikiText or js? (...really hoping WikiText so it's hackable for TW users)

<:-)

bimlas

unread,
May 23, 2020, 5:43:41 PM5/23/20
to TiddlyWiki
I only use JS to handle arrow buttons. I also plan to implement the search function, but it will need some kind of recursive filter (like the Kin filter), but I will try to avoid this to keep the plugin as simple as possible. This is also one of the issues that makes the plugin not ready yet.

Tony K

unread,
May 23, 2020, 6:00:08 PM5/23/20
to TiddlyWiki
oh ok :o)

looking wonderful, if you ever decide to share it do drop me a line plz

Saq Imtiaz

unread,
May 23, 2020, 6:09:15 PM5/23/20
to TiddlyWiki
Hi Bimlas,

No wonder we both discovered the bug with the droppable widget and the class assignment at the same time :) I was cleaning up my code and improving the CSS styling when I ran into it, and saw you had just made a pull request for it!

I would be very happy to collaborate, especially as I am trying very hard to not release my own plugins but rather share knowledge, techniques and facilitate the work of others. So this is pretty much perfect that you are working on the same thing.

The arrow navigation is all wikitext and the keyboard widget, just a very fun recursive macro. Performance seems OK though will be interesting to test with a much longer list. The only JS in my code at the moment is a javascript macro to generate a UUID. I could have used the created date, but I was already using the UUID when I first wrote this for a task manager in 2017 and haven't changed it in the demo.

I've noticed that you've implemented a few things that are still on my to-do list, like breadcrumbs, and deleting a bullet and moving up a level via backspace. 
Similarly, I've made improvements to the drag and drop logic, especially with regards to where you can and cannot drag a bullet.

Anyway, let's figure out a way to collaborate.
Regards,
Saq

Saq Imtiaz

unread,
May 24, 2020, 9:47:23 AM5/24/20
to TiddlyWiki
@bimlas Sent you a private message with some info and suggestions last night.

Not sure if it was received. Let me know if you would like to collaborate and work on one plugin together, instead of duplicating effort.


On Saturday, May 23, 2020 at 11:18:01 PM UTC+2, bimlas wrote:

Chris Nicoll

unread,
May 24, 2020, 11:22:06 AM5/24/20
to TiddlyWiki
This looks fantastic, Saq. It's so close to something I'm working on, but you're ahead of me. I should pause and do something else while you and bimlas do the heavy lifting. Plugin or pattern, it will be very popular.

David Gifford

unread,
May 24, 2020, 2:17:05 PM5/24/20
to tiddl...@googlegroups.com
1. I would love to know, from the three or four of you working on similar ideas at the same time: what was your inspiration to do this? Was it because you saw the outliner in Roam? Was it because you have been using Dynalist in the TiddlyWiki toolmap? Was it a post in this forum expressing someone's desire to be able to have outliner functionality in TiddlyWiki? Or was there some other catalyst? Follow up question, why do you think you are all doing this *now*, as opposed to last year or even before? What is new about this moment that it sparked several people independently to work on the ability to do outlines at the exact same time? Reminds me of Steven Johnson's ideas in his (enjoyable) book Where Good Ideas Come From.

2. I would recommend not using 'Dynalist' as the plugin name. First, copyright issues. Second, Dynalist was not the first to do this. Workflowy was prior, and Mac has OmniOutliner or somesuch. Dynalist's main innovation was the ability to create multiple documents with outliners in each. Third, if Dynalist poops out someday, the plugin name will lose its meaning except for those who remembered it. (granted, I hope Dynalist never dies out, I have a lot of notes on there!)

3. Also, please avoid using 'table of contents' or 'outline' in the name. That will greatly limit the imagination of users. In fact, This has many possibilities:

a) Obviously the main one is it makes the writing process of any document more flexible. Reorder and indent paragraphs, etc
b) The easy reuse of one or multiple snippets from one project in another project, with immediate editing options that apply to both.
c) Yes, the creation of outlines, review sheets, taxonomies and tables of contents.
d) If there is a hide button, could be used for quizzes
e) A rename button, or at least a way to open the tiddler, would open up other possibilities.
f) This would be great for lists with longer content (listicles, lists of quotes, commentaries on text such as biblical text etc) where one does not want to deal with titles, but where one might want to have ideas that are (in this context) adjacent yet (ultimately) independent.
g) As with most innovations, there are likely many uses that we can't foresee as of yet. And maybe things we think it will be great for that it will not be great for.)

4. It will be interesting to see how this affects, or not, file slowdown in different use cases.

5. It will be interesting to experiment on seeing how well these projects might integrate with backlinks a la Stroll. That is, will an outline node be related somehow to its parent tiddler? To its parent node? Both? Neither? Will there be benefit in opening the tiddler of a node in order to see its list of references? Might nodes serve as links in a chain between two tiddlers, like the notes in my Idea Stew do?

I hope this is all an encouragement to you all who are working on these projects - you are sparking much creative thought. Blessings.





--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/KeVDndcnY0g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

Anjar

unread,
May 24, 2020, 2:21:08 PM5/24/20
to TiddlyWiki
Looks awesome! Keep us updated!

Best,
Anders

David Gifford

unread,
May 24, 2020, 2:26:46 PM5/24/20
to tiddl...@googlegroups.com
Oh, more ideas,

You might all want to be thinking now about whether there will be a way to copy multiple nodes from one tiddler and paste them in a separate tiddler...select and right click? Select and copy?

Not actually trying to give you more work...just trying to anticipate user's natural expectations on what can be done with something like this, especially the expectations of users who are used to outliners...



Saq Imtiaz

unread,
May 24, 2020, 2:49:15 PM5/24/20
to TiddlyWiki
Hiya Dave, 

Answers below:


On Sunday, May 24, 2020 at 8:17:05 PM UTC+2, David Gifford wrote:
1. I would love to know, from the three or four of you working on similar ideas at the same time: what was your inspiration to do this? 

So mine is essentially a simplified and more general purpose version of something I have been using as a todo list app, that I worked on for myself in late 2017 and never quite finished. The original inspiration came from Todoist.com, which is not an "outliner" but has similar functionality for managing tasks.

I worked on this and a few other things for myself back then but never got around to sharing with the community, something I have been trying to rectify recently starting with the 2 stories work.

Recently I've been seen multiple people ask for functionality that I would best describe as "indentable, drag and drop bullets" and been surprised that there aren't any working solutions being shared, as all the functionality to do it is already present in TW. So that moved this to the top of my list and inspired me to clean up my code, make it more general purpose and share it, to hopefully get others started down the same path. Otherwise I might have waited until I finished up work on my to do list app.

So I am extremely happy that others are on the same track and would be delighted to collaborate, in fact I would deem it a bit tragic if we didn't, since the end goals seem to align so well.

You might all want to be thinking now about whether there will be a way to copy multiple nodes from one tiddler and paste them in a separate tiddler...select and right click? Select and copy?

You can drag and drop a node and its children at the moment. I'll keep your idea in my mind but there are more fundamental design decisions that I need to make first.

Like Bimlas, I am not sure I've made the best decisions regarding architecture and design. What I have worked great as a to do list app where you never interacted with those tiddlers outside the app UI. But most TW users expect to be able to interact with their tiddlers as usual, regardless of how they were created or whether they are bullets in another tiddler, which complicates things. If we were to accept the limitation of only deleting bullets via the parent tiddlers, and that text in bullets wont behave as we expect in filters, this is basically already usable. 

Cheers,
Saq

bimlas

unread,
May 24, 2020, 5:28:35 PM5/24/20
to TiddlyWiki
Saq,

Not sure if it was received. Let me know if you would like to collaborate and work on one plugin together, instead of duplicating effort.

I got it but I have little time, so I haven’t answered yet.

Saq Imtiaz

unread,
May 24, 2020, 5:36:47 PM5/24/20
to TiddlyWiki
@bimlas no rush, take your time. I am still in recovery mode anyway.

bimlas

unread,
May 24, 2020, 6:04:29 PM5/24/20
to tiddl...@googlegroups.com
David,

... what was your inspiration to do this?

I was inspired by TiddlyBlink that if TiddlyWiki could work like Roam Research, it could certainly mimic the much simpler Dynalist. On the other hand, while getting acquainted with the Zettelkasten method, I realized that the TiddlyWiki lacks easy handling of bullet points.
 
2. I would recommend not using 'Dynalist' as the plugin name.

I didn’t plan to use that name either, but during development it’s adequate to be able to refer to the plugin by some name.
 
3. Also, please avoid using 'table of contents' or 'outline' in the name. That will greatly limit the imagination of users. In fact, This has many possibilities:

 Thanks for the usage ideas, I didn't even think about them, I'll definitely put them in the documentation!

David Gifford

unread,
May 25, 2020, 8:28:59 AM5/25/20
to tiddl...@googlegroups.com
On Sun, May 24, 2020 at 5:04 PM bimlas <bimba....@gmail.com> wrote:
David,

... what was your inspiration to do this?

I was inspired by TiddlyBlink that if TiddlyWiki could work like Roam Research, it could certainly mimic the much simpler Dynalist. On the other hand, while getting acquainted with the Zettelkasten method, I realized that the TiddlyWiki lacks easy handling of bullet points.
 
2. I would recommend not using 'Dynalist' as the plugin name.

Én sem terveztem ennek a névnek a használatát, de a fejlesztés alatt megfelel, hogy valamilyen névvel tudjak hivatkozni a plugin-ra.

Google Translate to the rescue!

 
3. Also, please avoid using 'table of contents' or 'outline' in the name. That will greatly limit the imagination of users. In fact, This has many possibilities:

 Thanks for the usage ideas, I didn't even think about them, I'll definitely put them in the documentation!

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/KeVDndcnY0g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

bimlas

unread,
May 25, 2020, 8:41:54 AM5/25/20
to TiddlyWiki
Thanks for noticing, I'm sorry, I fixed it. :S

PMario

unread,
May 25, 2020, 3:15:29 PM5/25/20
to TiddlyWiki
Hi Saq,

Watching this tread with great interest.

I'm especially interested in the keyboard driven approach, with a minimal interface. Bimlas's video is nice, but seems to have a lot of bells and whistles already. I would be more interested in the minimal underlying code.

Can you send me copy with PM or point me to your repo, if it is visible.

have fun!
mario

TonyM

unread,
May 25, 2020, 5:47:17 PM5/25/20
to TiddlyWiki
I look forward to this as well

Please ask if I / we can help.

It highlights a need to increase the opportunity to "brain dump" when thinking, creating or taking notes in class, into tiddlywiki.

I think we could develop the approach of easy brain keyboard tiddlywiki in other areas as well.

Regards
Tony

bimlas

unread,
May 26, 2020, 2:57:23 AM5/26/20
to TiddlyWiki
David Gifford,

 
5. It will be interesting to experiment on seeing how well these projects might integrate with backlinks a la Stroll. That is, will an outline node be related somehow to its parent tiddler? To its parent node? Both? Neither? Will there be benefit in opening the tiddler of a node in order to see its list of references? Might nodes serve as links in a chain between two tiddlers, like the notes in my Idea Stew do?

I haven’t seen an example of this yet, so I can’t imagine using it either. Maybe the management of backlinks should be left to Stroll instead, right? If you open a bullet point (by clicking on the point itself), it would list the associated tiddlers at the bottom of it.

What do you think? What ideas do you have? 

David Gifford

unread,
May 26, 2020, 6:47:49 AM5/26/20
to tiddl...@googlegroups.com
Hi bimlas

You wrote What do you think? What ideas do you have?

I think it is better to wait to play with it myself for a while first before forming ideas about it.

Saq Imtiaz

unread,
May 27, 2020, 1:52:05 AM5/27/20
to TiddlyWiki
I'll post code and possibly a demo later today or tomorrow.

I've been a bit indisposed and not able to work on this for about a week, but hope to get the ball rolling again.

Regards,
Saq

OGNSYA

unread,
May 27, 2020, 1:36:25 PM5/27/20
to TiddlyWiki
Good work! That video is very exciting.  TW is amazing, but I'm really put off by the friction in creating/editing tiddlers (and dealing with transclusions).

In your demo not only you have direct editing (with formatting), but you also seem to have live transclusion. In other words, it's not really a transclusion, but a "portal" to that other content (!). Is that correct?

I'm a designer and a while back I made some mock-ups of some ideas I had for TW. I never took them further, since it depended on the above mentioned features being possible... Depending on how that goes I can hunt down those designs and share here!

Thomas Elmiger

unread,
May 27, 2020, 6:23:03 PM5/27/20
to tiddl...@googlegroups.com
OGNSYA, as you are a designer, you might be interested in the discussions regarding TW UI here too.

Cheers,
Thomas

David Gifford

unread,
May 27, 2020, 7:20:52 PM5/27/20
to tiddl...@googlegroups.com
Thanks Thomas! I just added my contribution there: https://giffmex.org/experiments/redesign.html




--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/KeVDndcnY0g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

OGNSYA

unread,
May 28, 2020, 6:18:26 AM5/28/20
to TiddlyWiki
Thomas: Thanks for that! Yes I'm aware of that group. For now I'm focusing on figuring out a good flow and functionality (which is still lacking, at least to me personally). The features shown in the demos in the thread seem very promising in that sense!

Saq Imtiaz

unread,
May 29, 2020, 4:09:22 PM5/29/20
to TiddlyWiki
Just a quick heads up that I am still a bit under the weather but hope to get something posted this weekend for everyone to play with.

Regards,
Saq

TonyM

unread,
May 30, 2020, 5:52:32 AM5/30/20
to TiddlyWiki
Saq

Thanks for the update. Looking forward to it big time.

But health first

Tony

SizzlinSJ

unread,
May 30, 2020, 7:07:34 AM5/30/20
to TiddlyWiki
Hey Saq,
There is an open source android app called Orgzly which uses same bullet style outline method, each bullet is like a tiddler with own tags, states, properties(like fields in TW). Exporting is through .org file but can be edited by any text editor. You may get some more useful inspiration there.

OGNSYA

unread,
May 30, 2020, 9:51:41 AM5/30/20
to TiddlyWiki
SizzlinSJ: Orgzly looks interesting. Didn't know about it.
I missed these two things:
- Ability to edit an item directly (tap, type), instead of needing to open the item (tap, type, close) 
- Ability to drag items around, re-nest etc.

SizzlinSJ

unread,
May 30, 2020, 10:53:53 AM5/30/20
to TiddlyWiki
OGNSYA,
 
- Ability to edit an item directly (tap, type), instead of needing to open the item (tap, type, close) 
 Yes agree, but that is same as in TW like (edit button, type, save) if anyone have a fast method please share.
 
- Ability to drag items around, re-nest etc. 
But thats fast once we long press on any bullet and select 'move' mode and then use arrows to move that or any number of bullets. 
(Something like this on keyboard, eg. pressing ctrl and then arrow keys to move bullets around would be good).

Saq did say, 
- everything except the dragging is keyboard driven
We may expect quick workflow

OGNSYA

unread,
May 30, 2020, 11:32:12 AM5/30/20
to TiddlyWiki
Yeah, sorry my comments are mostly related to bimlas' demo.

This thread ended up mixing two things.

There's Saq's original post, about the keyboard driven approach.

Then there's bimlas demo (see youtube link here), which is related to that, but seems to feature the behaviours I mentioned (direct editing/dragging) plus some other promising stuff (transclusions as portals? - not sure yet).

Saq Imtiaz

unread,
May 30, 2020, 2:08:01 PM5/30/20
to tiddl...@googlegroups.com
Edited (09/06/2020)
This is in active development. Back up your wiki regularly.

Demo:

Code:

Please take the time to read through the information provided in the demo, it will make any feedback provided more helpful.

Bimlas and I have been comparing ideas and code, and the breadcrumbs and customization of new tiddler titles in this demo is inspired by his approach.

Regards,
Saq

David Gifford

unread,
May 30, 2020, 3:43:00 PM5/30/20
to TiddlyWiki
Hi Saq

Wooww!!!

I played with it and uploaded it, to give you feedback: https://giffmex.org/experiments/bulletsgifftest.html

Saq Imtiaz

unread,
May 30, 2020, 4:03:39 PM5/30/20
to TiddlyWiki
Hi Dave,
  • Enabling the edit toolbar would be quite easy. It's just that it causes more disorientation when switching to editing because of the space it takes up and makes the interface look cluttered. It could be a configurable setting though.
  • Escape key cancels the edit, see Keyboard Shortcuts 
  • Not sure why you couldn't add a multiline code block. 
    Ditto for tables. Also from "Keyboard Shortcuts": hit shift+enter for a line break
  • I haven't understood the comparison to Dynalist, or dragging a system tiddler.
Cheers,
Saq

David Gifford

unread,
May 30, 2020, 4:52:37 PM5/30/20
to tiddl...@googlegroups.com
Hi Saq see replies in bold

On Sat, May 30, 2020 at 3:03 PM Saq Imtiaz <saq.i...@gmail.com> wrote:
Hi Dave,
  • Enabling the edit toolbar would be quite easy. It's just that it causes more disorientation when switching to editing because of the space it takes up and makes the interface look cluttered. It could be a configurable setting though.
No, I wasn't suggesting to enable that. That is indeed jarring, for example, on MarkS's recent project, even though it is handy there. It was more about noting that you can't ctrl b for bold, etc. When I wrote that part I hadn't yet discovered you can open the tiddler by clicking the bullet. 
  • Escape key cancels the edit, see Keyboard Shortcuts 
Ah, ok, sorry I missed that detail from the documentation. Works great. 
  • Not sure why you couldn't add a multiline code block.
  • Ditto for tables. Also from "Keyboard Shortcuts": hit shift+enter for a line break
Ah, thanks, now I get it, that is the answer to both the code block and the table questions!
  • I haven't understood the comparison to Dynalist, or dragging a system tiddler.
Sorry for my confusing explanations. Second try:

In Dynalist, if you want to split a line of text you can insert the cursor in the place where you want the split, and hit enter, and the text to the right of the cursor will drop down and form a new line (node). That is not possible as yet in your Bulletstream.

I tried to drag a stylesheet tiddler into the Bulletstream file. Normally as long as I drag it onto the sidebar or a tiddler in view mode, it will still import, but in this case it would not import when dropping on a tiddler or on the sidebar tabs. Well, it imported a blank tiddler with the same title but no text or tags. Just wanted you to be aware of the behavior. Worked fine when dropping over the sitetite/pagecontrols area above the tabs, and probably also works in the green drop zone too.

Cheers,
Saq

On Saturday, May 30, 2020 at 9:43:00 PM UTC+2, David Gifford wrote:
Hi Saq

Wooww!!!

I played with it and uploaded it, to give you feedback: https://giffmex.org/experiments/bulletsgifftest.html

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/KeVDndcnY0g/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

David Gifford

unread,
May 30, 2020, 5:01:18 PM5/30/20
to TiddlyWiki


On Saturday, May 30, 2020 at 3:03:39 PM UTC-5, Saq Imtiaz wrote:
Hi Dave,
  • Enabling the edit toolbar would be quite easy. It's just that it causes more disorientation when switching to editing because of the space it takes up and makes the interface look cluttered. It could be a configurable setting though.
Not suggesting that. Comment was before I realized how easy it is to open the tiddler clicking the bullet, and also was more about not being able to ctrl b for bold, etc
  • Escape key cancels the edit, see Keyboard Shortcuts 
Ah gotcha. Missed that item in the documentation. Sorrry. Works great
  • Not sure why you couldn't add a multiline code block. 
    Ditto for tables. Also from "Keyboard Shortcuts": hit shift+enter for a line break
Yes, that too works great and answers those points.
  • I haven't understood the comparison to Dynalist, or dragging a system tiddler.

Sorry for the confusing explanations;

In Dynalist, when you want to split a line of text, you insert cursor at desired split location, and hit enter to drop the text found to the right of the cursor down to a new line.

I tried to drag a stylesheet tiddler from another file into the bulletstream file. Normally one can drag it onto a tiddler in view mode or anywhere in the sidebar. In yours, over the tiddlers and over the sidebar tabs, what gets imported is a blank tiddler of that name. Imports normally when dragging it on top of the sitetitle/pagecontrols area, and presumably over the green drop zone. Just wanted you to be aware of it.

Saq Imtiaz

unread,
May 30, 2020, 5:14:21 PM5/30/20
to TiddlyWiki

In Dynalist, when you want to split a line of text, you insert cursor at desired split location, and hit enter to drop the text found to the right of the cursor down to a new line.

The closest thing we have at the moment, is if you hit shift+enter twice to get a blank line inbetween, and then alt+enter.
This is the kind of detail that can be finessed later with some custom javascript. 

OGNSYA

unread,
May 30, 2020, 6:51:25 PM5/30/20
to TiddlyWiki
That's impressive!  It works great. 
I'd love to have this be my main mode of interaction with TW.

I did notice the text shifts a bit once clicked (which I don't think happens in bimlas' demo video). 

I wonder if this could be avoided by using a wysiwyg editor (since then the text wouldn't need to "jump" around as it shows/hides the tags). Maybe something like the one in BJToolss, but with a much more minimalist toolbar (like the ones found in modern rich text editors - see example below).




On Saturday, May 30, 2020 at 7:08:01 PM UTC+1, Saq Imtiaz wrote:
This is a prototype. Do not use it for anything important.
Major changes are likely that will make it very difficult to migrate your content to newer versions.
No support is available for content migration.

Please take the time to read through the information provided in the demo, it will make any feedback provided more helpful.

Demo:
(note that this is under active development so the demo may not always be up to date. For latest changes look at the code repository)

Code: 

Tony K

unread,
May 30, 2020, 7:50:37 PM5/30/20
to TiddlyWiki
Saq it's simply mind blowing

TonyM

unread,
May 30, 2020, 9:25:43 PM5/30/20
to TiddlyWiki
Saq

Exciting. I only have mobile today so can't experiment but looking forward to it.

I just wanted to mention mark recently published an inline edit tool where content entered in the view template can be split into subtiddlers.

I think it could possibly inform your solution, perhaps integrate the features.

Regards
Tony

Birthe C

unread,
May 30, 2020, 11:00:12 PM5/30/20
to tiddl...@googlegroups.com
Saq,

This is lovely. I have missed something like this for many years. In the days of DOS, I used a simple looking editor. In fact I used it in connection with lots of other programs. The way of working and the results feel very much alike. Being able to use something like this - and in a tiddlywiki of course makes it so much better - and much better looking also.
Strangely enough I cannot remember the name of the editor I used but I can remember that it was 16k.

Birthe

Reet Pandher

unread,
May 31, 2020, 1:21:02 AM5/31/20
to TiddlyWiki
Noob question:
How do i indent another level under the bullet points?

PMario

unread,
May 31, 2020, 4:41:59 AM5/31/20
to TiddlyWiki
On Sunday, May 31, 2020 at 7:21:02 AM UTC+2, Reet Pandher wrote:
...
How do i indent another level under the bullet points?

Edit the bullet and hit TAB key.  SHIFT-TAB will unindent as written here.

There is a problem with "root" tiddlers, that contain spaces.

-mario

Saq Imtiaz

unread,
May 31, 2020, 5:12:12 AM5/31/20
to TiddlyWiki
Thanks @pmario. I see the problem. Will update a little later. 

PMario

unread,
May 31, 2020, 5:27:30 AM5/31/20
to tiddl...@googlegroups.com
Hi Saq,

I love it. ... I know that it's an outliner, but I think it's the closest thing to a brainstorming "mind mappy" thing.

I also love the minimalistic UI, no distractions, pure functionality.

----------- Brainstorming mode on

I would really love to switch between BulletStream and a MindMap view similar to this one, use "Zettelkasten" numbering schema as aliases, instead of UUIDs.

In your Roadmap you mentioned:

refactor to use macro parameters to initialize different types of bullets: paragraphs, to do items, comments etc.


I wouldn't go with different types of bullet tiddlers. I'd go with "icon" and "color" fields instead. TW already knows about those elements and can nicely handle them.

eg:

 - In edit mode the "border-right" could be 4px solid blue using the color field of the tiddler.
 - There could be a setting to show a "mini-icon" instead of the bullet point

Icon and color can be reused in MindMap view. ... I'd love that.

---------- Brainstorming mode off

Really great stuff!!
-mario

Saq Imtiaz

unread,
May 31, 2020, 8:34:20 AM5/31/20
to TiddlyWiki
Hi Mario,

Thank you for the kind words. To be honest I don't think of it as an outliner either, but the approach is pretty versatile and lends itself well to different use cases. For me, brainstorming still involves paper and a pen, or a plain text file. I see this as one step up, still fast and text based, but with some affordances to be able to move things around and re-arrange them.

In your Roadmap you mentioned: 

refactor to use macro parameters to initialize different types of bullets: paragraphs, to do items, comments etc.


I wouldn't go with different types of bullet tiddlers. I'd go with "icon" and "color" fields instead. TW already knows about those elements and can nicely handle them.

Yeah that isn't well explained. My thinking is each row corresponds to a tiddler and right now we just render the text of the tiddler. But if you allow each tiddler to be rendered through a custom template, then you can easily have bullets that are todo items with checkboxes and due dates based on tiddler fields, for example. Or different colour borders and icons as you suggest. 

I haven't thought this through completely as to whether the custom template to use would be decided on a per tiddler basis through a field, or otherwise. I am recovering from illness at the moment, and any kind of big picture thinking beyond what is right ahead of me at the moment makes my brain segfault and stop working, which is why this project has been stalled the last two weeks and I decided to post the videos and now the demo. Until I can code properly we may as well discuss.  So any and all input and ideas are very welcome, just bear with me if I am bit slow until I am fully recovered.
 
For the MindMap, if you code it I will make sure it works with this part ;)
I have to admit I don't have much motivation in that direction as I have never personally found such visual aids very helpful... you know how it is, we all think and learn in different ways.

Cheers,
Saq

Saq Imtiaz

unread,
May 31, 2020, 8:43:37 AM5/31/20
to TiddlyWiki
One of the things I would love to get feedback on, is how to handle tiddlers being renamed.
If a child tiddler is renamed, it vanishes from the bullet list as the reference saved in a field in the parent is no longer accurate.

Possible options are:
  1. do nothing and use an external plugin like Relink (current situation, but its a non trivial plugin dependency)
  2. make a core pull request to get a rename tiddler hook that is usable (the current one isnt) and handle the rename updates
  3. rework all relationships between tiddlers to be based on UUIDs rather than tiddler titles. This is entirely doable and would be rename resilient, at the cost of longer and more complex code. The mapping from child tiddler to parent is already UUID based, the reverse could be as well, it just makes lookups harder.
  4. Use the "list" field and the core ability to update... except that we will at some point clash with other things (like tags) using this field as well.
    I would prefer to have the option to leave the tags untouched and thus usable for other purposes.
Cheers,
Saq

OGNSYA

unread,
May 31, 2020, 9:07:00 AM5/31/20
to TiddlyWiki
I'm quite new to TW, but I have been thinking about a few things to suggest regarding flow (I've been doing some mock-ups).

One of these suggestions is to have tiddlers be identified by "name" (essentially a unique identifier), instead of by Title.

The idea that a user is forced to give a Title to every tiddler seems to go against the principle of allowing tiddlers to be the smallest units of content. 

The Name could still be the Title (if it exists within the Tiddler), or the first few words within the tiddler. The user could also change it to whatever they want.

This is just an overview of my idea... I can explain further if you'd like. As I mentioned, I'm currently mocking this up. But would be good to know what you guys think about it, so I know what makes sense and what doesn't!

Hope you feel better soon btw!

TonyM

unread,
May 31, 2020, 9:35:57 AM5/31/20
to TiddlyWiki
Saq,

I just got to try this now I am back at my desktop and looking good. A Few quick comments on your latest notes.

Interestingly before looking I expected the tiddler titles to actually be the text in the bullets. I would be fine with this even. The actual text field could be used in subsequent lines since bullet points naturally are "points" or list items. In which case the title of the subtiddler is somewhat obvious, and in fact normally contains the words that helps one determine when the items is needed and where.

I would just add whatever we want to call a bulletstream it is a method by which to outline, and the main feature of mind mapping apps is not really the visualisation but to be able to make a root above the root and other relationships as needed and quickly, before the though disappears. I see bullet stream as capable of this.


  1. do nothing and use an external plugin like Relink (current situation, but its a non trivial plugin dependency)
 I agree with this strategy but wonder if a relink equivalent should be introduced to the core, as fundamental as it is, even if it is selectable.
  1. make a core pull request to get a rename tiddler hook that is usable (the current one isnt) and handle the rename updates
That makes sense for this and other future use no matter what. 
  1. rework all relationships between tiddlers to be based on UUIDs rather than tiddler titles. This is entirely doable and would be rename resilient, at the cost of longer and more complex code. The mapping from child tiddler to parent is already UUID based, the reverse could be as well, it just makes lookups harder.
Having explored the creation of compound tiddlers, I have considered related issues for some time. I also build a simple UUID method that works comprehensively. I actually believe it can be quite simple. There are even techniques to make lookups simple. I will give this more thought after reading and playing more.
 
  1. Use the "list" field and the core ability to update... except that we will at some point clash with other things (like tags) using this field as well.
    I would prefer to have the option to leave the tags untouched and thus usable for other purposes.
I like this approach to leave tags untouched. But tags are just an example of a kind of list anyway. If the root tiddler contained a list of tiddlers, Names or ideally UUIDs or as I have come to realise they need not be as universal as one may think, current tiddler titles are not universal. What I call a TSN Tiddler Serial Number can be created as needed as long as there is no ambiguity, they can be short, and collected together like a list of tiddlers. Given a list draggable tool they can be reordered. Perhaps even an alt-tag field of sorts. A few simple macros could work like the qualify macro to dish out a unique id as needed, or provided a TSN display the title of the tiddler that owns it. I will look at this a little further.

Take your time with your health, but it sounds like it is sometimes your source of inspiration, if not the time you build things.

Love your work

Thanks again
Tony

TonyM

unread,
May 31, 2020, 9:41:51 AM5/31/20
to TiddlyWiki
Ognsya

Some thoughts on you idea

The idea that a user is forced to give a Title to every tiddler seems to go against the principle of allowing tiddlers to be the smallest units of content. 

So as not to loose the smallest piece of content, they need to be addressable, and have a unique name. You can generate them programmatically and use captions and aliases instead if you want. Just not so many people do.
 

The Name could still be the Title (if it exists within the Tiddler), or the first few words within the tiddler. The user could also change it to whatever they want.

I right in thinking here In some ways you are saying give me automatic titles? (checking for uniqueness)

This is just an overview of my idea... I can explain further if you'd like. As I mentioned, I'm currently mocking this up. But would be good to know what you guys think about it, so I know what makes sense and what doesn't!

Perhaps when you have you mockup you should share what you learn.

We are quite open to new ideas and approaches, I have considered a similar path to you, but you may take another. So I hope you share.

Regards
Tony

PMario

unread,
May 31, 2020, 12:37:40 PM5/31/20
to TiddlyWiki
On Sunday, May 31, 2020 at 2:34:20 PM UTC+2, Saq Imtiaz wrote:

For the MindMap, if you code it I will make sure it works with this part ;)
I have to admit I don't have much motivation in that direction as I have never personally found such visual aids very helpful... you know how it is, we all think and learn in different ways.

Yea, that was brainstorming mode. .. I personally like MindMaps a lot. Even if they are created with pen and paper. ... But it wasn't easy to create a 2 way communication between TW and eg: FreeMind. ...

There has been a post, here in the group, lately, which triggered me to search for an open source javascript library, with which it could be done using TW. ... I did find the linked project and they also have a "toolkit", which looks promising. It only has the "basic" features, so the lib isn't overloaded yet.

Some more thoughts ;)

-m

PMario

unread,
May 31, 2020, 12:45:46 PM5/31/20
to TiddlyWiki
On Sunday, May 31, 2020 at 2:43:37 PM UTC+2, Saq Imtiaz wrote:
One of the things I would love to get feedback on, is how to handle tiddlers being renamed.
If a child tiddler is renamed, it vanishes from the bullet list as the reference saved in a field in the parent is no longer accurate.

... relink should be able to handle this, with a proper setting. I did test it and it seems you did the setting already. It seems to work for me.
 
Possible options are:
  1. do nothing and use an external plugin like Relink (current situation, but its a non trivial plugin dependency)
Yea, but it's probably one, that users use / need anyway.
 
  1. Use the "list" field and the core ability to update... except that we will at some point clash with other things (like tags) using this field as well.
    I would prefer to have the option to leave the tags untouched and thus usable for other purposes.
I wouldn't do that. As you wrote, it will porbably create problems with tags.

-mario

PMario

unread,
May 31, 2020, 12:51:12 PM5/31/20
to TiddlyWiki
On Sunday, May 31, 2020 at 3:35:57 PM UTC+2, TonyM wrote:
  1. do nothing and use an external plugin like Relink (current situation, but its a non trivial plugin dependency)
 I agree with this strategy but wonder if a relink equivalent should be introduced to the core, as fundamental as it is, even if it is selectable.

I did think about this too. ... But at the moment relinks is developed in a much faster pace then the core. ... So imo atm it would be slowed down too much.

I do think, it should stay a plugin. ... But I can think of it, to be a core plugin, if flibbles wants to go that route.

-mario

TonyM

unread,
May 31, 2020, 8:23:37 PM5/31/20
to TiddlyWiki
Agreed,

Core plugin. Perhaps if Saq makes it a dependency it will install from the library. Thus it is a trivial dependency?

Regards
Tony

SizzlinSJ

unread,
Jun 1, 2020, 2:27:25 AM6/1/20
to TiddlyWiki
Question,
Any way we can configure it to 
1. Split data into bullets based on usual (*) and indents using (**,***) as relations and not linebreaks,
Example, 
* Topic
** Subtopic
***  Subtopic 2

Or

2. Export the bullet list made in TW as flat text using (*) or (any char) like the above example.      

Saq Imtiaz

unread,
Jun 1, 2020, 4:15:59 AM6/1/20
to TiddlyWiki
@SizzlingSJ both questions are still under consideration and ultimately I think will be guided by the usage patterns that emerge.

The issue with export is that the content of each bullet is a tiddler and therefore can be multiline. We don't really have a format in TW that supports both hierarchical lists and multiline content. So either we come up with a suitable way to export that would work for most types of content, or we document examples of how people can write their own macros to handle exports. Afterall, it is all just tiddlers so a few nested recursive list widgets can output the data however you want.

Similarly, I'd like to have a better way to get data into bullets/tiddlers, especially hierarchical data. I welcome input on what data formats people feel should be supported. Any such support may again take the form of a supplemental plugin or module, as I see imports as being an occasional use case and not something that is an essential part of the workflow offered... until someone comes along and shows me I am completely wrong about that. :) 

Regards,
Saq

Saq Imtiaz

unread,
Jun 1, 2020, 4:19:26 AM6/1/20
to tiddl...@googlegroups.com
Demo has been updated:

What's new:
- Added new keyboard shortcuts Alt+Up and Alt+Down to move the bullet being edited up or down the list.
- Hitting enter with the caret in the middle of text now drops subsequent text to a new bullet
- Fixed bug reported by @pmario related to root tiddlers with spaces in titles.
- Roadmap is updated

Other thoughts based on feedback so far:
- Suggestions for a better name are welcome. The problem with BulletStream is that it further strengthens the association between bullets and a single line of text.
-- Each "bullet" is a tiddler. Which is far more powerful and versatile than an item in a simple un-ordered HTML list.
-- The "dot" for the "bullet" is just a minimal styling to help distinguish different tiddlers and a place to have controls to drag/click. They could be styled entirely differently as well.
- Decided to continue using relink plugin to handle renaming, at least until this is stable. Then we can re-evaluate if a custom hook might be more efficient and lightweight.

Muti-line content and essays
I would like to encourage everyone not to see this as just something that can be used for short lines of text in a hierarchy. It works really well for writing long text that needs to be split into multipe tiddlers, allowing you to control the splitting as you type. I used this to write documentation for a different project this morning and the experience was terrific. I had the convenience of writing in one place and ended up with 6 distinct manageable and logically chunked tiddlers. The only thing that felt lacking was an easier way to rename the resultant tiddlers rather than having to open and edit each one.

Next steps
 I would still love to see greater collaboration from other developers, whether in terms of contributing to this code or using the patterns therein to create their own solutions as there is a lot of potential here for alternate workflows. That probably needs a little time. 

 In fact it is to facilitate contribution and participation that my code goes out of its way to rely on just wikitext and only resorting to JavaScript where absolutely necessary. Actually, I consider my original goal of sharing a pattern on how to implement this kind of functionality to have been achieved. How and whether we take this further depends ultimately on the TW community.

Cheers,
Saq

Reet Pandher

unread,
Jun 1, 2020, 5:07:40 AM6/1/20
to TiddlyWiki
Hi Saq,

Wouldn't making the bullet text the tiddler title make more sense?

I say this because here's the use case i had imagined for this:

I will have a single tiddler that will display a logical structure of how all my tiddlers are arranged, what is connected to what; sort of like TiddlyMap but with bulleted list. It'd also be a way better alternative to creating a contents tab.

Birthe C

unread,
Jun 1, 2020, 5:14:36 AM6/1/20
to TiddlyWiki
Saq,

For the name:
Then it is not bullet-stream, it is tiddlier-stream,  but the tiddlers are swimming together collected in the river. Tiddler shoal.

Birthe

Saq Imtiaz

unread,
Jun 1, 2020, 5:21:53 AM6/1/20
to TiddlyWiki
@Reet that's a use case I considered and is entirely valid, though far more limited in potential. There is nothing stopping anyone from implementing that though and it would be pretty easy.

@Birthe I am generally terrible at names. Whether it be projects, macros or methods. I'd like to avoid the use of the terms Tiddly and Tiddler as they seem overused and somewhat redundant for something that can only exist inside of TiddlyWiki. The stream part refers more to the experience of writing quickly and easily rather than the structure.. but the name was always meant to be a temporary working name. Please keep the suggestions coming.

Reet Pandher

unread,
Jun 1, 2020, 6:22:23 AM6/1/20
to TiddlyWiki
Hi Saq,

Why not use implement both of those use cases?
Have 2 lines show up when creating a bullet. The 1st line will be the tiddler title and the second line will be the tiddler text/body. Down arrow key should be able to navigate between two rows since the titles aren't going to be more than a single line anyway. Once you move on to the next bullet point only the title line is visible. Once you click on the title, the body becomes visible again

Forgive me if my idea sounds too impractical. I speak from a non-coding user POV so my ideas are bound to be a little stupid :)

Birthe C

unread,
Jun 1, 2020, 6:28:27 AM6/1/20
to TiddlyWiki

Saq Imtiaz

unread,
Jun 1, 2020, 3:03:06 PM6/1/20
to TiddlyWiki
@Reet it isn't a bad idea, just a very different end workflow and experience and not what I am aiming for. It would be easy enough to implement so perhaps someone will tweak my code to do it later. In fact once I've added templating support it might be possible to use a custom template to achieve something somewhat similar.

@Birthe I didn't watch the video but I have heard the term before.... I think its the same idea for me. Getting you thoughts down in a stream, as fluently as possible, with the added bonus of then being able to split it up and organize it.

Maybe it just needs to be called Stream or Streamer. Or maybe someone else will jump in to drive this further and take over the naming conundrum as well ;)

Saq Imtiaz

unread,
Jun 3, 2020, 1:58:34 AM6/3/20
to TiddlyWiki
Just a quick note to say thank you for the input, feedback and discussion so far. Even if I haven't managed to reply to everything, I have carefully read and considered what has been written.

I am working away slowly as health allows. I'll post some updates later today, along with an updated roadmap with information on when we might hope to have an early but usable version.
Cheers,

Saq

Saq Imtiaz

unread,
Jun 3, 2020, 12:56:39 PM6/3/20
to TiddlyWiki
Updates:
  • Enabled keyboard shortcut keys for text formatting, like ctrl+b
  • Added a configuration option to show the formatting toolbar in the editor. (This doesn't make sense unless you are specifically writing longer text in each bullet)
  • Fixed some issues with deleting a parent not deleting all the children (after asking for confirmation)
  • Add a temporary UI for renaming tiddlers (via alt + r). Yes it is extremely ugly. The purpose is to understand and enable the workflow without adding more UI complexity that may obstruct some upcoming code refactoring.
  • Added a first pass at a right click, context menu triggered by right clicking the bullet point 
I've also updated the Roadmap with a checklist towards an unofficial 1.0 release, at which point I would consider this still under development but safe to use. 
If you have any thoughts on that please let me know.

Roadmap:

Demo: 

Reet Pandher

unread,
Jun 3, 2020, 1:23:51 PM6/3/20
to TiddlyWiki
"Add a temporary UI for renaming tiddlers (via alt + r)"

I'm sold!! This is going to be super-helpful!!

Thanks!!

Reet Pandher

unread,
Jun 3, 2020, 2:09:14 PM6/3/20
to TiddlyWiki
Hi Saq,

Facing a bug with renaming. The bullet point disappers after renaming.
I have attached images.
3. Renaming.png
4. Poof!.png
1. Bullet point.png
2. It's tiddler.png

Saq Imtiaz

unread,
Jun 3, 2020, 2:20:37 PM6/3/20
to TiddlyWiki
@Reet thanks for the step by step screenshots. I am not managing to recreate the bug though. Please try refreshing https://saqimtiaz.github.io/sq-tw/bullets.html to make sure you get the latest copy and try again.

If the bug persists, let me know your OS and browser.

Saq

Saq Imtiaz

unread,
Jun 3, 2020, 2:29:34 PM6/3/20
to TiddlyWiki
@Reet if you are trying to import the plugin in to your own wiki then you will run into issues due the missing dependencies (Relink plugin and some core patches). Try the same steps in the demo.

Reet Pandher

unread,
Jun 3, 2020, 2:42:55 PM6/3/20
to TiddlyWiki
That explains it. I loaded an empty wiki just to try it out!! And you are correct it works as intended in the demo!!
Thanks!!

David Gifford

unread,
Jun 3, 2020, 2:50:52 PM6/3/20
to TiddlyWiki
Streams! So good, may it bring you revenue streams!

TonyM

unread,
Jun 3, 2020, 9:34:59 PM6/3/20
to TiddlyWiki
Saq,

Looking fantastic, I am excited for its release, I see you have some wonderful configuration options like 

  • Customising bullet titles

Is it possible, or practical to be able to make the subTiddlers have the title of the first (and often only line in a bullet point)?
  • Often when someone is entering information into such a structure by the very nature they are unique.
  • TiddlyWiki is very good at full text tiddler titles, sentences even.
  • The result is a search of title finds the actual content you may want to include
  • This makes text snipits easy to use
I am not sure how to make use of the drag and drop, what is it I click on while holding ctrl or shift?

By the way, Stream works for me, capturing our "Stream of consciousness" or thought.

Thanks heaps for this development.
Tony

On Thursday, May 21, 2020 at 7:44:31 AM UTC+10, Saq Imtiaz wrote:
Edited (30/05/2020)
This is a prototype. Do not use it for anything important.
Major changes are likely that will make it very difficult to migrate your content to newer versions.
No support is available for content migration.

Demo:

Code:

---

When I'm under the weather I tend to prototype. Spent some time reworking code from my eternally in progress task manager in an attempt to make it more general purpose, as a bullet list note taking tool that may be of utility to others.

https://drive.google.com/file/d/1SB06s13tj8P3cC2UewnfzXf08UQ7jwYK/view?usp=drivesdk

https://drive.google.com/file/d/1SLESm6OIfHsScwYePGOs5ce3o3wpQ0CO/view?usp=drivesdk

- everything except the dragging is keyboard driven
- each bullet is a separate tiddler. Lots of different pros and cons to this approach, but was ideal for a task manager.
- this is all in wikitext, no extra JS.

 Will post the file in the near future, a bit more clean up needed. Don't expect a final product, but rather a pattern to follow that would hopefully help anyone wanting to implement similar workflow.

Cheers,
Saq



It is loading more messages.
0 new messages