diff options
author | fhemberger <mail@frederic-hemberger.de> | 2011-09-04 12:56:54 +0200 |
---|---|---|
committer | fhemberger <mail@frederic-hemberger.de> | 2011-09-04 12:56:54 +0200 |
commit | 80f8a609f6e2d7349ab76c7bee662024bdf2aa94 (patch) | |
tree | 45f8c49f9adc815409490a67fa99139f0d9695a3 | |
parent | dae6cceec216856cc85163ad8cc22daccd02bf59 (diff) | |
download | my_new_personal_website-80f8a609f6e2d7349ab76c7bee662024bdf2aa94.tar.xz my_new_personal_website-80f8a609f6e2d7349ab76c7bee662024bdf2aa94.zip |
Improved support for non Latin characters in category names. Fixes #128
Diffstat (limited to '')
-rw-r--r-- | Gemfile | 3 | ||||
-rw-r--r-- | Gemfile.lock | 2 | ||||
-rw-r--r-- | plugins/category_generator.rb | 7 |
3 files changed, 8 insertions, 4 deletions
@@ -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 |