Save Current Story River As A Workspace

Interesting - so perhaps eventually core functionality?

If the concept is around capturing lists from different sources and then being able to remove or add to those lists (drag drop) what is the container for the lists - presumably a tiddler with a given name and one or more list fields?

For instance core functionality to create a new tiddler with given name and populate it’s list field from the current story river being one option offered by such functionality?

Just trying to flesh out what you are thinking about?

Before I head off to bed, the story list itself is just a list field in $:/StoryList, but tags are also lists, and if you reorder them they store that list/order in the tabs tiddler list field. Of course one of the key widgets is the list widget and this often used through out the core, such as viewTemplate tags to display your tiddler components, the page components and the toolbars, and cascades.

  • This is why I think we could easily make some primitive tools to see, capture and set lists that can also be used as a Work Space.
  • Since I set different object-types on tiddlers, Such as project, todo, reference, page I could also have smart lists, perhaps establishing a current project, or the list of projects I have open, had opened etc…

Oh and lists are directly related to sets, groups and other conceptual systems including trees (like the contents), or system tiddlers and the tree macro.

I did create a “stories-plugin”, that implements a new TW message tm-open-story, but I got a bit “over board” with the configuration UI. So some refinement would be required.

-mario

Is that publicly available somewhere?

ATM it overwrites the right sidebar Open-tab with 3 year old code. That needs to be changed.

IMO there should be a new Stories tab, that transcludes the Open-tab and adds a “save story” button to the footer.

The existing Open tab also contains “ancient” code so it is not very flexible to be extended atm.

2 posts were split to a new topic: [Idea] Bundler Plugin - should work with stories

Not sure if this is exactly what you’re looking for or not, but the Views plugin by Ben Webber does what I need. It will save story rivers as views that you can access via the sidebar.

I actually modified his Views sidebar tab to add a couple of buttons to delete the view or update the view (screenshot below).

image

1 Like

Yes, @benwebber view plugin uses a field to store a filter, which can always just be a list of titles as well. He also links to a permaview version of evidentlycubed.

My reimagine tags tool allow you to open all and close all tiddlers with the tag. In this case you can open multiple sets of tiddlers on top of each other, and close only those which are member of a set leaving the rest open.

  • This makes me think if tagging sets is the most functional, at least for tiddlers
    • if not system or shadow tiddlers, because tagging edits the tiddler.
  • Eg tag current story tiddlers with a workspace name?
  • The other alternative is something like @Mohammad basket tool, where the list is only saved in a field.
  • I have also being working on dragging and dropping titles on tiddlers to tag them, or drop on a tag pill to add the tag…

I do see a lot of opportunity here to satisfy @jonnie45’s “Save Current Story River As A Workspace” and turbocharge TiddlyWiki list and tag handling.

I have to say though - in the interests of simplicity I do rather like my original idea, that the tiddlers that store the list of tiddlers are pretty much copies of the storyriver tiddler that are used to restore the field of the story river to a former state by copying across the field contents of the storage tiddler.

I wary that a drive to generalise ends up creating something bigger and more complicated and less hackable by someone with medium level skills.

I think I am capable of writing this plugin myself but since oeyoews is already on the case then I am happy to stand back and wait for his version and perhaps tinker with it if required.

I favour simplicity and adaptability - I don’t use the standard Tiddlywiki tools like the tags manager that much preferring my own custom tabs with tools I have written or customised to work the way I want them to. I prefer to see low level functionality provided which eases the task for anyone who does not like the standard model for a particular workflow as imposed by a a particular UI to build their own that fits in with their workflow.

Its a difficult call - generality vs something that is designed to do the job but I do think there is an inherent and pleasing simplicity in a design that involves managing tiddlers that are effectively really just copies of the story river at different points in the history - they can be exclusively tagged, deleted, copied and modified - the transparent simplicity of the data model I feel suggests a final implementation that will be simple and easily customised according to taste.

1, Create tagged ‘copy’ of the Story river.
2. Side bar tab or similar to list tiddlers identified as copies mentioned in 1.
3. Row of buttons to the side of each tiddler in the sidebar list to perform operations including “restore story river to this”.

The model I suggested is I feel a very simple and potentially robust model - it simply “clones” and manages copies of the storyriver tiddler, conceptually simple and very hackable.

Maybe I am mis-judging alternative solutions, maybe I don’t have enough Tiddlywiki core vision to really say but my instinct here is that a simple “pure” design is perhaps in danger of getting complicated.

I use a similar approach myself and it works well. I think of them as user sessions. I have just never had reason to package it as a plugin, particularly since I use a completely custom UI that would not be very useful to others, but the approach is sound!

sure

That is the end game, I would not bother myself if it did not get easier and simpler

It would not matter if you were, go with your own vision, I too want simple answers, but they are my vision, let’s see yours.

I am looking forward to it.

Oeyoews seems to say he is going to have a go at writing this plugin so I am going to hold off writing one myself to see first how that pans out, but if that does not work for me then I will probably write what I need myself.

In order to facilitate later expansion, I am considering the storage structure of this data, instead of simply storing it on a certain tiddler. I plan to store multiple workspaces in the format of objects, and eventually provide the UI in the form of widgets. I may continue tomorrow. It does take time to try debugging, and it may not be completed quickly.

In fact, I prefer a visual workspace, which is more intuitive, just like switching a computer’s virtual workspace

On further reflection, and with all respect, I think the solutions being investigated here are more bigger and complex than the ones I have in mind.

  • perhaps when I have the opportunity to prove it I will
  • In the meantime I am keen to see how others address it.

$__plugins_oeyoews_workspaces.json (3.8 KB)

This is a very rough version. If you want to achieve the ideal effect, you still need to spend a lot of time dealing with the details; in fact, for me personally, with the help of commandpalette and full keyboard operation tiddlywiki, my need for multiple workspaces has been It’s not as strong as it was in the early days.

3 Likes

Is there a way to set this up so that it doesn’t open the tiddlers in a new tab but rather in the current instance? (closing all the other ones)

Maybe my ol’ TiddlerSets plugin can be of use?

The latest version of the bundler-plugin allows users to open all tiddlers with CTRL-click on the “preview list” button.

When a new standard bundle is created, the plugin uses the story-river to initialize the tiddler-set.

To dynamically extend the tiddler list, it’s possible to use filtered-bundles so there is no need to change the bundle, since the filter can do it automatically.

new-story-buttons-annotated

I was surprised to see that I never posted the plugin I put together, although really I was only packaging helpful suggestions from others especially Eric Shulman.

$__plugins_jonnie45_Workspace.json (8.3 KB)

There is unfortunately no doc yet on how to use it, I haven’t gotten around to that yet, there are a few tidies I would need to do before I offered it to others but there is no reason why they cannot try it out on a new blank tiddlywiki.

It populates the storyriver with a list of tiddlers that are stored as a field in a tiddler that has the tag “workspace” - ( unfortunately I note that I am still creating a storage field named “list” which could clash with other plugins so I need to rename that field in the next version of the plugin ). Each time you create a new workspace you create a new tiddler with the designated workspace name - this tiddler simply stores the list of tiddlers that should be displayed for that particular workspace.

The plugin sets up a new tab on the sidebar with a briefcase icon to symbolise “workspace”.

Creating a workspace creates a tiddler with the same name as the workspace so if you create a workspace named “Where I got to last night” then expect to see a tiddler created with that name and if you edit it you will see a field with a list of the tiddlers that belong to that workspace.

The plugin sidebar tab features the facility to save the current storyriver content as a workspace, the user supplies a name for the new Workspace - the default is “UnNamed Workspace”.

To modify the tiddlers displayed for an existing workspace you would typically click on that workspace to first get the storyriver displaying the current workspace. You would then add or remove tiddlers as desired from the storyriver and then save the workspace again under the same name so that you overwrite the current workspace.

If anyone intends to use it please contact me and I will make the alterations required - as mentioned I need to rename a field to avoid possible conflicts with other plugins and it does need some rudimentary documentation.

I have been using the plugin for around 8 months and it has transformed my workflow and the way I use my knowledge based TW - I use it to group tiddlers that form part of a working set for a particular topic but increasingly that group of tiddlers may mature into a set I simply want to remember and re-use long term so the way it gets used is organic.

I am pleased with my original design decision to use an ordinary tiddler to hold the list of the tiddlers in that particular workspace - it makes everything very accessible - the only thing that is special about the tiddler that “holds” the workspace is that it has the tag “workspace” and of course a field to contain the list of tiddlers in that workspace.

1 Like