aboutsummaryrefslogtreecommitdiff
path: root/_plugins/relativize_url.rb
blob: d419032adc7d52604326fb039e0b9e5e53561dff (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
require 'pathname'

def ensure_leading_slash(path)
  path[0..0] == "/" ? path : "/#{path}"
end

module Jekyll
  module UrlRelativizer
    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
      return ret
    end
  end
end

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