TiddlyWiki

I’m infatuated with TiddlyWiki again. I’ve tried it a few times over the years, but it’s never stuck. One reason was that TiddlyWiki is a single, self-contained html file, and Safari has trouble saving itself to the file system. In order to save the thing I had to basically do a Save As…” each time. Too much friction there.

Another snag has been that it’s kind of weird. Not weird in a bad way, but weird in a what do I do with this thing?’ way.

A week or so ago I decided to dive back in. The first thing I learned is that TiddlyWiki can be run as a Node app. This means that each tiddler” is stored separately as a plain text file.

So something like:

npm install -g tiddlywiki
tiddlywiki mywiki --init server
tiddlywiki mywiki --server

Visited http://127.0.0.1:8080/ in a browser and I was off and running. That solved the Safari problem. It also makes it possible to edit the wiki using whatever my favorite text editor is this week, if I were so inclined.

Getting over the strangeness of TiddlyWiki has been a matter of jumping in and using it. I’ve been thinking of TiddlyWiki as a Zettelkasten1, and each tiddler as a zettel”. This has helped frame things in a way that makes sense to me. Each tiddler represents a single topic or thought or idea.

I’m not sure how far I’d take TiddlyWiki as a Zettelkastan, though. If I were thinking of building a long-term Zettelkastan, I’d probably use something like The Archive.

The other thing I’m learning is that TiddlyWiki is more powerful than a casual look would indicate. Macros, plugins, filters, etc. allow all sorts of custom behavior. I’ve only scratched the surface.

So for fun, I’m occasionally entering stuff in a local wiki, saving the file, and publishing the result at http://wiki.baty.net/. I do this with a small Makefile that looks something like this2

PUBLIC_DIR=output/
SERVER_HOST=static.baty.net
SERVER_DIR=/home/jbaty/apps/wiki
TARGET=Static

deploy: commit push
    @echo "\033[0;32mDeploying updates to $(TARGET)...\033[0m"
    mv ~/Downloads/Jack\ Baty\'s\ Wiki.html ~/Downloads/tiddlywiki.html
    rsync -v -rz --checksum --delete --no-perms ~/Downloads/tiddlywiki.html $(SERVER_HOST):$(SERVER_DIR)


build: clean

    @echo "\033[0;32mBuilding site...\033[0m"
    tiddlywiki ./ --render "[!is[system]]" "[encodeuricomponent[]addprefix[output/]addsuffix[.html]]"

commit:
    git add -A
    git commit -m "Build wiki `date`"

push:
    git push origin master

clean:
    rm -rf $(PUBLIC_DIR)

.FORCE:

TiddlyWiki is fun to play with, but I don’t know yet whether I’ll ever use it consistently. So far it feels like I’m using it to write a blog, and the last thing I need is another blog. Still, it has potential.


  1. Luhmann’s Zettelkasten M. Kuen, 2007↩︎

  2. I haven’t figured out the build portion yet.↩︎