Module Nanoc::Helpers::LinkTo
In: lib/nanoc/helpers/link_to.rb

Contains functions for linking to items and item representations.

Methods

Included Modules

Nanoc::Helpers::HTMLEscape

Public Instance methods

Creates a HTML link to the given path or item representation, and with the given text. All attributes of the `a` element, including the `href` attribute, will be HTML-escaped; the contents of the `a` element, which can contain markup, will not be HTML-escaped. The HTML-escaping is done using {Nanoc::Helpers::HTMLEscape#html_escape}.

@param [String] text The visible link text

@param [String, Nanoc::Item, Nanoc::ItemRep] target The path/URL,

  item or item representation that should be linked to

@param [Hash] attributes A hash containing HTML attributes (e.g.

  `rel`, `title`, …) that will be added to the link.

@return [String] The link text

@example Linking to a path

  link_to('Blog', '/blog/')
  # => '<a href="/blog/">Blog</a>'

@example Linking to an item

  about = @items.find { |i| i.identifier == '/about/' }
  link_to('About Me', about)
  # => '<a href="/about.html">About Me</a>'

@example Linking to an item representation

  about = @items.find { |i| i.identifier == '/about/' }
  link_to('My vCard', about.rep(:vcard))
  # => '<a href="/about.vcf">My vCard</a>'

@example Linking with custom attributes

  link_to('Blog', '/blog/', :title => 'My super cool blog')
  # => '<a title="My super cool blog" href="/blog/">Blog</a>'

Creates a HTML link using {link_to}, except when the linked item is the current one. In this case, a span element with class “active” and with the given text will be returned. The HTML-escaping rules for {link_to} apply here as well.

@param [String] text The visible link text

@param [String, Nanoc::Item, Nanoc::ItemRep] target The path/URL,

  item or item representation that should be linked to

@param [Hash] attributes A hash containing HTML attributes (e.g.

  `rel`, `title`, …) that will be added to the link.

@return [String] The link text

@example Linking to a different page

  link_to_unless_current('Blog', '/blog/')
  # => '<a href="/blog/">Blog</a>'

@example Linking to the same page

  link_to_unless_current('This Item', @item)
  # => '<span class="active" title="You\'re here.">This Item</span>'

Returns the relative path from the current item to the given path or item representation. The returned path will not be HTML-escaped.

@param [String, Nanoc::Item, Nanoc::ItemRep] target The path/URL,

  item or item representation to which the relative path should be
  generated

@return [String] The relative path to the target

@example

  # if the current item's path is /foo/bar/
  relative_path_to('/foo/qux/')
  # => '../qux/'

[Validate]