If TWiki mantained for each topic a table listing all topics that link to the current topic, several gruesome problems would be instantaneously fixed, like
RenameTopic. Ref-By would be trivial and it would help immensely to be able to
PreCompile.
It could work like this: when the page gets rendered right after being changed, enumerate everything that got converted to a link. If it's a topic name, insert yourself into this topic's backlink list (if you're not already there, of course). It adds only a very slight processing time when the topic is saved.
In this scenario, Ref-by would be nothing more than showing the backlink list (in a visually pleasing way, of course). To fix references after renaming a topic, for each topic in the backlink list, replace ocurrences of the old topic name in the text with the new (that would be even easier if the backlink list records the exact positions of the references). Deleting and the
TrashCanWeb would go along similar lines.
A catch is that we'd have to have a backlink list for still nonexisting topics (but I see no problem with that). When a topic is created and it already has a backlink list, its time to
PreCompile all topics in its list (so as to make the "?" get replaced by the actual links).
I didn't think too much how that would work for the revisions. But I'll play with that idea in my wiki and report back.
--
MarcoCarnut - 06 May 2001
Whilst I can see some good benefits from this I think there are various complications:
- If a topic is added at the file system level (moving between Wiki sites, restoring of archive etc). Might be similar to dealing with old revisions.
- When new topic is first viewed the links to other topics can be generated, but what about links to the new topic?
- Rename has extra comlexities e.g.
- Moving between Webs, links chnage their nature e.g. intra-web to inter-web
- Dealing with repairing move if required
- So I don't think this becomes an instant fix - key thing is to make link generator available at different times
- If link regular expressions are changed then some form of re-build links would be required.
- This and the link to any topic (i.e if present link - don't have fixed idea of linkable words), as referred to in MoreArbitraryTextForWikiWordLinks and SingletonWikiWord would affect each other.
In summary, any caching mechanism should speed things up, but it's touch to keep the cache up todate. We've found mod_perl makes our site a lot faster. Caching the compiled perl is a lot simpler than the data.
--
JohnTalintyre - 06 May 2001