The link_to plugin adds the link_to
instance method, which can be used for constructing HTML links (a
tag with href
attribute).
The simplest usage of link_to
is passing the body and the location to link to as strings:
link_to("body", "/path") # => "<a href=\"/path\">body</a>"
The link_to plugin depends on the path plugin, and allows you to pass symbols for named paths:
# Class level path :foo, "/path/to/too" # Instance level link_to("body", :foo) # => "<a href=\"/path/to/foo\">body</a>"
It also allows you to pass instances of classes that you have registered with the path plugin:
# Class level A = Struct.new(:id) path A do "/path/to/a/#{id}" end # Instance level link_to("body", A.new(1)) # => "<a href=\"/path/to/a/1\">body</a>"
To set additional HTML attributes on the a
tag, you can pass them as an options hash:
link_to("body", "/path", foo: "bar") # => "<a href=\"/path\" foo=\"bar\">body</a>"
If the body is nil, it will be set to the same as the path:
link_to(nil, "/path") # => "<a href=\"/path\">/path</a>"
The plugin will automatically HTML escape the path and any HTML attribute values, using the h plugin:
link_to("body", "/path?a=1&b=2", foo: '"bar"') # => "<a href=\"/path?a=1&b=2\" foo=\""bar"\">body</a>"
Classes and Modules
Public Class methods
load_dependencies(app)
[show source]
# File lib/roda/plugins/link_to.rb 50 def self.load_dependencies(app) 51 app.plugin :h 52 app.plugin :path 53 end