---
layout: post-index
comments: false
image:
  feature: happy-new-year.png
---

{% for post in site.posts %}
{% if post.category == 'en' %}
<article class="hentry">
  <header>
    {% if post.image.feature %}
      <div class="entry-image-index">
        <a href="{{ site.url }}{{ post.url }}" title="{{ post.title }}"><img src="{{ site.url }}/images/{{ post.image.feature }}" alt="{{ post.title }}"></a>
      </div><!-- /.entry-image -->
    {% endif %}
    <div class="entry-meta">
      <span class="entry-date date published updated"><time datetime="{{ post.date | date_to_xmlschema }}"><a href="{{ site.url }}{{ post.url }}">{{ post.date | date: "%Y-%m-%d" }}</a></time></span><span class="author vcard"><span class="fn"><a href="{{ site.url }}/about/" title="About {{ site.owner.name }}">{{ site.owner.name }}</a></span></span>
      {% if site.reading_time %}
      <span class="entry-reading-time">
        <i class="fa fa-clock-o"></i>
        {% include read-time-index.html %}
      </span><!-- /.entry-reading-time -->
      {% endif %}
    </div><!-- /.entry-meta -->
    {% if post.link %}
      <h1 class="entry-title"><a href="{{ site.url }}{{ post.url }}" class="permalink" rel="bookmark" title="{{ post.title }}"><i class="fa fa-bookmark"></i></a> <a href="{{ post.link }}">{{ post.title }}</a></h1>
    {% else %}
      <h1 class="entry-title"><a href="{{ site.url }}{{ post.url }}" rel="bookmark" title="{{ post.title }}" itemprop="url">{{ post.title }}</a></h1>
    {% endif %}
  </header>
  <div class="entry-content">
    {{ post.content }}
  </div><!-- /.entry-content -->
</article><!-- /.hentry -->
{% endif %}
{% endfor %}

{% include pagination.html %}