I’m currently in the process of converting my wikis to node.js in order to get access to tiddlers as single files. I’ve just discovered that if the “foo” tiddler is typed as javascript, then it is saved as “foo.js” and “foo.meta” which is just I was hoping for! Same for css or json. There is no such separation for regular tiddlywiki contents, though. Shouldn’t it be also the case, even if only if indicated so in user preferences?
I’ve also had a few experiments with name collisions. I saw that, for instance, “foo/bar” and “foo:bar” all wanted to be named “foo_bar” and so one will be named “foo_bar_1”. The logic is correct but I would have preferred the alternatives names start at 2 instead of 1 out of logic and also because “_1” looks terribly like “_i” or “_l” depending of your current font. An other point I saw is that “$:/user/foo” would be named “$__user_foo”. That “$” in a filename is a pain on linux for further scripting with generated file name because it’s used for accessing shell variables values. Having $ for naming system tiddler is great but not for the inner name.
Naming convention could be many. For instance:
#1: Thanks to the mechanism for avoiding name collisions, we could replace $ with @ which has no special purpose within a shell, without worrying.
#2: avoid spaces and any punctuation, even points, replacing them with underscores. and any sequence of several underscores would be reduced to just one.
#3: only allow a restricted set of accentuated letters and replace others by underscore. or you could replace tolerated accentuted letters by their non accentuated letter (even if this change prounouciation of course. for instance “coup d’état” could translate into “coup_d_état” or “coup_d_etat” or “coup_d_tat”.
#4: and many more possibilities.
Thus the naming convention would be better as a customizable mechanism with a default implementation in the core and others available as plugins. Pehaps each possibility could be an option and one could select which options he want in order to get the customization it wants. plugins would offers one of several such options.