Remove our categorization hack, and add category view pages instead.
This commit is contained in:
parent
6c9765d3d5
commit
e3ca9952b8
|
@ -21,3 +21,11 @@ timezone: America/New_York
|
|||
|
||||
# Build settings
|
||||
markdown: kramdown
|
||||
|
||||
|
||||
# Category settings
|
||||
category_titles:
|
||||
-
|
||||
technology: "Anna the Technologist"
|
||||
media: "Anna the Player of Games"
|
||||
religion: "Anna the Mystic"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<h1 class="page-heading">{{ include.category | capitalize }}</h1>
|
||||
|
||||
<ul class="post-list">
|
||||
{% for post in site.categories[include.category] limit:5 %}
|
||||
{% for post in site.categories[include.category] limit:include.limit %}
|
||||
<li>
|
||||
<span class="post-meta">{{ post.date | date: "%Y-%m-%d" }}</span>
|
||||
<h2>
|
||||
|
|
14
_layouts/category_index.html
Normal file
14
_layouts/category_index.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
<article class="post">
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
</header>
|
||||
|
||||
<div class="post-content">
|
||||
{% include category_list.html category=page.data['category'] limit=0 %}
|
||||
</div>
|
||||
|
||||
</article>
|
|
@ -1,9 +0,0 @@
|
|||
# Very simple plugin that adds a subdirectory under _posts as a category
|
||||
|
||||
def get_category_from_subdir(path)
|
||||
path.sub(/^.*_posts\/(.*?)\/.*$/, "\\1")
|
||||
end
|
||||
|
||||
Jekyll::Hooks.register :posts, :pre_render do |post, payload|
|
||||
post.data['categories'] << get_category_from_subdir(post.path)
|
||||
end
|
30
_plugins/category_page.rb
Normal file
30
_plugins/category_page.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
class CategoryPage < Jekyll::Page
|
||||
def initialize(site, base, dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = dir
|
||||
@name = 'index.html'
|
||||
|
||||
self.process(@name)
|
||||
self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
|
||||
self.data['category'] = category
|
||||
|
||||
category_title = site.config['category_titles'][category] || category.capitalize
|
||||
self.data['title'] = "#{category_title}"
|
||||
end
|
||||
end
|
||||
|
||||
class CategoryPageGenerator < Jekyll::Generator
|
||||
safe true
|
||||
|
||||
def generate(site)
|
||||
if !site.layouts.key? 'category_index'
|
||||
return
|
||||
end
|
||||
|
||||
site.categories.each_key do |category|
|
||||
site.pages << CategoryPage.new(site, site.source, category, category)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
25
_sass/_columns.scss
Normal file
25
_sass/_columns.scss
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* For dynamically determined columnar formatting.
|
||||
Currently supports equal-width, 1-4 column layouts.
|
||||
*/
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.column {
|
||||
float: left;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.col-1 {
|
||||
width: 100%;
|
||||
}
|
||||
.col-2 {
|
||||
width: 50%;
|
||||
}
|
||||
.col-3 {
|
||||
width: 33%;
|
||||
}
|
||||
.col-4 {
|
||||
width: 25%;
|
||||
}
|
|
@ -5,7 +5,7 @@ layout: default
|
|||
{% for category in site.categories %}
|
||||
{% if category.first == "meta" %} {% continue %} {% endif %}
|
||||
<div class="column col-{{site.categories.size | minus: 1}}">
|
||||
{% include category_list.html category=category.first %}
|
||||
{% include category_list.html category=category.first limit=5 %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user