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 /plugins | |
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 'plugins')
-rw-r--r-- | plugins/category_generator.rb | 7 |
1 files changed, 4 insertions, 3 deletions
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 |