aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfhemberger <mail@frederic-hemberger.de>2011-09-04 12:56:54 +0200
committerfhemberger <mail@frederic-hemberger.de>2011-09-04 12:56:54 +0200
commit80f8a609f6e2d7349ab76c7bee662024bdf2aa94 (patch)
tree45f8c49f9adc815409490a67fa99139f0d9695a3
parentdae6cceec216856cc85163ad8cc22daccd02bf59 (diff)
downloadmy_new_personal_website-80f8a609f6e2d7349ab76c7bee662024bdf2aa94.tar.xz
my_new_personal_website-80f8a609f6e2d7349ab76c7bee662024bdf2aa94.zip
Improved support for non Latin characters in category names. Fixes #128
-rw-r--r--Gemfile3
-rw-r--r--Gemfile.lock2
-rw-r--r--plugins/category_generator.rb7
3 files changed, 8 insertions, 4 deletions
diff --git a/Gemfile b/Gemfile
index ffb614f2..14ee9669 100644
--- a/Gemfile
+++ b/Gemfile
@@ -10,4 +10,5 @@ gem 'haml', '>= 3.1'
gem 'compass', '>= 0.11'
gem 'rubypants'
gem 'rb-fsevent'
-gem 'stringex' \ No newline at end of file
+gem 'stringex'
+gem 'unicode_utils' \ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index f2fc737d..000eec9b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -42,6 +42,7 @@ GEM
sass (3.1.7)
stringex (1.3.0)
syntax (1.0.0)
+ unicode_utils (1.0.0)
PLATFORMS
ruby
@@ -58,3 +59,4 @@ DEPENDENCIES
rdiscount
rubypants
stringex
+ unicode_utils
diff --git a/plugins/category_generator.rb b/plugins/category_generator.rb
index aa1180e1..97fb9f30 100644
--- a/plugins/category_generator.rb
+++ b/plugins/category_generator.rb
@@ -16,8 +16,9 @@
# - category_dir: The subfolder to build category pages in (default is 'categories').
# - category_title_prefix: The string used before the category name in the page title (default is
# 'Category: ').
-module Jekyll
+require "unicode_utils"
+module Jekyll
# The CategoryIndex class creates a single category page for the specified category.
class CategoryIndex < Page
@@ -68,7 +69,7 @@ module Jekyll
if self.layouts.key? 'category_index'
dir = self.config['category_dir'] || 'categories'
self.categories.keys.each do |category|
- self.write_category_index(File.join(dir, category.gsub(/_|\W/, '-')), category)
+ self.write_category_index(File.join(dir, UnicodeUtils.nfkd(category).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').to_s), category)
end
# Throw an exception if the layout couldn't be found.
@@ -105,7 +106,7 @@ module Jekyll
def category_links(categories)
dir = @context.registers[:site].config['category_dir']
categories = categories.sort!.map do |item|
- "<a class='category' href='/#{dir}/#{item.gsub(/_|\W/, '-')}/'>#{item}</a>"
+ "<a class='category' href='/#{dir}/#{UnicodeUtils.nfkd(item).gsub(/[^\x00-\x7F]/, '').gsub(/_|\W/, '-').to_s}/'>#{item}</a>"
end
case categories.length