Project 2036: the future of TiddlyWiki

I’d love to see a list of what these TiddlyDesktop on macOS capabilities are.

[ext[the caption|the file path]] lets you do two things. If the path is a folder, it opens the Finder to that folder. If the path is a file, it opens the file in whatever app that you have set (with the Finder’s Info panel). As my work on a show progresses, I use one tiddler to take notes on a piece I’m composing that includes many different files, the scoring file, the original audio files from workshops which are the source material for the lyrics, the lyrics as they progress are written directly in the tiddler, the pdf files of the score that I send out to the performers with their input and transposition needs attached to each, the DAW files I record the different versions into, rehearsal recordings, and finally videos of performances. All these files are in different places. I used to make aliases and then put the aliases into folders along with text snippets, or a descriptive text file. TiddlyDesktop makes this so much easier and more flexible.

The other tool is the iframe: <iframe width="100%" height="600" src="/path-to-folder"></iframe> for example. I see the contents of a folder directly in the tiddler without having to switch to the Finder and then open the right folder to list the contents. As an example, a single tiddler can group any number of such “open folders” together to give a bird’s eye view of work that has been done with or for a given person. And because it’s TiddlyWiki, you can write explanatory notes, include links to other tiddlers, or use transclusion all in the same place where the open FInder windows are.

My main wiki runs under node.js on an old mac mini and broadcasts itself on a port I’ve opened in my internet box/router so that I can work with it from anywhere on any device. But the TiddlyDesktop wiki is all about keeping track of local files. Hope this helps.

1 Like

Thank you for this.

I am currently considering what my next main desktop working environment should be what with my seven year old Windows box going out of fashion and having acquired a Mac Mini slightly unintentionally. As such I am also interested in tiddlers containing

  • message: URLs. I know Mail.app kind of does this right less so Thunderbird (cb_thunderlink and derivatives)
  • Page references for PDFs which should be done by adding #page=n to the URL
  • References to source files possibly handled by emacsclient in my case

Re: Thunderbird email links:
The cb_thunderlink plugin apparently only works with older versions of Thunderbird.

What works for me is saving the message you want to link to as an .eml file. For example, without the user defined caption for the sake of clarity, [ext[/Users/m/Desktop/email with TD/[Talk TW] Project 2036_ the future of TiddlyWiki - Jon Schneider via Talk TW <noreply@talk.tiddlywiki.org> - 2025-04-09 1125.eml]] opens the email in a fresh (undistracted) Thunderbird window. To do the save I used right click Save As… on the message; and then opened the “Format: All FIles” dropdown menu to get to choose “Mail Files”. Your message takes 10 KB. Once it’s path is referenced in TiddlyWiki, it will be so much easier to find (and to take notes on) than lost in the endless meanders of the mail app itself.

Re: Page refs for PDFs
“#page=n” works fine for me. Long pdfs where page references are useful don’t go into my local TiddlyDesktop wiki because I don’t write anything that long that needs to be shared as a pdf. I have them on my main node.js wiki. Since I want to access them from anywhere, I put them on a CDN server; but they could just as well be on the old mac mini which serves my wiki. The code which is of type “application/pdf” in a field called “_canonical_uri:” is like this (for example):

https://TWpull.b-cdn.net/101%20Montunos.pdf#page=41

Re: source files
If you set the finder’s info panel to open the file with emacs, and copy the path, the ext syntax as explained previously will open the file with emacs.

1 Like

Just to follow up on this, what I like about TW is its technical strength in terms of what can be done using macros, widgets, variables, transcludes and so on. For me, the downside is that the wikitext-based “programming language” is overly complex and not well documented. Every time I come back to do some serious dev work in TW after a month’s break, I forget the differences between $var$, $(var)$, <<var>>, <$var>, {{var|1}}, {{var||1}}, {{{[[var]]}}}. I also forget when and in which context they should be used. It would be great if there is some way to unify and simplify all these different syntax.

On a similar note, I don’t know the history of the ListWidget but I imagine long ago it probably started as a simple way to produce a list of tiddlers. Today, however, so much has been added to ListWidget that it no longer just produce a list of tiddlers but can do so much more. Its output is often no longer just a list of tiddlers but can also be a number, plaintext, htmltext, a list of text strings and so on. I have two suggestions here. First, ListWidget needs a better name to reflect what it currently does, and; Second, there needs to be a way to directly specify the type of output be it a list of tiddlers, a number, a datetime, htmltext plaintext, etc…

3 Likes

Software Democracy

I have a belief that the existing TiddlyWiki demonstrates something I would call “Software democracy” giving everyone access to build, customise and publish applications, Websites and tools, including generators of such things, while at the same time using the standards on which it is built. HTML, CSS and Javascript.

Computers are everywhere but being able to make software to suit any purpose is not accessible to the vast majority of humans on earth. TiddlyWiki provides a gateway drug into this field of making computers do what you want to satisfy real worlds needs.

I believe any new version should maintain and enhance these possibilities of Software Democracy.

I also use the word Platform, and I think calling it “TiddlyWiki Platform” puts paid to complaints of the apparent triviality of TiddlyWiki as a name, no platform or framework is trivial.

I think what you raise here points to the following that the current TiddlyWiki and TWX could do;

Embrace HTML, CSS and Javascript

Smoothing out when and where and how to use these standards on top of and in TiddlyWiki would allow users to leverage these technologies more. Even tools for reference, syntax, design and importing open source projects outside TiddlyWiki into TiddlyWiki seems to be a big bang for the buck.

8 Likes

Hi Jeremy,
First I’d thank you and all the developers of TW for the great job! Awesome. TW became an important part of my life organising all the small but important notes. Wtf?

I totally agree to focus on the future of TW.
Please keep the stability as high as now.
Please differenciate better between experiments, half developed software and stable plugins.

Some plugins I’d like to see with full integration, because they matter for me most.

  • TW Plugin TiddlyJam
  • TW Plugin for E-Book (TWpub plugin)
  • TW Plugin for Node Red
  • TW Plugin for maps und maptiles ( leaflet plugin)
  • TW Plugin for draw.io
  • TW Plugin tiddlymaps
  • TW Plugin timeline plugin

The above extensions are so valuable for me, a better and more systematic integration would be great!
I’m not a programmer, maybe I can help with UI testing?

Chris

1 Like

Welcome to Talk TW Chris69, Thanks for contributing.

When you say “full intergration” what do you mean. Each of these plugins have being developed by different contributors and placing them in the core would consume bytes when not everyone may use them. Or do you mean something else?

  • If you think these could be in common use we could package them into an “edition” of tiddlywiki.

I wonder if TWX could include additional tools for data manipulation?

The tiddler / field as a record is powerful and can be easily used to structure data and tables. It would be great if we had a set of tools that allow a more intuitive way for solutions to be built on top of tiddlers but appearing as if they were records, tables or a collection of tables a database including using tiddler titles as keys/forign keys.

  • This would allow those comming to tiddlywiki from skills as broad as database, spreadsheet, tables to use tiddlywiki from the state by using there own expierence.
  • By providing these tools we also encorage the “correct” use of tiddlywiki.

Similarly I would like to see tools, standards and or guidence that helps with dealing with self-referential lists.

  • A key example is when sorting by a camputed value. It would be nice if we could generate a list in memory with multiple columns, sort on a nominated colum then return the list (of titles), then purging that working table (Structured variable?) from memory.

Hi,
I really appreciate your demand.

All of the above mentioned plugins fit perfectly in my work environment. And I’d really love to make TW a more universal tool for me. The potential of TW with integrating of all above plugins is tempting

But, some of the plugins seem to be more of a temporay playground to test ideas, not more. They generally work, but no activity for years…

I’d wish, that mature plugins are marked as such and can all be installed from the same official repository and in the same easy manner.

I’m willing to contribute in this direction. Not in a programming manner, but more as a user with UI focus.

Chris

2 Likes

Right. Given the massive use of plugins this sounds like a good, relatively simple to acheive, objective.

I still use some plugins made years ago that are no longer maintained (death of author; abandoned; experimental etc. )

I always worry they will stop working. But @jeremyruston has done an amazing job on backwards compatibility so the failures on v. old plugins I routinely use is still pretty low.

But, the point, I think, is the one you imply: there is a case to be made for a somewhat more Centralized source for, what one might call, Canonical Plugins.

An affirmative thought, TT

Exactly!

Probably this case touches one aspect of the thoughts of Jeremy, talking about the future of TW.

Chris

1 Like

I agree on all you layout in your post as vital issues. Great questions.

But I think you missed one. I will try and articulate it.

I see your brilliance in masterly juggling HTML, CSS, Javascript and SVG et al.

But there is one thing that got eclipsed—TW as “Master Of The Machine”.

What do I mean? I mean that TW standard is in a standard browser is now in a “clamp down”. Potential hampered.

Browser limits limit TW. TW was unlimited until browsers limited it.

I think use of Back-Ends to liberate standard browsers would RE-EMPOWER TW to be what it is … a full-on free expression of volition.

A comment, TT

4 Likes

We’ve had lot of wish list stuff in the discussion following @jeremyruston’s initial post, so what’s your/ our/ my story?

Still working on this post. Pressed the send button by mistake. Be back later.

on this note, i made a thread in the past considering an all-in-one tw operating system, where a hardware device would boot to tw and all of a user’s apps, files etc. could be accessed via a tw interface. on a much more reasonable note, i’ve found myself wanting to put links to open local files, folders, apps, or run terminal commands from tw links many times, all of which are limited by browsers.

admittedly i have not looked much into tiddlydesktop, so i am not sure if it allows these things. but if not, that would be a huge expansion of the capabilities of the platform. and on the security side, maybe the core could detect if a plugin uses these features and produces a warning / confirmation window before installing the plugin?

Right. Browsers now are very limited.

I won’t go over how Bob (still?), TiddlyDesktop and the first version of Timimi allowed, via TW scripts, passed to the O/S, machine control.

I still think it a good objective for any TW user who wants to control their machine to do so.

Right. You’d likely need (1) a plugin and (2) a back-end system tool installed to re-connect the browser to the O/S.

I agree a “simple warning” is advisable and is enough.

My point was that the limitation of common browsers has had bad effects on freedom— as well as a few good safeguards. It is now far too limiting.

I’d like to see TW explicitly be able to control ALL I do on a computer :grin: when I want that.

TW is getting limited by browsers in a way that is limiting its existing powers and development IMO.

QED, TT

1 Like

In the past few days I have been pointed towards two AI tools. I’d not used either before, nor was I aware of them

  1. Perplexity
  2. rabbitOS

The latter really suprised me. It outputted images, markdown files. It created a repo.

I’ve now asked rabbitOS to create me a TW

It is still crunching away. It may never do it.

However the idea is seeded. Create TW files pre-populated with data.

Any thoughts?

Alex

This is what it output. It didn’t complete the task such that umami_dashi_wiki.htlm actually worked with the images and tiddlers.json

Any ideas on what I would put in a prompt to create a node.js version which would be able to read folders of .tid files ?

Screenshot 2025-04-22 at 19.14.29

try rabbitOS here: https://hole.rabbit.tech/rabbitos

1 Like

I’d like the back-ends for getting at the OS to be configurable per machine that I might sit down at with a relatively simple way to configure them.

For example I have previously wittered on about email Message-Id URLs which should of course follow the standard. One could use the OS’s handler which in turn goes to Mail.app or Thunderbird. Or fall back to gmail.com on somebody else’s computer.

Then there’s opening files and directories.

Perhaps I’ll have a macro in my notes that refers to <<source_file file:“project_A/create_problems.c” line:“389”>> and I’d have my back-ends translate that to a Windows UNC path on my Windows machine, an automounted UNIXy path on UNIXy (inc. MacOS) machines and some URL on anything else (following the gmail above) .

Something I have experimented with recently is having the EDITOR environment run a script that fires the file spec through a reverse SSH TCP tunnel to my client machine’s editor (well emacsclient). That allows me to run for example cscope efficiently on the server. But I could also imagine an http request to my server hosting the wiki using some mechanism to make my local editor (or Finder or file explorer) do something.