Learning Tiddlywiki, some input, suggestion, and insight from a new user

Hello! I’ve tried to put in the work into using Tiddlywiki for my gardening notes (on others if I get a handle of it) and it’s been rough. After trying to figure out how tiddlywiki works for days, I decided at this rate I was going to give up on TW so I just dropped the learning and decided to just use it. Go basic and clunky and figure out what I need as I need it rather than trying to understand the software first before using it. I only added one page of my notes before seeing some needed improvements, which I need to figure out. And now that I’ve finished writing this, I need to apologize for the length. I’ve edited this many times now trying to trim it down and keep it on topic and understandable and to-the-point. But it’s a large post. I appreciate anyone who reads through this and will discuss with me.

P1. My notes are pretty monolithic. It’s reasonably organized so I can see how sections can be broken down into different tiddlers, but that’s the complex stuff that I couldn’t figure out in learning. I could either leave it as a LARGE tiddler or a bunch of unconnected tiddlers until I figure out how to connect them.

P2. Tables. I’ve tried to copy paste some of my markdown tables from my notes (QOwnNotes) was terrible. I could paste it in and it would not work. I’d edit it and simply delete the | and type them again and they would work. That’s dumb so I’d like a to have an easy way to make tables.

P3. I have my personal notes in QOwnNotes right now and I have links between notes strewn about. At some point I decided to standardize titles and templates for notes. What I didn’t realize was that the links would not update. I ended up with useless links and had to go and change every link. I do not want this same issue in TW and I’ve found 2 potential solutions. Relink (GitHub - flibbles/tw5-relink: Tiddlywiki5 plugin to better update all other tiddlers when renaming a tiddler.) and TWCrossslinks (https://groups.google.com/g/TiddlyWiki/c/9ra0s9AEKl4). I’m not sure which one is preferred to use, though I like the clear way crosslinks shows links to the tiddler. I’d love input here as I don’t know TW well enough to know if this is the best way to go or if there are things I need be be aware or wary of.

P4 Visual exploration of information. This is an extension of P1 and P3: but rather than the technical howto of how to breakdown and connect content in my TW, this one is how to I navigate it. As the one creating it, I may be able to navigate it due to knowing the structure and linking, but what if I pass it to a friend? If they want to look at my gardening wiki to help start their own garden, how do they study my wiki effectively? Do they just search randomly for keywords and learn tidbits or click tiddlers and follow links learning in a sort of semi-guided and but nebulous manner? I want them to be able to use it to learn from in a structured way (or they can go the haphazard way if they prefer). If I were to pass them a notebook, they could see the book itself is about gardening, and little tabs or inserts separate blocks of knowledge: garden prep, crop varieties, IPM, etc. Basically different chapters where like information is grouped. And within that (say, crop varieties) are headings that break that down further: maybe a simple Spring crops, Summer crops, etc. So they can read through the whole notebook or narrow down their search for info to something a bit more specific. And they can do much of that visually. But in TW, I don’t see how to navigate info easily. If I have links, I can search for a keyword, open a tiddler and if it’s not the one, I can follow the breadcrumbs of links in hopes of nailing down the info I need. I can check open tiddlers if it was something I stumbled upon earlier but hadn’t closed yet. I’m lost in an ocean of tiddlers here. I have accepted I won’t have a purely visual navigation alike OneNotes physical notebook GUI, but there must be something that helps. I have seen a few potential solutions that help here: Drift, Stroll, and Grok.

  • Drift and Stroll both have this quirky tabbed deal in a tiddler that creates a little contained notebook of other tiddlers; that’s a possible usable answer. From prodding it, it appears you make a ‘tab’ code piece and define the tabs you want. If you create tiddlers with the titles of each tab, then clicking that tab will transclude (I hope I’ve learned TW lingo correctly) the tiddler here. That’s nifty and for a more or less contained topic this could work well for me: Growing arugula – tabs= seeding density; transplanting; watering; harvesting; postharvest. I’m not sure if this will work well on a large scale. Would a topic of Growing transclude tabs for growing arugula, growing x, growing y and not transclude a all the tabs for arugula and the others. That seems like tab inception would get unwieldy. Neither seem to have tiddlers that have this tab interface other than the main page, so perhaps it is unwieldy or maybe it breaks things. So I’m not sure this is the way I would want to go for a large knowledge base (maybe in combination of another option where this sticks to small topics). It is almost like a book table of contents, but seems more limited to me and not quite the whole of what I’m looking for. Maybe there is something better for me or perhaps I need to combine several options.
    An aside, I do like the inbound links footer in Drift (which I think is actually TWCrosslinks that I mentioned earlier). Seems good for discoverability of my info as I break down topics to individual tiddlers. A bit confused by all the different links, so I might change what they are called in my wiki once I learn what each one actually does.

  • Grok has a different method for navigation. I believe this one was meant to be read more as a book than a digital garden (I new term I heard while trying to learn TW, not related to the garden wiki I am making!). So in that sense my head immediately understood it more. This one appears as a far like an overview of the information since it is a table of contents. As I was writing this post, I had no clue what plugin/macro created the TOC even after all my reading of different sources. However, in writing and explaining this issue I found the page for that in Grok. I still don’t know how it gets the little CONTENT tab in the sidebar, unless it is automatically generated upon making a table of Contents. From my reading, it appears that TOCs are made through tags. The TOC itself uses code <<toc …>> and using that title as a tag for the others creates the items in the TOC. You can nest through tagging one with the title of one of the items on the list. AND you can add <<toc-selective-expandable …>> to compact the TOC to only see the top levels in the heirarchy by default. Wonderful. This I can use. And will probably use. In fact now that I’ve learned this, it seems more relevant to make this and do the tabbed thing on each of the top level items in the TOC for a very detailed managing of information. I think this would work well in scale as it gets bigger. However, getting here is a story that I hope illustrates my issues so I’ll elaborate the process.

As I was writing about Grok’s TOC I wanted to ask about how to make the content tab in the sidebar, but I didn’t remember the lingo for what that part was called (system menu? System tiddler? Still not sure). I knew it was there somewhere since I had read it before so I used the TOC to find the section that sounded most reasonable for having that info in it. However, It did not so I started clicking links and link jumping until I eventually found the page. So I know a TOC isn’t the end of this visual navigation I seek, since it was still a struggle to find that info, but it is a solid start. And to be fair, a paper version of these notes with equally have issues finding the specific spot. But this is TW so it is digital and it has a SEARCH function. That should not be overlooked in finding the content, so I tried that by searching “content tab.” It did not find my desired page but it DID lead me to the “Creating Hierarchies with a Table of Contents” tiddler! So I got information on what I was ultimately searching for overall, but it failed to find the specific information I wanted for the little content tab.

  • This to me is a nice microcosm of my issue: navigating a TW to find specific information. It works, but it was not straightforward. If this is part of the base Tiddlywiki, why was it so hard to figure out? How did I spend hours and days trying to learn how to use Tiddlywiki and not see this until now? Plenty of information (an overload for me in fact) on specific, complex plugins and macros and such, but not on how to use what is natively provided by TW. There are plenty of cursory basics of TW, but its mostly how to make a tiddler and nothing beyond. So I was getting overloaded with the fancy tiddlywiki concepts and starting to think “I need to know programming just to make a functional wiki with TW.” And that was when I said STOP thinking, just use the thing and go basic and clunky and figure out what you need as I need it rather than trying to understand the software first before using it. I could have easily gone with dropping TW and using other software instead. Thankfully my reading has bought me into the idea of Tiddlywiki because it aligns well with what I wanted: being a quine was a new concept to me but a lovely bonus. So I’m continuing the effort to figure it out.

All that said, looking for some potential solutions to the problem, here is what I’ve uncovered
P1: connecting tiddlers. I found a plugin called Streams (Streams — on TiddlyWiki 5.2.2). It took me a bit to see how it worked, as it looked like it just made a bulleted list, but as I wrote a tiddler, each time I pressed enter it created a new tiddler that was presented as a bullet. And actually, it seems like it works like the TOC but with fields rather than tags. When it makes a bullet it gets a stream field with the parent stream (the one with the bullets). If you have a sub-bullet it gets a field to show that too. Visually, in that tiddler it has breadcrumbs that show the relations in that main tiddler, and you can click on the breadcrumbs to jump to them. So it seems like a great way to write a tiddler and be able to have it broken down rather than a giant tiddler, while still having the info consolidated and easily readable. I am afraid of overusing this feature though, as I don’t quite understand how fields work, whereas the TOC tags seem straightforward. Can you search for fields or easily see fields like you can tags in the sidebar. And if you could, would you want to? So I don’t know if this is the best solution, but it seems like a quick answer to how to break down my notes while keeping them connected. Other solutions or insights would be appreciated.

P2: TiddlyTables exists and I tried it but it is currently very opaque to me. It creates a very fancy table tiddler. You can do cool things like paginate to make it more compact and it makes a very visual table rather than a markdown table. But this is, at least for now, waaay too techy for me. How do I manually add things? You clearly aren’t supposed to edit the tiddler for the table. And the edit button doesn’t seem to let me edit a row or data here. And the cog for the table not clear to me. It’s more like a pivot table when I just wanted a regular table in a spreadsheet. Perhaps its great for a TW expert who knows the way things work. But it’s not usable for me at this time. Is there a plugin or something that is simpler? I’d be fine if there was a button in the editor that just added a markdown/wikitext table that I add my data to manually. It would at the very least make making the table easier than just adding | after every item and hoping I didn’t forget one somwhere in there. If I could highlight text and hit a table button and it would organize it into a table, that’s amazing, but that is a want more than a need.

P3: backlinks. As of now, TWCrosslinks is the solution I’d go with. But does it work with the latest TW I have (5.3.3). Is there another solution? The types of backlinks concern me a bit to, as I’m not sure how you add a specific type or even what exactly each type is.

P4: Visuals Navigation. At this moment, it seems like TOC + Streams would address the immediate need. I don’t know how to add the stroll or drift tab function into my TW or if I need to just download those and start the wiki from scratch (not that hard, just 1 page of my notes added so far~). Also not sure if TOC + stroll tabs + streams might bring a level of complexity that I’ve added the convenience of navigation at the expense of flexibility; maybe changing organization down the road will require tedious changing of tags or fields and I’m basically better off just making a new tiddler and copy the fields over and deleting the old. So I’d love input here. Do you guys know of better options or alternatives or any other comments regarding visual navigation here?

Hi @Spiffyman, welcome to the community!

You have touched quite many areas here. I’ll try to split my following answers into these areas, it might be it will be easier to split the whole discussion into separate topics if it gets lengthy. First just some general comments.

This approach worked for me too. It was much easier to learn when I already had some notes to try out things on.

You’re right that TW is not easy on newcomers, it is a recurring problem that it is difficult to find the right information on tw-com.

There are some efforts to make this better, like improving the quality of search results on tw-com or community-curated editions, which would be a good starting point for newcomers.

1 Like

Updating links/ relinking

I cannot recommend Relink enough, I can’t imagine TW without it. You can’t go wrong with it. This is not to say TWCrosslinks is not good, but I haven’t heard about it, so I can’t say.

For basic usage, you don’t need to configure anything about Relink, just have the plugin active and it does its magic whenever you rename tiddlers.
It recognizes not only normal links like [[Crop varieties]], but also more complex references, like <<toc "Crop varieties">>, and all of them will be updated if you rename the “Crop varieties” tiddler.

All core macros are recognized and “understood” by Relink. If, later, you create your own macros, you can easily make it so that Relink understands them as well, and updates titles referenced in them.

Also, Relink adds a “Relink Backreferences” tab to the tiddler info. This tab shows all backreferences to the tiddler, not just backlinks.

2 Likes

Tables

This sounds weird. If you can still replicate it, setting up a minimal example that shows this behavior would help debug it.

One explanation that quickly comes to mind, though a bit stretched, is that perhaps in the content you copy from QOwnNotes, there is some character similar to | in use.

As to managing tables in TW, it depends on how many and how complex you want them. If not so many and not too complex, I’d stick to the default core syntax.

If your notes rely heavily on many big tables, including “dynamically generated” ones, I would maybe consider Shiraz Plugin. See:

  • Shiraz Tutorial → Dynamic tables
  • Shiraz Tutorial → Quick tables → Example simple quick table

However, especially for a new user, I would recommend, if possible, to try to avoid too many plugins and making your notes dependent on those plugins early on. I don’t use the aforementioned Shiraz Plugin due to this exact reason. I think it is very nice, especially the table features, but I don’t think I would use it enough to justify being dependent on it.

Visual exploration of information

You have found part of the solution already.

For hierarchical, handbook-like notes, the tag hierarchy (“TOC” tags “Crop varieties”, which tags “Spring crops”, which tags “Arugula”, which can also be tagged by “Summer crops” if appropriate).
Then, for a very quick visual exploration setup, you could have a Home (opened by default or by pressing home button on sidebar) with <<toc-selective-expandable "TOC">>.
You could have the same thing in a sidebar tab.

Splitting and connecting information

Partial answer and some tips to this complex topic. See a similar recent topic here: How to organize nested time-of-day tiddlers under Journal days

If you have a repeating note pattern like “seeding density; transplanting; watering; harvesting; postharvest” for each crop, it could be beneficial to give it some structure. It will allow you to view this information in a more visually pleasing, organized way.

If your notes on any of this topic are very short, like one line of text, it might be easiest to create dedicated fields, where you type these notes.
You can create a view template which will present these information in a neat way.

If your notes on these topics are longer and more complex, you can split them to different tiddlers. I would recommend “connecting” them by namespace, that is for “Arugula” create “Arugula/watering” tiddler.
See the discussion linked above for more details about a very similar problem.
You can reliably find all “subtiddlers” using filters.
To make your life easier, you could create a view template, displayed for each crop, that transcludes these “subtiddlers” in a table or tabbed UI, and shows button to create the “subtiddlers” that do not exist yet.
Also, if you have Relink titles subplugin, it will recognize such relations (show them in backlinks, rename Arugula/watering if you rename Arugula).

Looks like you need a tiddlywiki markdown plugin. Or a tiddlywiki markdown importer

And of course, don’t be afraid to ask questions here whenever you’re stuck. The inaccessibility of the TW for newcomers is compensated by a very helpful community here.

I just took a look at the qownnotes software. Its storage format is markdown. Maybe you need to migrate the entire markdown folder instead of manually copying and pasting.

Hi Spiffyman. It’s probably not what you’re after but you might want to have a look at https://tiddlymap.org/

Hi @Spiffyman and welcome to the TW community

Here are some tips to soften the learning curve:

  1. Use TW to learn TW. This one you already found by yourself, but my advice is to create a new wiki where you write what you’ve learned on TW. In this wiki, use as many links as possible to official documentation, or to places in other wikis where each technique is implemented. Tip: use permalinks to collect link targets:


    Also, in order to make searching more effective, use your own vocabulary in this wiki and describe what you used each technique for. Example: using the caption field to change the label of your Gardening wiki TOC items.
    In each tiddler text you can also add a “Keywords” section with keywords and synonyms, to help finding information back later. If you don’t want them displayed, hide them inside html comments in your tiddler text, they will still be searchable: <!-- Keywords: foo bar baz -->

  2. Use a dedicated wiki for your tests. When you’re trying to do something new, don’t do it directly in the target wiki, use a test wiki for this, but don’t delete it afterwards. I keep a tests.html wiki just for that, where I try every new technique I want to use in another wiki. I sometimes find it easier to search this testbed than remembering where I used the techniques later. It will also help you to reduce your problem to a simple example, which can then be used to ask for help here.

  3. Collect useful code and plugins in your own customized “empty” wiki. When you want to create a new wiki, all you have to do is copy your empty template and start to work with it.

  4. Don’t be afraid to ask the community here. Even “dumb-looking” questions are important, because they help newcomers to find the answers later, and they help new community members to get involved by solving “simple” problems.

Fred

1 Like

Hello and welcome! You’ve gotten a lot of good recommendations already, so I’m just going to focus on this part:

I can’t recommend the Link to Tabs plugin highly enough, especially when you’re trying to examine the inner workings of your wiki or someone else’s wiki “in the wild.” It will let you open any tab as a tiddler in the story river to see how its code works—I find this is often a lot easier than trying to track down the responsible tiddler via search, especially if you don’t really know what you’re looking for or what kind of naming scheme the author might have used. And since it doesn’t use any Javascript (which would require you to reload after installing) you can drag it into any wiki you find online and start using it immediately.

So if, for instance, I wanted to find out more about the Contents tab on tiddlywiki.com, I’d start by installing Link to Tabs. This lets me open the tab, and I can immediately see that it corresponds to the “TableOfContents” tiddler.

  • I notice that this tiddler has the tag $:/tags/SideBar. If I remove it, the Contents tab disappears from the sidebar; if I add it back (or add it to any other tiddler), a new tab will appear. So I can conclude, even without finding the sidebar tiddler that contains the <<tabs>> macro, that $:/tags/SideBar is the tag used by that tabset, and I can add or subtract tabs as I like.
    • In fact, system tags (the ones that start with $:/) are used to control nearly every element of the UI: you can add them, remove them, or rearrange their contents (click on the tag pill and drag-and-drop titles in the dropdown) to change what displays where. You can search for “system tag” on tiddlywiki.com to get a complete list of system tags and how they’re used.
  • If I edit “TableOfContents”, I can further see that it has a caption field which transcludes the tiddler $:/language/SideBar/Contents/Caption.
    • If I paste this tiddler into the search field in the blue menu bar, I can hit enter to navigate to it directly. Alternately, I can paste it into the sidebar search and hit the Advanced Search button, which will pull up a tiddler with some more options.
      • I can see that this tiddler starts with the system prefix $:/, which means it won’t show up in a standard search. I don’t see it in the System tab either, but I do see $:/core—the plugin that contains all the core TW UI.
      • A plugin is a collection of specially packaged shadow tiddlers, so I’ll try the Shadows tab instead. This is where I find the $:/language/SideBar/Contents/Caption tiddler, and I can edit its text to change the label on the sidebar TOC table. (Since this tiddler is part of a plugin, any changes I make to it will create a normal tiddler—a modified copy that will overwrite the shadow. I can delete the modified version at any point and return to the shadow’s “default” behavior.)
    • Most core tiddlers use this kind of transcluded label to make it easy to switch out if you install a different language pack—but if you’re building a personal wiki for a targeted audience, you don’t need to transclude your captions: you can just change the caption to whatever text you’d like to use.

And as a side note, since we’re already looking at $:/AdvancedSearch

Yes, and yes! The quickest “core” way to do this is with the Filter tab of Advanced Search, which lets you use filter syntax to perform more complicated searches than the default search allows. Filters can get very complex, but you really don’t need to master them right now. Paste the following into the Filter search bar:

[search:caption[Contents]]

You can replace Contents with your search term, and caption with the field you’d like to search.

  • More about the search operator, including more examples which you can test inline or in the Advanced Search.

You can also find plugins to make it easier to search in fields, like this one by @pmario.

If you’d like to be able to view and edit fields in view mode, @Mohammad’s Utility plugin includes a Fields in View Mode toggle, along with some other tools that may make it easier to study and customize your wiki. (This is another one you can install and start using in any online wiki, which may be useful on GrokTiddlyWiki or the official site.)

2 Likes

This website might help: https://www.tablesgenerator.com/

I’m a huge fan of a) tabs, b) using fields to hold information closely associated with a single tiddler, c) view-mode editing, and d) using view templates to standardize and simplify tiddler layouts, so I made a quick demo of how I might approach this problem. This is a very rough and simple example (frankly, I spent more time documenting it than coding it) and quite opinionated, too; it’s only one of many possible approaches, of course. But I hope it gives you some idea of what’s possible.

2 Likes

Regarding the tables: After trying to replicate it again, I was careful to see if maybe I copied the output of the markdown or the markdown itself so I tried both. And doing either did not give the end result that I wanted. So I looked at the markdown carefully after I pasted it and noticed that it never pasted the initial | in any line. It would do the columns and the final | in each line but just ignore the start of line ones. So I changed nothing but add | to the start of each line and it created a table. I’m thinking this must be an error on my computer and nothing to do with TW. Perhaps simple tables are fine as is and that was an unfortunate oversight on my part.

2 Likes

I saw that little sprout symbol when I was looking at the wiki and it really made my day!
I’m still reading through your documentation but so far I like this! Templates look so so useful to standardize types of notes. But reading how to make them is terrifying. I understand it’s just an upfront cost to make it then it just works after. But I’m definitely going to get this in a test TW to play with because your demo was a great example of what I could do.

I’m curious how your tabs are horizontal while the examples I’ve seen are all vertical.

1 Like

I’m so glad it was useful! I vividly recall being intimidated by templates myself; that’s why I thought it might be easier to give you something to play around and experiment with.

I do think it’s worth trying to make a few simple templates upfront. You’ll be doing a major favor to your future self if you haven’t mixed up content and formatting in the same tiddlers, and it will make it much easier to edit and build as your needs change and your skills improve. :slight_smile: My general rule is that if I find myself using the same pattern more than two or three times in different places, it’s something I should take out and turn into a template that I can transclude.

  • In case you haven’t come across any examples yet, you can transclude a template, too!
  • It’s not unlike the other kinds of transclusion you’ve seen: the difference is that tiddler transclusion (like {{Arugula}}, which grabs the content of Arugula’s text field) and field transclusion ({{!!density}} or {{Arugula!!density}}) are used to import content, while template transclusion is used to import formatting.
    • A transcluded template will try to retrieve the values of any transcluded fields relative to the tiddler where it’s used, rather than looking for those values in its own fields.
    • In wikitext, a template transclusion looks like {{Arugula||MyTemplate}} or {{||MyTemplate}}. Both of these will take their basic structure from MyTemplate.
      • The first will use field data from Arugula; the second will use field data from the <<currentTiddler>> (usually equivalent to the tiddler where you used the transclusion, unless you’ve nested it inside a widget like $list. Don’t worry about this yet.)
  • Structurally, this is also how templates work when you apply them with a tag like $:/tags/ViewTemplate—the TW is just handling all the translusions for you.

This is just a function of the CSS I (didn’t) use. To get vertical tabs, add class="tc-vertical" to any <<tabs>> macro. Without it, it will default to a horizontal display.

Sidenote: I didn’t install it in my demo, but I’d also highly recommend the Commander plugin for your personal wiki if you’re not already using it. It’s my favorite tool for batch-processing when I inevitably want to make changes to a whole group of tiddlers at once—add or remove a tag, remove or add a field (empty or prefilled), search and replace content within a field, etc. You’ll probably find yourself wanting to reorganize a bit as your wiki grows with you, and Commander makes it quick and much less painless than editing each tiddler one at a time.

1 Like

Quick question: is it easy to remove a plugin? I stumbled across a plugin called Section editor (Section Editor — create, edit, fold, manage sections) while looking at Commander above. This seems like a nice way to get my notes in as big tiddlers without them getting unwieldy as a stop-gap for learning to break them down further or using mentioned tools in this thread to organize the information differently.

Once I end up doing that, i don’t know if i’d need the plugin anymore as I would create new notes not as giant tiddlers but in the more bite-size manner. If it’s easy to remove, then I could use that to get my notes into tiddlywiki relatively easily so all the info is in the wiki as I am learning how to use it. Not sure if that is a better method than adding it in slowly as I learn the new ways.

I am taking @tw-FRed 's advice and having multiple wikis to test things out, with a maintenance wiki that follows my tests and results for future me (or others if it is useful). So at the moment I will be conservative to what plugins go into the main, final wiki and it’s not a major issue. But I like to overthink things and wonder what happens if a plugin gets old and no longer works with TW as it gets updated to new versions (like dependencies with programming languages). Then I’d need a way to remove it from the wiki or just not update.

So even though I’m using test wikis, it will still be useful to know if I can easily and safely remove plugins. Whether I’m using a plugin that I may no longer need in the future, or it stop working, it’s one of those details that would be good to know for the future.editor).

@Thanasis_Sklapanis thank you for mentioning TiddlyMap.

I honestly have no idea if this could be useful to me. It is quite a novel ‘map’ to me so I can’t picture how it would be used in my wiki. Maybe it is a different way to navigate around and is awesome for me; or it may be for a different usecase than mine. I can’t really try it out until the wiki gets lots of links though, as i think it works by visually showing how things link.

Plugins can be disabled or deleted any time.