Files
2018-lpon-site/lpon_site/templates/_base.html
T

81 lines
6.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>{% load static %}<html lang="ru">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="{% block DESCRIPTION %}LPON — Магазин виниловых пластинок и аудиокассет{% endblock %}" />
<meta name="keywords" content="{% block KEYWORDS %}vinyl, audio, music, LPON{% endblock %}" />
<meta name="copyright" lang="ru" content="Sergei Erjemin{% block META_COPYRIGHT_AUTHOR %}{% endblock %}." />
<meta name="robots" content="{% block ROBOTS %}index,follow{% endblock %}" />
<meta name="format-detection" content="telephone=no" />
<title>{% block PAGE_TITLE %}LPON.RU{% endblock %}</title>
<meta name="meta-title" content="{% block META_TITLE %}LPON.RU{% endblock %}" />
<meta name="meta-description" content="{% block META_DESCRIPTION %}LPON — Магазин виниловых пластинок и аудиокассет{% endblock %}" />
<link rel="canonical" href="{% block CANONICAL %}{{ request.scheme }}://{{ request.get_host }}{{ request.path }}{% endblock %}" />
<meta property="og:site_name" content="LPON.RU" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:title" content="{% block OG_TITLE %}LPON.RU{% endblock %}" />
<meta property="og:description" content="{% block OG_DESCRIPTION %}LPON — Магазин виниловых пластинок и аудиокассет{% endblock %}" />
<meta property="og:url" content="{% block OG_URL %}{{ request.scheme }}://{{ request.get_host }}{{ request.path }}{% endblock %}" />
<meta property="og:type" content="{% block OG_TYPE %}website{% endblock %}" />
<meta property="og:image" content="{% block OG_IMAGE %}{% static 'img/og-lpon-default.png' %}{% endblock %}" />
<meta property="og:image:alt" content="{% block OG_IMAGE_ALT %}LPON.RU{% endblock %}" />
<meta name="twitter:card" content="{% block TWITTER_CARD %}summary_large_image{% endblock %}" />
<meta name="twitter:title" content="{% block TWITTER_TITLE %}LPON.RU{% endblock %}" />
<meta name="twitter:description" content="{% block TWITTER_DESCRIPTION %}LPON — Магазин виниловых пластинок и аудиокассет{% endblock %}" />
<meta name="twitter:image" content="{% block TWITTER_IMAGE %}{% static 'img/og-lpon-default.png' %}{% endblock %}" />
<meta name="theme-color" content="#F5F5F5" />
{# Шутка #}<meta name="generator" content="Microsoft FrontPage 1.0"/>
<link rel="icon" type="image/svg+xml" href="{% static 'svgs/favicon.svg' %}" />
<link rel="icon" type="image/png" href="{% static 'img/favicon.png' %}" />
<link rel="shortcut icon" type="image/x-icon" href="{% static 'img/favicon.ico' %}" />
{% if IS_DEBUG %}{% comment %}
Переключение dev/prod стилей Tailwind CSS происходит АВТОМАТИЧЕСКИ через
переменную IS_DEBUG (см. контексный-процессор frontend/context_processors.py),
DEV: tailwindcss из CDN, компилируется прямо в браузере. Удобно для
разработки (не нужна сборка), но грузит браузер и prod не используется.
{% endcomment %}<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>{% comment %}
Кастомные @theme/@layer директивы проекта (токены цвета, типовой стиль
ссылок) лежат в css/tailwind-custom.css. @tailwindcss/browser сканирует
и компилирует ТОЛЬКО то, что видит в финальном DOM — то есть только
содержимое тегов style с type text/tailwindcss, а не внешние .css,
подключённые через link. Поэтому файл вставляется сюда через include,
а не подключается отдельным link.
Строка "@import tailwindcss" ниже ОБЯЗАТЕЛЬНА (проверено на практике):
без неё @apply в css/tailwind-custom.css не может найти стандартные
классы Tailwind (border-slate-500 и т.п.), браузерный компилятор
падает с ошибкой уже на этапе разбора — и из-за этого перестаёт
генерироваться ВООБЩЕ ВСЯ Tailwind-разметка на странице (не только
кастомные стили), верстка превращается в неоформленный HTML.{% endcomment %}
<style type="text/tailwindcss">
@import "tailwindcss";
{% include "css/tailwind-custom.css" %}
</style>{% else %}{% comment %}
PROD: заранее собранный Tailwind CLI файл (см. frontend-assembly/tailwind/input.css
и package.json). CLI сканирует шаблоны проекта и генерирует только реально
используемые классы, включая кастомные @theme/@layer директивы из того же
самого файла css/tailwind-custom.css (подключён в input.css через @import).{% endcomment %}
<link rel="stylesheet" href="{% static 'css/tailwind.min.css' %}">{% endif %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "LPON.RU",
"url": "{{ request.scheme }}://{{ request.get_host }}/"
}
</script>{% block EXTRAHEAD %}{% endblock EXTRAHEAD %}
<link rel="stylesheet" href="{% static 'css/lpon.css' %}" />
</head>
<body class="bg-white dark:bg-slate-950 text-slate-900 dark:text-slate-100">{% block ADD_CSS1 %}{% endblock %}{% block ADD_CSS2 %}{% endblock %}{% block ADD_CSS3 %}{% endblock %}{% block BODY %}
{% include "block/header.html" %}
<main id="main-content">{% block CONTENT %}{% endblock CONTENT %}
</main>
{# {% include "blocks/footer.jinja2" %} #}
{% endblock BODY %}{% if not ALLOW_TRACKING %}
{% include "block/allow-tracking.html" %}{% endif %}
<script src="{% static 'js/alpine.min.js' %}"></script>
<script src="{% static 'js/htmx.min.js' %}"></script> {% block ADD_JS1 %}{% endblock ADD_JS1 %}{% block ADD_JS2 %}{% endblock ADD_JS2 %}{% block ADD_JS3 %}{% endblock ADD_JS3 %}
</body>
</html>