Parent

Methods

Class/Module Index [+]

Quicksearch

Nanoc::Filters::XSL

@since 3.3.0

Public Instance Methods

run(content, params={}) click to toggle source

Runs the item content through an [XSLT](www.w3.org/TR/xslt) stylesheet using [Nokogiri](nokogiri.org/).

This filter can only be run for layouts, because it will need both the XML to convert (= the item content) as well as the XSLT stylesheet (= the layout content).

Additional parameters can be passed to the layout call. These parameters will be turned into `xsl:param` elements.

@example Invoking the filter as a layout

compile '/reports/*/' do
  layout 'xsl-report'
end

layout 'xsl-report', :xsl, :awesome => 'definitely'

@param [String] content The XML content to transform

@param [Hash] params The parameters that will be stored in corresponding

`xsl:param` elements.

@return [String] The transformed content

# File lib/nanoc/filters/xsl.rb, line 33
def run(content, params={})
  if assigns[:layout].nil?
    raise "The XSL filter can only be run as a layout"
  end

  xml = ::Nokogiri::XML(content)
  xsl = ::Nokogiri::XSLT(assigns[:layout].raw_content)

  xsl.transform(xml, ::Nokogiri::XSLT.quote_params(params)).to_s
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.