---
layout: post-index
comments: false
---
<div class="container">
    {% for post in paginator.posts %}
    {% unless post.category == 'en' %}
    <div class="index-post">
      <div class="row">
        {% if post.image.feature %}

        <div class="index-post-content col-md-8 col-sm-7">
          <h2>
            <a href="{{ site.url }}{{ post.url }}">{{ post.title }}</a>
          </h2>
          <div class="index-post-desc">
            {{ post.description | markdownify }}
          </div>
          <div class="tag-panel">
            {% for tag in post.tags %}
            <!--<a href="{{ site.url }}/tags/#{{ tag }}" title="Pages tagged {{ tag }}" class="tag">-->
              <span class="term">{{ tag }}</span>
            <!--</a>-->
            {% endfor %}
          </div>
        </div>
        <div class="col-md-4 col-sm-5">
          <a class="index-post-image" href="{{ site.url }}{{ post.url }}" title="{{ post.title }}" style="background-image: url({{ site.url }}/images/{{ post.image.feature }})">
          </a>
        </div>

        {% else %}

        <div class="col-md-8 col-md-offset-2">
          <h2>
            <a href="{{ site.url }}{{ post.url }}">{{ post.title }}</a>
          </h2>
          <p>
            {{ post.description | markdownify }}
          </p>
        </div>
        {% endif %}
      </div>
    </div>
  {% endunless %}
  {% endfor %}
</div>

{% include pagination.html %}
