internal package Foswiki::Render::Anchors

See PublishedAPI for packages intended to be used by Plugin and Contrib authors, or browse all packages.
See also Developing plugins, Developer's Bible, Technical Overview

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:
  1. Given the same text, this function must always return the same anchor name
  2. 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) → $html

Make an HTML anchor that can be used as the target of links.

Topic revision: r1 - 19 Apr 2011, ProjectContributor
 
This site is powered by FoswikiCopyright © CC-BY-SA by the contributing authors. All material on this collaboration platform is copyrighted under CC-BY-SA by the contributing authors unless otherwise noted.
Ideas, requests, problems regarding Foswiki? Send feedback