Sometimes hyperlinks break. Rename, move or remove the target -- and
here it goes.
What is "link rebinding"? This is just an idea that this effect can be
suppresed actively or some tools which would ease this can be created.
Now I'll share some thoughts on this.
First, I'll point that there's four (or five) types of links that
should be considered:
1. links inside TW (on a tiddler or a slice)
2. links from TW to a site (or a file)
3. links to TW from a web-page
4. links to a TW-page from a TW-document
Now, some possibilities that can be implemented:
4. "Usecase": a site changed it's location. If a TW-document contains
many links to the site, there appears some cleanup to do. This can be
overwhelmed by some script, or.. Let's remember the links in
TiddlySpace. They look like
[[title|tiddlerName]]@spaceName
and are rendered in the well-known way. Now let's consider the
construction as following:
[[title|tiddlerName]]@variablePointingTheSiteBase
If there exists a tiddler, say SourceReferences which contains slices
like
|TheSiteOfMyFriend|...
myfriend.org/...|
|BestCookingRecipes|...
some-good-cooking-recipes-site.com/...|
etc, the system can treat [[Interesting stuff|I bought the best bike
ever]]@TheSiteOfMyFriend as a ...
myfriend.org/.../#[[I bought the best
bike ever]] link. If the site moves, the user can just change the
slice value - and it goes all right then. Also, if the slice name is a
wikiword, the references list can used if the site is removed for
changing the context. More than that, if it is removed, the slice
value can be changed to a tiddler name which should be opened when the
[[..|..]]@sliceName link is clicked. For backward compability the
absence of a slice can be treated as a link to TiddlySpace (this,
however, also can be parametrized - I mean,
paramDefaultValue=TiddlySpace).
An example: the move of the lewcid repository.
2. Now this can be handled in a similae way. What syntax to use? May
be it can be something like
[[*]]@TheSite and [[news.*/in-the-world/8-06-2011/smth.html]]
? This should be somehow distinguishable between TW and non-TW page
and also easy to write.. Though, slice values can be different: for
instance, for TW-pages they should be
|RepositoryOfTheGreatContributor|tw
http://tiddlytools.com|
while others should be just
|Search|
http://google.com|
3. Now, let's move to the reception part. If it is the case of lewcid,
nothing can be done since the domain doesn't belong to the author
anymore. In the opposite situation one will desire some kind of
"thoughtfull redirection" -- I mean, if the link was
initial-place.org/.../tw.html#[[Tiddler1]]%20[[Tiddler2]]
%20[[Tiddler3]]
one would expect the redirection to
new-place.org/.../tw.html#[[Tiddler1]]%20[[Tiddler2]]%20[[Tiddler3]]
rather than to
new-place.org/.../tw.html
There was some discussion [1] where Eric pointed that there's a plugin
[2] which can solve this partially, but if the link references more
than one tiddler, the redirection would be annoing to the user (and if
he's not familiar with TW, he couldn't join the links into one page
even if the appropriate link is generated in each tiddler).
One usecase which I imply is using TW as a webpage in TiddlySpot,
TiddlySpace (etc) or services like Ubuntu One (not Dropbox which
restricts public sharing of .html) as a first step of public works
with further perspective of creation of one's own domain. In general,
this can help to join or leave the source from some comunity/service.
In [1] I specified some technical details, but didn't get some
answeres for development. If they appear, I probably can try this
after 28.06 (diploma, you know ;) ). Though, if this rises some
security issues, this also should be sounded.
1. Finally, let's consider the most complicated part (as I understood
from the short discussion in [3]). I'll note in brackets that the
latest plan (recalc references on demand and than rebind links) was
not discussed over.
Another idea that came to my mind is that "innerlink rebinding" can be
achieved easier. I mean, let's consider a tiddler with a link to a
section or a slice within itseft. For instance, in tiddler T contains
a hidden section S1, which is referenced by a slider in T; there can
also be sliders for S2, S3.. I have some TW-documents with such a
construction. This, however, wouldn't be of big concern if, say,
PasteUpPlugin is expanded sliders and tabs..
So, some food for thoughs.
Regards, Yakov.
[1]
http://groups.google.com/group/tiddlywiki/browse_thread/thread/26c3415174300775
[2]
http://www.tiddlytools.com/#MissingTiddlersPlugin
[3]
http://groups.google.com/group/tiddlywikidev/browse_thread/thread/5995a23c80d3d42
, use search with "bind" keyword