Remove our categorization hack, and add category view pages instead.

This commit is contained in:
Anna Rose 2016-04-12 00:08:27 -04:00
parent 6c9765d3d5
commit e3ca9952b8
7 changed files with 79 additions and 11 deletions

View File

@ -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"

View File

@ -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>

View 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>

View File

@ -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
View 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
View 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%;
}

View File

@ -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 %}