Template:Anchor

From Sugar Labs
Revision as of 00:59, 8 April 2009 by Dfarning (talk | contribs) (fix camelcase links)
Jump to navigation Jump to search

This template creates an HTML anchor without creating a visible section header or a TOC entry.

Its main use is to allow the translation of links without interfering with the translation of content. The most usual 'problem' arising when translating is that some section titles are much less immutable than the original. For example, in the HIG there's the concept of Home. The word itself may have several possible translations in a given language, and one may be preferred to others but may not have been the 'initial' choosing. In later revisions, the header could be changed for a better wording, but then all the links pointing to it would be broken. The solution is to use this template as the anchor for the original language header.

Example

In a page you are translating there's the following link to a section:

[[Design Team/Human Interface Guidelines/The Laptop Experience/Zoom Metaphor#Home]]

You know the translated page will be named

OLPC Human Interface Guidelines/The Laptop Experience/Zoom Metaphor/lang-xx

You want to leave the link as

[[Design Team/Human Interface Guidelines/The Laptop Experience/Zoom Metaphor/lang-xx#Home]]

so you don't have locate the translated section text and change the link to use it.

If the page you are linking to uses Template:Anchor then you can do this; the linking of translated pages (and their sections) can be done regardless of how the Home section header was translated — in spanish it could be translated as either Hogar or Casa—both actually linking to the anchor #Home and will both work.

It's also possible to link the translated section heading, for example#Hogar or #Casa—but in this case, one of them will not work.

Usage

ORIGINAL PAGE                TRANSLATED PAGE               REVISED TRANSLATION
                             {{Anchor|Home}}               {{Anchor|Home}}
== Home ==                   == Hogar ==                   == Casa ==

NOTE: the {{Anchor|original header}} must be in the previous line. Reason for this is that if placed below, when 'jumping' to it, the header will 'lost' (because it's above). The downside of this is that while editing a section, you can't manipulate it because it 'belongs' to the previous section.

Its use is discouraged outside the context of translating pages. If used outside that context, it is recommended to be used only within the same page (no inter-page linking using hidden anchors).

If the purpose is to avoid having a __TOC__ too deep, we should consider other solutions (heard about a {{TOClevel|n}} to limit the depth shown.

History & Credits

The concept of anchor is essential to hypertext. The adaptation of using <div id="original header"/> (a ruthless hack) was done by Xavi after discovering that the <a> is not allowed. That solution broke down after an update of the wiki. The solution was to switch to an html compliant <div id="original header"></div>. If the anchor had been originally reified (instead of manually embeding it in the wiki text) a simple update of the Template:Anchor would've solved the problem.

So now, this is part of a (hopefully) better solution — suggestion by MitchellNCharity.