General usefulness of the parser rule: syslink ?

141 views
Skip to first unread message

S. S.

unread,
Feb 11, 2019, 6:05:57 AM2/11/19
to TiddlyWikiDev
In the TiddlyWiki on tiddlywiki.com & in empty.html - the parser rule for syslink is turned on by default. It can be seen at: Control Panel > Info > Advanced > Parsing

With syslink enabled, any text resembling a system tiddler name ( $:/. ) gets turned into a link, I imagine in a similar way to CamelCase becoming a link.

I cannot see any practical use of this behaviour helping in any way for either the tiddlywiki.com website, or a general user of TiddlyWiki. It may also be confusing for users as there is no documentation mentioning this effect - but even if there was, once a user would become aware of what was happening and want to deal with the effect, it would be very difficult to know what to search for to find an answer.

Was there some particular reason that led to this being on by default, and what would be the ramifications if it was switched off by default?

Jeremy Ruston

unread,
Feb 11, 2019, 10:54:27 AM2/11/19
to tiddly...@googlegroups.com
Hi SS

Autolinking of system tiddler titles was proposed and implemented by Tobias Beer back in 2015:


I think that rationale was roughly the inverse of your question: why would one want to refer to a system tiddler title without making it a link.

I'm assuming though that you've run into some situation where system tiddler linking causes a problem or confusion?

Best wishes

Jeremy

--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To post to this group, send email to tiddly...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywikidev.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/1d5c50e7-8bbc-4438-8c16-3f954817a1bb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

PMario

unread,
Feb 11, 2019, 11:53:31 AM2/11/19
to TiddlyWikiDev
Hi,

We have to deal with system links. As Jeremy wrote in the github issue, we need to deal with eg: $:/tags/ViewTemplate ... Since CamelCase linking will create a link for ViewTemplate, which is definitely wrong here.

There is a reason, why it is as it is.

-m

TonyM

unread,
Feb 11, 2019, 6:12:35 PM2/11/19
to TiddlyWikiDev
S. S.

I do not seem to experience any difficulty with this "feature" and your issue makes me ask why I do not, and why you may do so. Personally I try and keep system tiddlers away from the wiki users eyes (including myself in user mode) and only provide them in instructions and tools for someone implementing a macro or plugin.

To me it is very practical because I need not do anything to make such tiddlers into a link when building "the back end of a solution" and I keep them out of the front end. If one really must appear I may put it behind a pretty link [[name|systemtiddler]] or as a tag pill. Sometimes I even use a caption.

Perhaps you could give some examples of where it is of concern to you. Perhaps we can share some other techniques that obviate the need for this change.

Regards
Tony

S. S.

unread,
Feb 12, 2019, 12:56:03 AM2/12/19
to TiddlyWikiDev
Thanks Jeremy & everyone else for the replies.

I did face an issue while working on Documentation, specifically for addressing Github Issue #3726 for tiddler: Using Stylesheets

It took me a long time to figure out why <<.tag $:/tags/Stylesheet>> was giving a link - instead of displaying like all other normal tags used in Documentation. I thought my modifications to the Documentation Macros was faulty. I finally understood how it was happening after some discussion in Google Groups: Does <<__...__>> make $...$ obsolete in macro definitions? followed by quite some experimentation on my own. It took many more hours than I wanted to sort out the issue.

Once I figured it out, I wanted to understand the rationale behind this. It is also useful for any Documentation writer to know the background when:
  1. We get around to doing the documentation for the: \rules Pragma
  2. We perhaps make a small mention of this default behaviour in tiddler: SystemTiddlers
The reason given on GitHub issue #1103  that it elegantly solves the problem of writing $:/tags/ViewTemplate where the ViewTemplate portion would get Wikified (with CamelCase turned on) - is an explanation that makes good sense. A downside I can see is that all those references to tiddlers that don't exist show up in the Missing Tiddlers list.

Also I think that in the Documentation on tiddlywiki.com we should try and avoid such links to missing tiddlers that we have no intention of making. It is confusing to readers of the website, and gives an impression that the site has lots of broken links and unfinished documentation. I know I have felt that way for most of the first 2 years of reading documentation before I understood why the links were missing. During that time, I felt that the Documentation was very incomplete even though now I know it isn't.

I think it may be useful to re-visit the GitHub PR #2844 : Improve global "wikilink" parser disabling where you wrote:

Generally, I'm thinking that new users tend to be confused by CamelCase automatic linking, to the degree that we should perhaps consider disabling it by default

Though CamelCase was useful many many years back, and then for a long time it was quaint, I believe it is no longer either of those to the present generation. It may be prudent to consider turning off both CamelCase and the syslink parser rule for both tiddlywiki.com and empty.html

The irritation of $:/tags/ViewTemplate where the ViewTemplate portion will get Wikified is easily solved for those that face the issue, by enabling the syslink parser rule on their own TiddlyWiki.

If PR #2844 is implemented and a general automated clean up of ~CamelCase and making [[CamelCase]] is done, and syslink turned off, I would be willing to spend some time helping to find stray cases that need fixing.

Thanks for your patience.

Regards.

Jeremy Ruston

unread,
Feb 12, 2019, 6:49:12 AM2/12/19
to TiddlyWikiDev
Hi SS

I’m not in favour of switching off system tiddler linking by default because I don’t think that it’s really the cause of the problem you ran into originally. Fundamentally, I believe the problem is the unwitting wikification of output that should have been displayed as text. Admittedly, it is a pervasive problem, and I see quite a few examples of it. In particular the use of freestanding double angle braces syntax (<<variable>>) being used to display the value of a variable without taking into account that it will wikify the text.

So I don’t think the problem is an unexpected parsing rule so much as unexpected wikification of text that should have been rendered without wikification.

One approach to ameliorating the issue might be to provide a more concise syntax for rendering a variable as text (<$text text="My string"/>). Or maybe we need to research why it is such a common mistake.

A downside I can see is that all those references to tiddlers that don't exist show up in the Missing Tiddlers list.

Good point. I think it would be more consistent with the other tabs to suppress the display of missing system tiddlers, just as we do for orphans.

Also I think that in the Documentation on tiddlywiki.com we should try and avoid such links to missing tiddlers that we have no intention of making. It is confusing to readers of the website, and gives an impression that the site has lots of broken links and unfinished documentation. I know I have felt that way for most of the first 2 years of reading documentation before I understood why the links were missing. During that time, I felt that the Documentation was very incomplete even though now I know it isn’t.

Interesting. Perhaps in the case of tw.com the missing tiddlers tab is really only of interest to authors. For example, it can be a useful way to spot typos in links.

Best wishes

Jeremy.

On 12 Feb 2019, at 05:56, S. S. <sachde...@gmail.com> wrote:

Thanks Jeremy & everyone else for the replies.

I did face an issue while working on Documentation, specifically for addressing Github Issue #3726 for tiddler: Using Stylesheets 

It took me a long time to figure out why <<.tag $:/tags/Stylesheet>> was giving a link - instead of displaying like all other normal tags used in Documentation. I thought my modifications to the Documentation Macros was faulty. I finally understood how it was happening after some discussion in Google Groups: Does <<__...__>> make $...$ obsolete in macro definitions? followed by quite some experimentation on my own. It took many more hours than I wanted to sort out the issue.

Once I figured it out, I wanted to understand the rationale behind this. It is also useful for any Documentation writer to know the background when:
  1. We get around to doing the documentation for the: \rules Pragma
  2. We perhaps make a small mention of this default behaviour in tiddler: SystemTiddlers 
The reason given on GitHub issue #1103  that it elegantly solves the problem of writing $:/tags/ViewTemplate where the ViewTemplateportion would get Wikified (with CamelCase turned on) - is an explanation that makes good sense. A downside I can see is that all those references to tiddlers that don't exist show up in the Missing Tiddlers list.

S. S.

unread,
Feb 12, 2019, 10:26:56 PM2/12/19
to TiddlyWikiDev

Thanks for your explanations Jeremy.

I cannot see a syslink enabled parser rule at all useful in empty.html for users. By users I don't mean "disinterested end users" but users who program TiddlyWiki for their own or for others to use. Developers (of the core or plugins etc) who want it enabled should be aware that it can be switched on in the Control Panel.

Regarding Documentation, the below is a non-exhaustive list of tiddlers that display syslinks to empty tiddlers.

[[AlertMechanism]] [[Creating a custom export format]] [[Creating a splash screen]] [[Customising search results]] [[Customising Tiddler File Naming]] [[Hidden Setting: Filename for Save Wiki Button]] [[HistoryMechanism]] [[How to put the last modification date in a banner ]] [[ImageGallery Example]] [[MultiTiddlerFiles ]] [[Page and tiddler layout customisation]] [[Plugin Information Tiddlers]] [[Release 5.0.0-alpha.16]] [[Release 5.0.13-beta]] [[Release 5.1.17]] [[Release 5.1.18]] [[SampleAlert]] [[StateMechanism]] [[TiddlerWidget]] [[tv-auto-open-on-import Variable]] [[WebServer Authorization]] [[WidgetMessage: tm-import-tiddlers]] [[WidgetMessage: tm-perform-import]] [[WidgetMessage: tm-login]] [[WidgetMessage: tm-logout]] [["Mal's Sandbox" by Mal]]

Of course we could wrap the text of all those missing links with a :
<$vars tv-show-missing-links="no">

...

</$vars>

like is done in How to create keyboard shortcuts,  but I don't feel that is the right way to go about it.

Alternatively we could do it with backticks like has been done in the SystemTiddlers tiddler, which I feel is not a good style of presentation.
Or <<.tid ...>> away all those links.

Or just switch of syslink

Related image

It is these missing links (in information tiddlers on tiddlywiki.com) along with all the hundreds of CamelCase links to missing tiddlers that make the website seem very incomplete (or even feel broken) to someone using the documentation.

Regards

TonyM

unread,
Feb 12, 2019, 11:11:32 PM2/12/19
to TiddlyWikiDev
S S 

On links to missing tiddlers, what If an option if selected opened a standard message that explained they followed a link to a non exiting tiddler, and gave the option to create?

Also references can be made to tiddlers that are otherwise turned into links using the ~ tilde

Regards
Tony

S. S.

unread,
Feb 13, 2019, 9:02:49 AM2/13/19
to TiddlyWikiDev

Tony,

Those are workable solutions. My opinion is visitors to tiddlywiki.com should not encounter links to non-existent tiddlers.

S. S.

unread,
Feb 14, 2019, 11:57:27 AM2/14/19
to TiddlyWikiDev
Actually, to be more precise:

My opinion is that visitors to tiddlywiki.com should not encounter meaningless links to non-existent tiddlers.

There are a few legitimate cases of missing links such as the one at the bottom of [[HistoryMechanism]] that shows how to configure TW by creating a specifically named config tiddler.

All those other links to nowhere:
  • waste a visitor's time
  • are confusing
  • give the impression of carelessness/incompleteness
  • soon get irritating

None of these above effects & reactions reflect the sophistication of the software, and the dedication put in to creating and documenting it.

Neither does it do justice to the vibrant community supporting and enjoying using it.


The website is TiddlyWiki's foremost showcase window to attract, entice, captivate.


Seasoned programmers & developers may have learnt to ignore such lapses, but if I may paraphrase:


TiddlyWiki wasn't put together and designed for developers.

Software developers are already incredibly well catered for by the open source world.

This program explores how the non-developer can be empowered.


Sincerely.

TonyM

unread,
Feb 15, 2019, 1:31:16 AM2/15/19
to TiddlyWikiDev
S S ,

Can you share some of the cases where " visitors to tiddlywiki.com [DO] encounter meaningless links to non-existent tiddlers"

I am curious where these are being encountered and why.

Regards
tony

S. S.

unread,
Feb 15, 2019, 8:18:51 AM2/15/19
to TiddlyWikiDev
Tony,

My post a couple of days ago lists many tiddlers having missing tiddlers caused by auto syslinks. For missing tiddlers linked to by CamelCase, the full list can be seen in the side-bar, More, Missing.

Altogether there are a lot of them.

Regards.

TonyM

unread,
Feb 15, 2019, 10:54:22 PM2/15/19
to TiddlyWikiDev
S S ,

Ah, Sorry I did not see them. I just looked and clearly they are a result of documenting such "functional system tiddlers" in Tiddlywiki.com, even when they are not in use. If you look at empty.html you will see there are no "missing tiddlers". It is trivial when writing documentation to use the tilde ~ in front to stop them turning into links, but I question why one would, since clicking creates the tiddler and you could place notes in it for future reference.

I understand your concern they may be disconcerting to some new users who have not come to understand the value of automatically providing missing links, since in our own wikis this can lead us to learn of incomplete information. In some ways it is an inevitable product of the content in TiddlyWiki.com, but it it I take a copy of tiddlywiki.com offline for my own notes it is true any new missing links will be hard to identify in the large number already there. 

Rather than stop the syslink parsing could I suggest the best approach would be to create the missing tiddlers either empty (they will stop being missing) and/or with descriptive content, or even listing all the references to that tiddler as part of the documentation process, users on tiddlywiki.com could then find where that formally missing tiddler is discussed. The truth is many of these missing tiddlers, system or otherwise do in fact often point to shortfalls in the internal documentation and need attention anyway, so creating these should be part of the documentation effort. Where the link is clearly not required it should be edited to stop camel case or add the tilde, however this is unlikely to be valid with most system tiddlers named.

Another approach may be to provide the ability to list "missing tiddlers" that are exceptions and filter them out of the list of missing tiddlers. If a tiddler is missing and not in the list it will still appear.

Regards
Tony

S. S.

unread,
Feb 16, 2019, 3:24:32 AM2/16/19
to TiddlyWikiDev
Tony,

Thanks for the insights and ideas.

Ref: The list of missing tiddlers in the Sidebar > More > Missing
This area is of almost no interest to a visitor of the tiddlywiki.com website. What happens in there is not important to the points I am trying to make, so perhaps we should not spend effort discussing what to do there.

How about we turn the question the other way around.
I what way is it useful for a newer visitor to tiddlywiki.com to encounter dozens of links to missing tiddlers? In what way does a syslink to a missing tiddler that there is no reason to create, help a visitor to the site?

We are not talking here about our own personal TiddlyWikis where we may often want links to missing tiddlers to show up so we can make them later.
We are discussing the official documentation site of the TiddlyWiki program only.

I don't believe anyone in the near future is going to spend hours going through scores of tiddlers on tiddlywiki.com to add the tilde to missing links, or to make blank meaningless tiddlers to missing links that provide no information, or to scores of short explanation tiddlers to presently missing links - that really don't need to be made.

There is no value of providing missing links to tiddlers that are either never going to be created, nor even created in the foreseeable future.

And finally, most of those missing links are not because of sloppy documentation. They are because of CamelCase and syslinks being automatically created.

Time for Sunday afternoon beer now!

Cheers.
Reply all
Reply to author
Forward
0 new messages