<% function pad(n) { -%> <% return +n < 10 ? '0' + n : String(n) -%> <% } -%> <% var _months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ') -%> <% function formatDate(t) { -%> <% var d = new Date(t) -%> <% return _months[d.getMonth()] + ' ' + d.getDate() -%> <% } -%> <% function sortPosts(dir) { -%> <% var slugs = Object.keys(dir._data) -%> <% var posts = slugs.map(function(slug) { return dir._data[slug] }) -%> <% posts.sort(function(a, b) { -%> <% var t1 = a.timestamp -%> <% var t2 = b.timestamp -%> <% return t1 < t2 ? 1 : (t1 > t2 ? -1 : 0) -%> <% }) -%> <% return posts -%> <% } -%> <% function posts(dir, year) { -%> <% if (!dir) return -%>

<%= year %>

<% for (var month = 12; month >= 1; month--) { -%> <% var monthDir = dir[pad(month)] -%> <% if (!monthDir) continue -%> <% } -%> <% } -%> <% var year = new Date().getFullYear(); -%> <% for (; year >= 2006; year--) { -%> <% posts(public.posts[year], year) -%> <% } -%>