<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">

  {{ partial "head.html" . }}

  <body>

    <div id="all">

        <header>

          {{ partial "nav.html" . }}

        </header>

        {{ partial "breadcrumbs.html" . }}

        <div id="content">
            <div class="container">
                <div class="row">
                    <!-- *** LEFT COLUMN *** -->

                    <div class="col-md-9" id="blog-listing-medium">

                        {{ $paginator := .Paginate (where .Data.Pages "Type" "blog") }}
                        {{ range $paginator.Pages }}
                        <section class="post">
                            <div class="row">
                                <div class="col-md-4">
                                  <div class="image">
                                      <a href="{{ .Permalink }}">
                                          {{ if .Params.banner }}
                                          <img src="{{ .Site.BaseURL}}{{ .Params.banner }}" class="img-responsive" alt="">
                                          {{ else }}
                                          <img src="{{ .Site.BaseURL}}img/placeholder.png" class="img-responsive" alt="">
                                          {{ end }}
                                      </a>
                                  </div>
                                </div>
                                <div class="col-md-8">
                                    <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
                                    <div class="clearfix">
                                        <p class="author-category">
                                          {{ if isset .Params "author" }}
                                          {{ i18n "authorBy" }} <a href="#">{{ .Params.author }}</a>
                                          {{ end }}
                                          {{ if isset .Params "categories" }}
                                          {{ if gt (len .Params.categories) 0 }}
                                          in <a href="{{ $.Site.BaseURL }}categories/{{ index .Params.categories 0 | urlize | lower }}">{{ index .Params.categories 0 }}</a>
                                          {{ end }}
                                          {{ end }}

                                        </p>
                                        <p class="date-comments">
                                            <a href="{{ .Permalink }}"><i class="fa fa-calendar-o"></i> {{ .Date.Format .Site.Params.date_format }}</a>
                                        </p>
                                    </div>
                                    <p class="intro">{{ .Summary }}</p>
                                    <p class="read-more"><a href="{{ .Permalink }}" class="btn btn-template-main">{{ i18n "continueReading" }}</a>
                                    </p>
                                </div>
                            </div>
                        </section>
                        {{ end }}

                        <ul class="pager">
                            {{ if .Paginator.HasPrev }}
                            <li class="previous"><a href="{{ .Site.BaseURL }}{{ .Paginator.Prev.URL }}">&larr; {{ i18n "newer" }}</a></li>
                            {{ else }}
                            <li class="previous disabled"><a href="#">&larr; {{ i18n "newer" }}</a></li>
                            {{ end }}

                            {{ if .Paginator.HasNext }}
                            <li class="next"><a href="{{ .Site.BaseURL }}{{ .Paginator.Next.URL }}">{{ i18n "older" }} &rarr;</a></li>
                            {{ else }}
                            <li class="next disabled"><a href="#">{{ i18n "older" }} &rarr;</a></li>
                            {{ end }}
                        </ul>
                    </div>
                    <!-- /.col-md-9 -->

                    <!-- *** LEFT COLUMN END *** -->

                    <!-- *** RIGHT COLUMN ***
       _________________________________________________________ -->

                    <div class="col-md-3">

                        <!-- *** MENUS AND WIDGETS *** -->

                        {{ partial "sidebar.html" . }}

                        <!-- *** MENUS AND FILTERS END *** -->

                    </div>
                    <!-- /.col-md-3 -->

                    <!-- *** RIGHT COLUMN END *** -->

                </div>
                <!-- /.row -->
            </div>
            <!-- /.container -->
        </div>
        <!-- /#content -->

        {{ partial "footer.html" . }}

    </div>
    <!-- /#all -->

    {{ partial "scripts.html" . }}

  </body>
</html>
