Now all helpers can be overridden by custom implementations without editing JB source. Just define a helper's 'engine' as 'custom' in the _config.yml file and provide a helper file of the same name in _includes/custom/. This helps users cleanly upgrade JB versions since they no longer need to edit the files directly.
55 lines
No EOL
1.7 KiB
Text
55 lines
No EOL
1.7 KiB
Text
{% comment %}<!--
|
|
Collate_posts helper. Collated posts by year and month.
|
|
Usage:
|
|
1) assign the 'posts_collate' variable to a valid array of posts.
|
|
2) include JB/posts_collate
|
|
example:
|
|
{% assign posts_collate = site.posts %}
|
|
{% include JB/posts_collate %}
|
|
|
|
Ordering:
|
|
Posts are displayed in reverse chronological order.
|
|
For normal chronological order:
|
|
1) Change the for loop to this:
|
|
=> 'for post in site.posts reversed'
|
|
2) Next make sure to change 'post.previous.date' to:
|
|
=> 'post.next.date'
|
|
|
|
-->{% endcomment %}
|
|
|
|
{% if site.JB.posts_collate.engine == "custom" %}
|
|
{% include custom/posts_collate %}
|
|
{% else %}
|
|
{% for post in posts_collate %}
|
|
{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
|
|
{% capture this_month %}{{ post.date | date: "%B" }}{% endcapture %}
|
|
{% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}
|
|
{% capture next_month %}{{ post.previous.date | date: "%B" }}{% endcapture %}
|
|
|
|
{% if forloop.first %}
|
|
<h2>{{this_year}}</h2>
|
|
<h3>{{this_month}}</h3>
|
|
<ul>
|
|
{% endif %}
|
|
|
|
<li><span>{{ post.date | date: "%B %e, %Y" }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
|
|
|
|
{% if forloop.last %}
|
|
</ul>
|
|
{% else %}
|
|
{% if this_year != next_year %}
|
|
</ul>
|
|
<h2>{{next_year}}</h2>
|
|
<h3>{{next_month}}</h3>
|
|
<ul>
|
|
{% else %}
|
|
{% if this_month != next_month %}
|
|
</ul>
|
|
<h3>{{next_month}}</h3>
|
|
<ul>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% assign posts_collate = nil %} |