View Ticket
Not logged in
Ticket Hash: ab82a0bd213bc0f7e1d2f53abcd019640109f0d3
Title: Enhance <nowiki>[]</nowiki> linking syntax in the wiki to permit #LABEL for internal links.
Status: Open Type: Code_Defect
Severity: Cosmetic Priority: Low
Subsystem: Resolution: Fixed
Last Modified: 2009-09-25 07:03:43
Version Found In: [bbb8ae7ebf]
Description:
It is fairly common to use anchors in HTML pages like:
<code><verbatim><a name="INTERNAL_LINK">Named Location</a></verbatim></code>

These kinds of links are used to internally or externally jump to the named locations via anchors like:
<code><verbatim><a href="#INTERNAL_LINK">My internal link.</a></verbatim></code>

I'd like to propose to syntax enhancements to the Wiki syntax.  The first of these is:
<code><verbatim>[#INTERNAL_LINK]
[#INTERNAL_LINK|My internal link.]</verbatim></code>

These would translate into the following respectively:
<code><verbatim><a href="#INTERNAL_LINK">INTERNAL_LINK</a>
<a href="#INTERNAL_LINK">My internal link.</a></verbatim></code>

The second piece of syntax is the actual label.  I'd like to be able to drop an anchor without the clumsy HTML by doing this:
<code><verbatim>[@INTERNAL_LINK]
[@INTERNAL_LINK|My named anchor.]</verbatim></code>

This would translate directly into:
<code><verbatim><a name="INTERNAL_LINK"></a>
<a name="INTERNAL_LINK">My named anchor.</a></code></verbatim>

If you think the idea is sound, give a developer account to the userid "michael" and email me the password so I can try my hand at implementing it.

<hr><i>drh added on 2009-09-19 15:17:53:</i><br>
Added the <nowiki><b>[#INTERNAL]</b></nowiki> form in
check-in [3a4c7f60a27f].
Bu the <nowiki><b>[@INTERNAL]</b></nowiki> is a new syntax that
is not necessary and would be rarely used, so it is rejected.

<hr><i>anonymous added on 2009-09-21 04:54:40:</i><br>
I'm puzzled by how the <nowiki>[#LINK]</nowiki> form would be useful but <nowiki>[@LINK]</nowiki> not.

Consider a sizable documentation page written in the wiki format.  I'd have headers for each section and I'd likely want a ToC at the top for them.  Currently I'd have to do them this way:

<verbatim>
...ToC...
  *  [#SECTION3-3|Section 3.3: The way of the world]
...
...Content...
<h3><a name="SECTION3-3">Section 3.3: The way of the world</a></h3>
</verbatim>

To me the header text is obfuscated beyond all recognition.  It would be hard to locate while editing and just generally looks ugly (like HTML in general looks).

With my propose [@LINK] form, the ToC section remains the same (nicely readable) and the header section is changed to:

<verbatim>
<h3>[@SECTION3-3|Section 3.3: The way of the world]</h3>
</verbatim>

The first benefit I can see is that the contents are parallel in both locations.  It's easy to match the patterns.  The second benefit I can see is that the second is a whole lot easier to read the title text in, making it simpler to locate when scanning quickly.

<hr><i>anonymous added on 2009-09-25 07:03:43:</i><br>
Re-opening: When the <code><nowiki>[#LABEL]</nowiki></code> form is used, the display of it should not include the opening "#" character.  So the example given here should expand to <code><nowiki><a href="#LABEL">LABEL</a></nowiki></code> instead of <code><nowiki><a href="#LABEL">#LABEL</a></nowiki></code> as it currently does.