From a1a4b3937accbe593241c1d37c4f034b8c8b4104 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 25 Mar 2016 16:29:37 -0700 Subject: [PATCH] Add Layout#relative_path so the layout can tell us what its path is for error messages --- lib/jekyll/convertible.rb | 6 +++--- lib/jekyll/layout.rb | 8 ++++++++ lib/jekyll/renderer.rb | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index f58796f0..d563961a 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -215,9 +215,9 @@ module Jekyll payload["layout"] = Utils.deep_merge_hashes(payload["layout"] || {}, layout.data) self.output = render_liquid(layout.content, - payload, - info, - File.join(site.config['layouts_dir'], layout.name)) + payload, + info, + layout.relative_path) # Add layout to dependency tree site.regenerator.add_dependency( diff --git a/lib/jekyll/layout.rb b/lib/jekyll/layout.rb index c29f353f..aed6afe1 100644 --- a/lib/jekyll/layout.rb +++ b/lib/jekyll/layout.rb @@ -45,5 +45,13 @@ module Jekyll def process(name) self.ext = File.extname(name) end + + # The path to the layout, relative to the site source. + # + # Returns a String path which represents the relative path + # from the site source to this layout + def relative_path + @relative_path ||= Pathname.new(path).relative_path_from(Pathname.new(site.source)).to_s + end end end diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index 7d20d452..820d300e 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -146,7 +146,7 @@ module Jekyll layout.content, payload, info, - File.join(site.config['layouts_dir'], layout.name) + layout.relative_path ) # Add layout to dependency tree