At first I wanted to just jot the idea below. Turns out I have actually developed it right away...
Anyhow, here was / is the idea in detail...
Unique IDs were fine, however they have similar implications and seem a whole lot less intuitive for an end user than the following...
I would opt for appending any previous names to some custom
renamed field and then have the internal link handling check for any of those for fallbacks and, when found, display that.
This would make old links behave well and be able to open the newly renamed tiddler.
References probably would need some fixing too. In fact, I would want to change the core TiddlyWiki.prototype.reverseLookup so that it it is capable to match an array of lookupValues rather than just one, e.g...
if( values.containsAny(typeof lookupValue == 'object' ? lookupValue : [lookupValue]) ){
f = lookupMatch;
}
And then I would change TiddlyWiki.prototype.getReferringTiddlers so that it is able to feed reverseLookup not just with the name of the current tiddler but also with its old names. This should probably be the default core handling. I think I will end up making a pull request for that.
The actual handling for oldnames would be a rather straight forward ammendment to TiddlyWiki.prototype.saveTiddler.
While this is probably not something you would not maintain much (i.e. remove old names manually), using custom fields is somewhat difficult as they are so underrepresented (non-editable) in the default ui. So, installing some field editor might perhaps be required as well as well as a custom style or title that slightly differentiates such an outdated link from a proper one.
Eventually I am hoping for some RenameWizard that allows to find all those renamed tiddlers or references in macro parameters, fields, etc...
- tobias