Generate escaped url for categories with space.

Space in URLs should be encoded.

Signed-off-by: Laurent Arnoud <laurent@spkdev.net>
This commit is contained in:
Laurent Arnoud 2011-07-10 23:56:51 +02:00
parent 3241d882b5
commit 1356e75811
2 changed files with 14 additions and 1 deletions

View File

@ -131,7 +131,7 @@ module Jekyll
"title" => CGI.escape(slug),
"i_day" => date.strftime("%d").to_i.to_s,
"i_month" => date.strftime("%m").to_i.to_s,
"categories" => categories.join('/'),
"categories" => categories.map {|c| URI.escape(c) }.join('/'),
"output_ext" => self.output_ext
}.inject(template) { |result, token|
result.gsub(/:#{Regexp.escape token.first}/, token.last)

View File

@ -141,6 +141,19 @@ class TestPost < Test::Unit::TestCase
end
end
context "with space (categories)" do
setup do
@post.categories << "French cuisine"
@post.categories << "Belgian beer"
@post.process(@fake_file)
end
should "process the url correctly" do
assert_equal "/:categories/:year/:month/:day/:title.html", @post.template
assert_equal "/French%20cuisine/Belgian%20beer/2008/09/09/foo-bar.html", @post.url
end
end
context "with none style" do
setup do
@post.site.permalink_style = :none