From e22b1bb74a79732ed8a129b501411a91feee578c Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Sat, 11 May 2013 17:40:00 +0200 Subject: [PATCH] Add deprecation support for pages in subfolders with relative permalinks. --- lib/jekyll/configuration.rb | 5 ++++- lib/jekyll/page.rb | 4 ++++ lib/jekyll/site.rb | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb index d6856bb1..c76dde9e 100644 --- a/lib/jekyll/configuration.rb +++ b/lib/jekyll/configuration.rb @@ -19,7 +19,10 @@ module Jekyll 'limit_posts' => 0, 'lsi' => false, 'future' => true, # remove and make true just default - 'pygments' => true, # remove and make true just default + 'pygments' => true, + + 'relative_permalinks' => true, # backwards-compatibility with < 1.0 + # will be set to false once 1.1 hits 'markdown' => 'maruku', 'permalink' => 'date', diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index 730af13f..e44cf329 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -144,5 +144,9 @@ module Jekyll def index? basename == 'index' end + + def uses_relative_permalinks + permalink && !permalink.include?(File.expand_path(@dir, site.source)) + end end end diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index d8a36e1b..3264cfc5 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -231,6 +231,7 @@ module Jekyll end self.pages.each do |page| + relative_permalinks_deprecation_method if page.uses_relative_permalinks page.render(self.layouts, payload) end @@ -418,5 +419,15 @@ module Jekyll post.categories.each { |c| self.categories[c] << post } post.tags.each { |c| self.tags[c] << post } end + + def relative_permalinks_deprecation_method + if config['relative_permalinks'] && !@deprecated_relative_permalinks + Jekyll::Logger.warn "Deprecation:", "Starting in 1.1, permalinks for pages" + + " in subfolders must be absolute" + + " permalinks relative to the site" + + " source." + @deprecated_relative_permalinks = true + end + end end end