I have touched on this previously but the idea has now matured.
In effect, a link behaves like a button that triggers “open+navigate”. The obvious advantage with a link over an actual such button is syntax brevity. It would be very clunky if we had to create a button for each link as we author. As we author text content (as opposed to code), any need for widgets or complex macro calls steal attention and breaks the flow of thought. Only the simplest markup, such as italics, bold and bracket linking, can be internalized to not take you away from the sometimes needed authoring flow.
At the other end, we have the reader. The reader just wants the information and at as little mental cost as possible.
So, is this “open+navigate” behaviour the optimal way to serve the information to the reader? Here are a few other examples of how a reader can access information that, depending on situation, can be better for the user:
- open but don’t navigate (instead read later). This can be achieved with Ctrl+clicklink but still I include it to illustrate my point.
- open multiple tiddlers at once, and navigate to e.g top one
- open as popup, i.e no navigation away from current
- open “inline”, i.e transclude the clicked title
I would even go so far as to say that the typical “click+navigate” is rarely the best option! It is default behaviour because of habit. For example, the two latter bullets are particularly interesting because, as noted, it doesn’t break the readers focus as much as “open+navigate” does. Navigation, which is even animated, definitely breaks the reading spell. But this is nothing compared to the mental strain required for going back to the point where left off in the original tiddler. A “popup” or an inline transclusion should significantly lessens this strain.
Proposal
I think the [[link]]
syntax should be extended. This could be done by using the “format” we already have for external links i.e [ext[link]]
such as:
[popup[link]]
[transclude[link]]
…etc.
Maybe even a general:
[myactions[link]]
…to call a custom macro definition containing a string of actions.
In conclusion: Links are ubiquitous and elegant yet very static and limited. By extending the already existing [ext[...]]
syntax, they can be enhanced to improve, especially, the authoring experience. Easily applied syntax will likely also result in an improved reading experience.
Thoughts?