internal package
Foswiki::Render::Anchors
internal package
Foswiki::Render::Anchors
Support for rendering anchors. Objects of this class represent
a set of generated anchor names, which must be unique in a rendering
context (topic). The renderer maintains a set of these objects, one
for each topic, to ensure that anchor names are not re-used.
ClassMethod
new()
Construct a new anchors set.
ObjectMethod
clear()
Clear the anchor set. Clearing the anchor set will cause it to forget
any anchors generated to date.
ObjectMethod
add($text) → $name
Add a new anchor to the set. Return the name that was added.
Note that if a name is added twice, it isn't an error, but only
the one name is added.
ObjectMethod
addUnique($text [,$alreadyMade]) → $uniqueName
Add a new anchor to the set. if it's already present, rename it.
If
$alreadyMade
, then $text is assumed to be a valid anchor name
that was made by
make
.
Return the name that was added.
StaticMethod
make( $text ) → $name
Make an anchor name from some text, subject to:
- Given the same text, this function must always return the same anchor name
- NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods ("."). (from http://www.w3.org/TR/html401/struct/links.html#h-12.2.1)
The making process tranforms an arbitrary text string to a string that
can legally be used for an HTML anchor.
ObjectMethod
makeHTMLTarget($name) → $id
Make an id that can be used as the target of links.