[pmwiki-users] Automatically add anchors to heading tags? pmwiki-users Digest, Vol 25, Issue 50

Petko Yotov 5ko at free.fr
Thu Jul 26 06:18:54 CDT 2007


> FWIW, the crc32 solution[1] is a simple number-link possibility that
> only seems to fall down on duplicate headings.
>
> Hagan
>
> [1] http://www.pmwiki.org/wiki/PITS/00955#checksum

If I understand correctly, people wish to have automatically created 
heading-ids in order to successfully link to individual page sections more 
easily (instead of manually adding [[#my_section]] anchors in the page). 

But these "easier" links should work both from within the (pm)wiki and from an 
external page/site, so a checksum of any kind (crc32, md5) seems not a good 
solution, one has to look at the html-source to get the id.

MediaWiki [1] has this capability from version 1.8 [2], one can link to a 
section like this:

   [[Wiki#Editing wiki pages|Click here]] will link to:
   http://en.wikipedia.org/wiki/Wiki#Editing_wiki_pages

where there is a heading "==Editing wiki pages==".

The conversion algorythm heading->anchor_id is quite simple:
 - wiki to plain text (all links and styles removed)
 - whitespace trimmed ("= Title =" and "=Title=" are the same)
 - in case there is a repeated heading in the same page (including "included" 
pages), a _2 or _3 etc. is added;
 - spaces replaced with underscores;
 - the string is "urlencoded";
 - "%"-signs are replaced with dots.

This allows to have html that validates, and is very easy for the writers 
(PmWiki philosophy n°1). The conversion function works also in other 
languages, that is UTF-8 encoding: while it is not very nice in the html code 
for non-latin languages, it works both with the page table of contents and 
with links from other pages [[Page#Section name]].

If the section heading changes order, the links to it will still work (unlike 
if all anchor_ids are id1, id2...). If the section heading dissapears or 
changes, the anchor_id will also change and then the links will redirect to 
the top of the page (least surprise).

If one wishes to get a link to a section, there is the table of contents, and 
with right-click on a link he can copy the url-address (currently without a 
core TOC, for PmWiki this will be unavailable).

Personally, I am not a big supporter for this request, but if it is added, it 
should be easy for wikiwriters to link to sections in the same page, or in 
other pages, and should work with any language (removing all non-ascii won't 
work).

Thanks,
Petko

[1] http://meta.wikimedia.org/wiki/Help:Link#Anchors
[2] 
http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/CoreParserFunctions.php?view=markup 
see the function anchorencode().




More information about the pmwiki-users mailing list