83 lines
4.2 KiB
HTML
83 lines
4.2 KiB
HTML
{% extends 'typograph/base.html' %}
|
|
{% load static typograph_extras %}
|
|
|
|
{% block title %}Блог — ETPGRF{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-12">
|
|
<h1 class="mb-3">Блог</h1>
|
|
<p class="lead bg-secondary bg-opacity-10 p-3 mb-5 rounded">Здесь мы делимся новостями типографа ETPGRF и его онлайн версии, рассказываем о тонкостях типографики и показываем, как сделать текст в вебе лучше.</p>
|
|
{# СПИСОК ПОСТОВ #}{% for post in page_obj %}
|
|
<article class="row mb-5 {% if forloop.counter|divisibleby:2 %}flex-lg-row-reverse{% endif %}">
|
|
{# Колонка с датой и картинкой #}
|
|
<div class="col-lg-3 pt-2 pb-lg-5 align-self-stretch text-start {% if forloop.counter|divisibleby:2 %}text-lg-start border-lg-start ps-lg-4{% else %}text-lg-end border-lg-end pe-lg-4{% endif %} mb-2 mb-lg-0">
|
|
{# Дата #}<p class="small align-self-end mb-2">
|
|
<small class="bg-secondary bg-opacity-10 p-2 text-nowrap">
|
|
{{ post.published_at|date:"d.M.Y"|lower }}
|
|
</small>
|
|
</p>
|
|
{# Картинка (скрыта на мобильных) #}<a href="{{ post.get_absolute_url }}" class="d-none d-lg-block">
|
|
{% if post.image %}<img src="{{ post.image.url }}" class="img-fluid rounded shadow-sm" alt="{{ post.title|striptags|unescape }}">
|
|
{% else %}<img src="{% static 'img/etpgrf-logo-for-fb-vk-x.gif' %}" class="img-fluid rounded shadow-sm opacity-50" alt="{{ post.title|striptags|unescape }}">{% endif %}
|
|
</a>
|
|
</div>
|
|
{# Колонка с текстом (заголовок, тизер и ссылка #}<div class="col-lg-9 pt-2 pb-5 align-self-stretch {% if forloop.counter|divisibleby:2 %}pe-lg-4{% else %}ps-lg-4{% endif %}">
|
|
{# Заголовок #}<h2 class="h3 mb-3">
|
|
<a href="{{ post.get_absolute_url }}" class="text-decoration-none text-reset">{{ post.title|safe }}</a>
|
|
</h2>
|
|
{# Тизер #}<div class="lead text-muted">
|
|
{{ post.excerpt|safe|linebreaks }}
|
|
</div>
|
|
{# Ссылка #}<div class="mt-3">
|
|
<a href="{{ post.get_absolute_url }}" class="link-dashed">Читать далее →</a>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
{# Горизонтальный разделитель только на мобильных (на десктопе есть вертикальный бордер) #}{% if not forloop.last %}<hr class="my-5 d-lg-none"/>{% endif %}
|
|
{% empty %}
|
|
<p class="text-muted text-center">Пока нет записей.</p>
|
|
{% endfor %}
|
|
|
|
{# Пагинация #}
|
|
{% if page_obj.has_other_pages %}
|
|
<nav aria-label="Page navigation" class="mt-5">
|
|
<ul class="pagination justify-content-center">
|
|
{% if page_obj.has_previous %}
|
|
<li class="page-item">
|
|
<a class="page-link" href="?page={{ page_obj.previous_page_number }}">«</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="page-item disabled">
|
|
<span class="page-link">«</span>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% for i in page_obj.paginator.page_range %}
|
|
{% if page_obj.number == i %}
|
|
<li class="page-item active">
|
|
<span class="page-link">{{ i }}</span>
|
|
</li>
|
|
{% else %}
|
|
<li class="page-item">
|
|
<a class="page-link" href="?page={{ i }}">{{ i }}</a>
|
|
</li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if page_obj.has_next %}
|
|
<li class="page-item">
|
|
<a class="page-link" href="?page={{ page_obj.next_page_number }}">»</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="page-item disabled">
|
|
<span class="page-link">»</span>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</nav>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|