module JekyllFileProtocol::Jekyll::Filters

Public Instance Methods

relative_path(input) click to toggle source
# File lib/jekyll-file-protocol/jekyll/filters/relative_path.rb, line 11
def relative_path(input)
  return input if input.nil?

  ::JekyllFileProtocol::RelativePathRenderer.new(@context, input).render
end
relative_tag(input) click to toggle source
# File lib/jekyll-file-protocol/jekyll/filters/relative_path.rb, line 17
def relative_tag(input)
  return input if input.nil?

  node   = Nokogiri::HTML.parse(input)
  tags   = nil
  
  # Stylesheet
  if (tags = node.css('link').to_a).size > 0
    return tags.map do |tag|
      tag['href'] = ::JekyllFileProtocol::RelativePathRenderer.new(@context, tag['href']).render
      tag
    end.map(&:to_html)
  end

  # Javascript
  if (tags = node.css('script').to_a).size > 0
    return tags.map do |tag|
      tag['src'] = ::JekyllFileProtocol::RelativePathRenderer.new(@context, tag['src']).render
      tag
    end.map(&:to_html)
  end

  # Image
  if (tags = node.css('img').to_a).size > 0
    return tags.map do |tag|
      tag['src'] = ::JekyllFileProtocol::RelativePathRenderer.new(@context, tag['src']).render
      tag
    end.map(&:to_html)
  end

  input
end