Skip to content

Instantly share code, notes, and snippets.

@rajibdpi
Forked from mikeygee/01-before.html
Last active November 27, 2017 06:44
Show Gist options
  • Save rajibdpi/f42ba10a5e856cd1bb063781dc00e57e to your computer and use it in GitHub Desktop.
Save rajibdpi/f42ba10a5e856cd1bb063781dc00e57e to your computer and use it in GitHub Desktop.
truncate blog posts in jekyll
<!-- using the split filter -->
{% for post in site.posts limit:10 %}
<div class="post-preview">
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<span class="post-date">{{ post.date | date: "%B %d, %Y" }}</span>
{{ post.content | split:'<!--break-->' | first }}
{% if post.content contains '<!--break-->' %}
<a href="{{ post.url }}">read more</a>
{% endif %}
</div>
<hr>
{% endfor %}
<!-- In your posts file, put your marker wherever you want to cut off the post for the main blog page -->
---
layout: post
title: truncate example
---
Paragraph 1
Paragraph 2
<!--break-->
Paragraph 3
Paragraph 4
<!-- using the truncate filter -->
{% for post in site.posts limit:10 %}
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<span class="post-date">{{ post.date | date: "%B %d, %Y" }}</span>
{% if post.content.size > 2000 %}
{{ post.content | truncatewords: 300 }} <!-- bad! content gives you rendered html and you will truncate in the middle of a node -->
<a href="{{ post.url }}">read more</a>
{% else %}
{{ post.content }}
{% endif %}
<hr>
{% endfor %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment