diff --git a/_posts/2013-12-31-whats-jekyll.md b/_posts/2013-12-31-whats-jekyll.md
index 6af83b08..b544aae0 100644
--- a/_posts/2013-12-31-whats-jekyll.md
+++ b/_posts/2013-12-31-whats-jekyll.md
@@ -3,6 +3,7 @@ layout: post
title: What's Jekyll?
comments: true
category: Misc
+tags: jekyll
---
[Jekyll](http://jekyllrb.com) is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From [the project's readme](https://github.com/mojombo/jekyll/blob/master/README.markdown):
diff --git a/blog/category.html b/blog/category.html
new file mode 100644
index 00000000..37391b36
--- /dev/null
+++ b/blog/category.html
@@ -0,0 +1,85 @@
+---
+layout: blog_index
+title: Category
+---
+{% comment%}
+Here we generate all the categories.
+{% endcomment%}
+
+{% assign rawcats = "" %}
+{% for post in site.posts %}
+{% assign tcats = post.category | join:'|' | append:'|' %}
+{% assign rawcats = rawcats | append:tcats %}
+{% endfor %}
+
+{% assign rawcats = rawcats | split:'|' | sort %}
+
+{% assign cats = "" %}
+
+{% for cat in rawcats %}
+{% if cat != "" %}
+
+{% if cats == "" %}
+{% assign cats = cat | split:'|' %}
+{% endif %}
+
+{% unless cats contains cat %}
+{% assign cats = cats | join:'|' | append:'|' | append:cat | split:'|' %}
+{% endunless %}
+{% endif %}
+{% endfor %}
+
+
+
+{% for ct in cats %}
+ {{ ct }}
+{% endfor %}
+ No Category
+
+
+{% for ct in cats %}
+
{{ ct }}
+
+ {% for post in site.posts %}
+ {% if post.category contains ct %}
+ -
+
+
+ {% endif %}
+ {% endfor %}
+
+{% endfor %}
+
+
No Category
+
+ {% for post in site.posts %}
+ {% unless post.category %}
+ -
+
+
+ {% endunless %}
+ {% endfor %}
+
+
+
diff --git a/blog/category_index.html b/blog/category_index.html
deleted file mode 100644
index 7e0405f8..00000000
--- a/blog/category_index.html
+++ /dev/null
@@ -1,39 +0,0 @@
----
-layout: blog_index
-title: Category
-to-list: [Dev, General, Misc, Notes]
----
-
-
-
-{% for ct in page.to-list %}
- {{ ct }}
-{% endfor %}
-
-
-{% for ct in page.to-list %}
-
{{ ct }}
-
- {% for post in site.posts %}
- {% if post.category contains ct %}
- -
-
-
- {% endif %}
- {% endfor %}
-
-{% endfor %}
-
diff --git a/blog/index.html b/blog/index.html
index 8fae8cd7..1b79a421 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -3,48 +3,58 @@
title: Blog
---
-
- {% for post in paginator.posts %}
-
-
-
-
{{ post.date | date_to_string }} | 0 Comments
-
-
- {% if post.content contains "" %}
- {{ post.content | split:"" | first % }}
- {% else %}
- {{ post.content | truncatewords:35 }}
- {% endif %}
-
-
-
- {% endfor %}
+ {% for post in paginator.posts %}
+
+
+
+
+ {{ post.date | date_to_string }}
+ {% if post.tags != empty %}
+ |
+ {% for tag in post.tags %}
+ {{ tag }}
+ {% endfor %}
+ {% endif %}
+
+
+ {{ post.content | split:"" | first % }}
+
+
+
+
+
+ {% endfor %}
diff --git a/blog/tag.html b/blog/tag.html
new file mode 100644
index 00000000..240cd3d3
--- /dev/null
+++ b/blog/tag.html
@@ -0,0 +1,64 @@
+---
+layout: blog_index
+title: Tag
+---
+{% comment%}
+Here we generate all the tags.
+{% endcomment%}
+
+{% assign rawtags = "" %}
+{% for post in site.posts %}
+{% assign ttags = post.tags | join:'|' | append:'|' %}
+{% assign rawtags = rawtags | append:ttags %}
+{% endfor %}
+
+{% assign rawtags = rawtags | split:'|' | sort %}
+
+{% assign tags = "" %}
+
+{% for tag in rawtags %}
+{% if tag != "" %}
+
+{% if tags == "" %}
+{% assign tags = tag | split:'|' %}
+{% endif %}
+
+{% unless tags contains tag %}
+{% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %}
+{% endunless %}
+{% endif %}
+{% endfor %}
+
+
+
+{% for tag in tags %}
+ {{ tag }}
+{% endfor %}
+
+{% for tag in tags %}
+
{{ tag }}
+
+ {% for post in site.posts %}
+ {% if post.tags contains tag %}
+ -
+
+
+ {% endif %}
+ {% endfor %}
+
+{% endfor %}
+
+