@Erich, thanks for these fixes and improvements. The page arguments must be encoded into the URL address part so that they reflect different cached pages. Using the ?var=value syntax would not work with caching. (This is what I understand but I'll double check with Michal.)

Good question. I'd not foreseen a page name in the wikidot: link but it should be there. I've fixed that, so now [:blog/design:14 this page] would be valid. It becomes fully consistent, all these are valid:

Sorry, the comment was out of date: I'd already updated the syntax to work unambiguously:

[[[:blog/design:14]]]

For using square brackets in normal text… good point. However, note that the new syntax insists on a fullname, with category:pagename. So it would be [_default:start] and not [start]. I need to add support for a page shortname for internal links only. It's not needed for href links.

It seems not to break too much, but still, all of this increases number of ways you can make a simple link. This scares me a bit.

And if we actually have now different syntax inside of two link types (so it doesn't make them consistent) I would suggest again, to improve only one of syntaxes, allowing both kind of links in it and then deprecate the worse one. I would like to discuss this, but if you can for a minute forget how much you have the "[[[" links :-P (if this would make you hate them less, I would suggest typing "[[[" should automatically insert "]]]" after your cursor).

I don't mind a lot of functionality if it gives us consistency, which this does, except for the shorthand for pages in the default category. It's a consistent design with one optimization for very common cases. Easy to understand, easy to learn and use. Fine.

The reason for keeping both types of link is that one does backlinks and the other does linkbacks, orthogonally to the link itself. If we treat backlinks and linkbacks seriously, we need to be able to switch between link styles without changing the insides.

So this design separates different aspects that are co-mingled in an unpleasant way today.

Automatically adding ]]] is a smart idea, I suggest you create an issue for that. Also a shortcut like Ctrl-L to insert a link.

In my opinion sending Pingbacks and making Backlinks should only depend on what you link to and not on the link format you use, (so each time you make a link to some Wikidot page, that page should get a backlink (or if different wiki, this can be a pingback if we eventually capture them). And each time you make a http:// link, that external page gets a pingback.)

But, in fact, "classic wiki-style mangling" is the most common way to insert links. And this is why people use this link syntax more, and make mistakes like this:

[[[http://www.somecoolsite.com/some-page | Visit my new cool site]]]

People only use the "[url text]" format when they discover, the "[[[url | text]]]" does not work with URLs. And then once they are gurus and create Wikidot-based applications, to do stuff like "[/%%fullname%%/edit edit]".

So this change would help 5% users, and still leave 50% of them with the old link problems.

explicitly name the category: [_default:abc] (which is strange, because most users don't even know there are categories!) OR

retype yourself: [abc abc] (much typing) OR

(not yet implemented) type [abc *] that would get the page title of page "abc" and use it as link title (only works for already-created pages)

And the problem with this is that you need to use "|" for some links, and for other ones you don't.

What's wrong with #2?

a few characters too much typing?

but, it makes links really visible in the source and unlikely to be there by accident and enables link having "[button like]" descriptions. As I suggested, the "]]]" part may be added automatically, so it's not that much more typing from [this syntax].

Also, could we make extended links within the internal links? For example:

[[[contact/edit/true | Edit your contact page!]]]

Currently, the above links to the page /contact-edit-true. This would help, because it means we'll be able to track backlinks of pages and still providing extra functionality. Another good example would be this:

With the above design, this is how it works. Addresses are totally consistent, so /page/var/value means the same whether it's in a wiki link or an href link. In fact part of what prompted me to write the design was when I tried to make a link [[[/system:page-manager/created-by/%%created-by%% | %%created_by%%]] and realized it was turning that into /system:page-manager-created-by-whomever.