class NanocHtmlPipeline::Filter
Public Class Methods
filter_key(s)
click to toggle source
# File lib/nanoc-html-pipeline/filter.rb, line 12 def self.filter_key(s) s.to_s.downcase.to_sym end
is_filter(f)
click to toggle source
# File lib/nanoc-html-pipeline/filter.rb, line 16 def self.is_filter(f) f < HTML::Pipeline::Filter rescue LoadError, ArgumentError false end
Public Instance Methods
run(content, params={})
click to toggle source
@param [String] content The content to filter
@return [String] The filtered content
# File lib/nanoc-html-pipeline/filter.rb, line 28 def run(content, params={}) # Get options options = {:pipeline => []}.merge(params) filters = options.delete(:pipeline).map do |f| if self.class.is_filter(f) f else key = self.class.filter_key(f) filter = HTML::Pipeline.constants.find { |c| c.downcase == key } # possibly a custom filter if filter.nil? Nanoc.const_get(f) else HTML::Pipeline.const_get(filter) end end end HTML::Pipeline.new(filters, options).to_html(content) end