В стандартной поставке Octopress остутствует как ни странно модуль для сайдбара со списком категорий блога.
Исправляем сей небольшой недостаток.
Плагин
В папке плгинов ( root/plugins ) создаем файл category_list_tag.rb
вот такого содержания:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| module Jekyll
class CategoryListTag < Liquid::Tag
def render(context)
html = ""
categories = context.registers[:site].categories.keys
categories.sort.each do |category|
posts_in_category = context.registers[:site].categories[category].size
category_dir = context.registers[:site].config['category_dir']
category_url = File.join(category_dir, category.gsub(/_|\P{Word}/, '-').gsub(/-{2,}/, '-').downcase)
html << "<li class='category'><a href='/#{category_url}/'>#{category} (#{posts_in_category})</a></li>\n"
end
html
end
end
end
Liquid::Template.register_tag('category_list', Jekyll::CategoryListTag)
|
Шаблон секции
Создаем файл root/source/_includes/asides со следующим содержанием:
Подключение
в файле root/_config.yml в разделе включения модулей сайдбара добавляем наш:
1
| default_asides: [asides/category_list.html, asides/recent_posts.html,.... ]
|
Собственно всё.