aboutsummaryrefslogtreecommitdiff
path: root/_plugins/relativize_url.rb
blob: 23e1712e713e912580d58827f435fb4a479e25f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'pathname'

module Jekyll
  module UrlRelativizer
    # def relativize_url(url)
    #   pageUrl = @context.registers[:page]["url"]
    #   if pageUrl[-1] == "/"
    #     pageDir = Pathname(pageUrl)
    #   else
    #     pageDir = Pathname(pageUrl).parent
    #   end
    # ret = Pathname(url).relative_path_from(pageDir).to_s
    # puts pageDir.to_s + + " -> " + url.to_s + " => " + ret
    # ret
    # end

    def relativize_url(input)
      return if input.nil?
      input = ensure_leading_slash(input)
      page_url = @context.registers[:page]["url"]
      if page_url[-1]
        page_dir = Pathname(page_url)
      else
        page_dir = Pathname(page_url).parent
      end

      ret = Pathname(input).relative_path_from(page_dir).to_s
      # puts page_url.to_s + "," + page_dir.to_s + + "," + input.to_s + "," + ret
      return ret
    end
  end
end

Liquid::Template.register_filter(Jekyll::UrlRelativizer)