Not my tiddlers in Node.js edition

In TiddlyWiki Node.js my tiddlers subdirectory has other tiddlers that appear to belong to plugins.
Is this inevitable? Can I fix it?

Please note that I imported my TiddlyWiki HTML files into Node.js, that is I didn’t create the wikis from scratch with the Node.js edition.

After installing these plugins on Node.js, these TID plugins can be removed.

1 Like

Thank you. I’ll find out to which plugins these tiddlers relate, hopefully I’ll install the plugins on Node.js in the conventional way and then I’ll remove these tiddlers.

Just be careful that the tiddlers you see are not shadowing the plugin ones. If you decide to configure/override something in the plugin, you will have a plugin encapsulating multiple tiddlers located in $:/plugins/user/plugin, but your override, $:/plugins/user/plugin/path/to/tiddler will live in the main namespace. This can happen by accident, if you edit a plugin tiddler to see how it works and then choose save rather than exit (as I’m prone to do.) Those cases are not an issue, as removing the override won’t change behavior. But they can also happen intentionally, with some overriding behavior added. If you delete these tiddlers, you revert to the plugin’s default behavior and lose your customization.

Remember to back up first!

1 Like

I looked at the matter a little more and it’s rather hard to see what I could do.

I have these plugins:

ContextPlugin
Edit-comptext
Stories
CPL Repo
Editor AutoList
Link to Tabs
Markdown
Projectify
Relink
Relink Field Names
Relink Markdown
semantic
Shiraz
Shiraz callout
Shiraz Formatter
Sidebar resizer
Tag-count
Tiddler Commander

I see three options:

  1. Find a way to safely delete tiddlers that were obviously not created by me, bur are shown in the /tiddlers directory of each wiki. This would imply that I would then have to find a way to create the Plugin folders, the plugin.info file and not to delete any shadow tiddlers.

  2. Export all of my own tiddlers and import them in a new TiddlyWiki Node.js. This would still imply that I would have to find a way to install the plugins properly and to customize them as necessary.

  3. Leave it as it is, a mixture of plugin tiddlers and my own tiddlers in the /tiddlers directory.

Unfortunately none of these solutions is really satisfactory. :frowning_face:

You can save all the plugins in a separate sub-directory, see https://tiddlywiki.com/#Customising%20Tiddler%20File%20Naming

Thank you for the link. I’ll study it.

When I mention deleting the plugin’s TID here, I am referring to deleting the packaged plugin TID, not the TID that overwrites the shadow file.

The standard approach is to visit each plugin’s official website and locate instructions for installing the Node.js version.

Another method involves installing a plugin generator, such as Gatha. These tools typically include functionality to convert browser-based TiddlyWiki plugins into Node.js plugins.

Please note that installing different versions of the plugin may cause compatibility issues.

The tiddlers subdirectory are where tiddlers for your content and plugins reside. Deleting these from the file system makes little sense if they are there because you installed a plugin. Just leave them alone.

  • If you want to remove the plugin go to the wiki and delete them from there
  • In many cases you can also just disable them.

Except: when installed them via the file system.

1 Like

Thank you for the information. I had installed all my plugins by drag and drop in my TiddlyWiki HTML files and I imported the TiddlyWiki in TiddlyWiki Node.js.

I’m thinking about trying out the following in a VM:

  • Install TiddlyWiki Node.js
  • Create a centralized plugins directory at a location accessible by all my wikis, for example ~/TWplugins
  • Copy my existing wikis to the VM say, inside ~/wikis wiki1, wiki2, wiki3 etc
  • Experiment by deleting plugins using the Control Panel (plugins tab) and adding them to the centralized plugins directory
  • Adding the plugins to the individual wikis in their respective tiddlywiki.info

Answering myself, but I spent a very busy 48 hours trying to get TiddlyWiki plugins to work with the Node.js edition. Microsoft Copilot must have shortcircuited a few circuits trying to help me. That’s why I documented my exhausting time. Here’s a summary of what I leanrd and a summary of the procedure that appears to have worked.

Unfortunately a few plugins were not possible to add at all, for example the Editor-Autolist or to work as expected. For the latter group I’ll make separate postings.

! ''Here’s the “battle report”''

As seen by Copilot — the narrative arc from where we started to where we are now

---

!! 📜 The Attempted Path
Initial plan: Grab sample or empty HTML wikis containing the desired plugins, extract the plugin tiddlers, and drop them into your Node.js wiki’s plugin folder.

''Expectation'': Straightforward — each HTML would yield a clean set of plugin.info + tiddlers for staging.

''Reality'': Many of those HTMLs were incomplete, outdated, or packaged in a way that didn’t match Node’s folder‑based plugin structure. Extraction was inconsistent — sometimes missing files, sometimes wrong folder names.

!! ⚠️ The Problems We Hit
Repo structure mismatches:

Some plugins lived in source/…, others in plugins/vendor/…, others only as .tid bundles under packaged/.

Our initial mv paths often pointed to folders that didn’t exist in the current repo version.

''Collision errors'':

Re‑running the script without clearing old copies caused “Directory not empty” failures.

''Busy folder errors'':

Trying to mv into a folder that was open in a terminal or file manager triggered “Device or resource busy”.

plugin.info missing:

In some cases we staged the wrong level of the repo, so ~TiddlyWiki saw the folder but not the plugin.

!! 🛠 The Fixes We Put in Place
Switched from HTML extraction to direct ~GitHub repo staging — pulling the actual folder‑based plugin source from the correct path in each repo.

Path verification — inspecting each repo with tree before adding it to the script, so we knew exactly where plugin.info lived.

Collision‑proof staging function — removing any existing copy before moving the new one in.

rsync for repo‑root plugins — avoiding “busy” errors by copying contents instead of replacing the folder.

Provenance logging — recording the repo URL and commit hash for every staged plugin.

---

✅ The Outcome
You now have a clean, working plugin base in /home/andy/TWplugins with correct folder names and plugin.info files.

The wiki starts without warnings, and all staged plugins appear in the control panel.

The process is repeatable — re‑running the script will refresh plugins without manual cleanup.
! Purpose
How to install plugins in ~TiddlyWiki Node.js Edition

!! ''1. Recon the Repo''

Clone to a temp dir:

```bash
tmpdir=$(mktemp -d)
git clone --depth 1 <repo-url> "$tmpdir/repo"
tree -L 3 "$tmpdir/repo"

Locate plugin.info — note the exact relative path from repo root.

Common patterns:

source/

plugins//

repo root (rare)

Ignore .tid files under packaged/ — those are single‑file bundles for browser import, not Node.

!! ‘‘2. Add to stage-plugins.sh’’
Use the verified path as src_path and your desired folder name under $PLUGIN_BASE as dest_path:

stage_plugin "<repo-url>" "<src_path>" "<vendor>/<plugin-name>"

Example:

stage_plugin "https://github.com/kookma/TW-Favorites.git" \
  "source/favorites" "kookma/favorites"

!! ‘‘3. Collision‑Proof the Function’’
Make sure your stage_plugin:

Removes any existing $dest_path before staging.

Logs repo URL + commit hash for provenance.

Uses rsync instead of mv for repo‑root plugins to avoid “Device or resource busy”.

!! ‘‘4. Stage the Plugin’’
Run:

./stage-plugins.sh

Check the log:

cat "$PLUGIN_BASE/install-log-YYYY-MM-DD.txt"

Confirm the commit hash and that the folder contains plugin.info.

!! ‘‘5. Enable in tiddlywiki.info’’
Add the plugin to the “plugins” array:

"plugins": [
  "tiddlywiki/tiddlyweb",
  "tiddlywiki/filesystem",
  "vendor/plugin-name"
]

!! ‘‘6. Restart and Verify’’
Restart your wiki:

tiddlywiki . --listen port=8099

Open Control Panel → Plugins → Installed → confirm it appears without warnings.

!! ‘‘7. Housekeeping’’
Remove temp dirs:

bash
find /tmp -maxdepth 1 -type d -name 'tmp.*' -user "$USER" -mtime +0 -exec rm -rf {} +

Prune old logs if desired.

Archive unused plugins to $PLUGIN_BASE/_archive.


!! ‘‘Golden Rules’’
Never guess paths — always inspect the repo first.

Never stage .tid bundles for Node — use folder form with plugin.info.

Always log provenance — Future‑you will thank you.

Test one plugin at a time — easier to isolate issues.

1 Like

Are they .json file? If so,
You don’t need to do anything, this is the correct situation.

If they are .tid file with title: $:/authorname/xxxplugin/xxx, that may be some mistake. You can delete those .tid file and retry drat & drop plugins to install them in your nodejs wiki.

A sad story, this is why I find bad document of nodejs plugin waste many normal users’ time.

Plugins in nodejs wiki may apperas as json file inside ./tiddlers subdirectory.

See also: