Permalink
Browse files

Generate escaped url for categories with space.

Space in URLs should be encoded.

Signed-off-by: Laurent Arnoud <laurent@spkdev.net>
  • Loading branch information...
1 parent 3241d88 commit 1356e75811db42f5aa9596cf73acc8ec38ea1a3c @spk spk committed Jul 10, 2011
Showing with 14 additions and 1 deletion.
  1. +1 −1 lib/jekyll/post.rb
  2. +13 −0 test/test_post.rb
View
2 lib/jekyll/post.rb
@@ -131,7 +131,7 @@ def url
"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
13 test/test_post.rb
@@ -141,6 +141,19 @@ def do_render(post)
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

0 comments on commit 1356e75

Please sign in to comment.