X-Git-Url: https://git.ralfj.de/web.git/blobdiff_plain/6680e4573ec412349c1203d35190831d5219e4f9..cce7a39d255170e4315c5da78949491e07c1c1f9:/personal/_plugins/categories.rb?ds=sidebyside diff --git a/personal/_plugins/categories.rb b/personal/_plugins/categories.rb index 69375da..3e0fabe 100644 --- a/personal/_plugins/categories.rb +++ b/personal/_plugins/categories.rb @@ -9,9 +9,9 @@ module Jekyll self.process(@name) self.read_yaml(File.join(base, '_layouts'), layout) - self.data['category'] = category + self.data['category'] = category # this tells the site template to add a link to the RSS feed - category_title_prefix = site.config['blog']['category_title_prefix'] || 'Category: ' + category_title_prefix = site.config['blog']['title'] + ": " self.data['title'] = "#{category_title_prefix}#{category.capitalize}" end end @@ -20,6 +20,7 @@ module Jekyll safe true def generate(site) + return if site.config['blog'].nil? dir = site.config['blog']['category_dir'] || 'categories' if site.layouts.key? 'category_index' site.categories.each_key do |category| @@ -35,7 +36,7 @@ module Jekyll end # Adds some extra filters used during the category creation process. - module Filters + module CategoryFilter # Outputs a list of categories as comma-separated links. This is used # to output the category list for each post on a category page. @@ -44,11 +45,9 @@ module Jekyll # # Returns string def category_links(categories) - base_dir = @context.registers[:site].config['blog']['category_dir'] + cat_base_dir = File.join(@context.registers[:site].config['baseurl'], @context.registers[:site].config['blog']['category_dir']) categories = categories.sort!.map do |category| - category_url = File.join(base_dir, "#{category}.html") - # Make sure the category directory begins with a slash. - category_dir = "/#{category_dir}" unless category_dir =~ /^\// + category_url = File.join(cat_base_dir, "#{category}.html") "#{category.capitalize}" end @@ -63,3 +62,5 @@ module Jekyll end end end + +Liquid::Template.register_filter(Jekyll::CategoryFilter)