diff --git a/cadpoint/cadpoint/settings.py b/cadpoint/cadpoint/settings.py index f1a3406..624e862 100644 --- a/cadpoint/cadpoint/settings.py +++ b/cadpoint/cadpoint/settings.py @@ -56,6 +56,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django.contrib.sitemaps', # Панель отладки показываем только в dev-окружении при `DEBUG=True`. 'debug_toolbar', 'django_select2', diff --git a/cadpoint/cadpoint/urls.py b/cadpoint/cadpoint/urls.py index 6418d78..3b08a62 100644 --- a/cadpoint/cadpoint/urls.py +++ b/cadpoint/cadpoint/urls.py @@ -14,10 +14,12 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin +from django.contrib.sitemaps.views import sitemap as sitemap_view from django.conf.urls.static import static from django.urls import path, include, re_path from cadpoint import settings from web import views +from web.sitemaps import CadpointSitemap urlpatterns = [ path( @@ -50,7 +52,7 @@ urlpatterns = [ # re_path(r'^category-table/(?P\d*)-\S*$', views.redirect_item), # re_path(r'^aboutcadpoint.html/(?P\d*)-\S*$', views.redirect_item), - re_path(r'^sitemap.xml$', views.sitemap), + path('sitemap.xml', sitemap_view, {'sitemaps': {'cadpoint': CadpointSitemap}}, name='web_sitemap'), ] diff --git a/cadpoint/templates/alltags.jinja2 b/cadpoint/templates/alltags.jinja2 index 272d141..d329f31 100644 --- a/cadpoint/templates/alltags.jinja2 +++ b/cadpoint/templates/alltags.jinja2 @@ -1,8 +1,13 @@ {% extends "base.jinja2" %}{% load slug_ru %} -{% block Title %}Все теги{% endblock %} -{% block canonical %}https://cadpoint.ru/alltags{% endblock %} +{% block page_title %}Все теги | CADpoint{% endblock %} +{% block meta_title %}Все теги | CADpoint{% endblock %} +{% block og_title %}Все теги | CADpoint{% endblock %} +{% block twitter_title %}Все теги | CADpoint{% endblock %} {% block Description %}Все теги сайта CADpoint{% endblock %} +{% block meta_description %}Все теги сайта CADpoint{% endblock %} +{% block og_description %}Все теги сайта CADpoint{% endblock %} +{% block twitter_description %}Все теги сайта CADpoint{% endblock %} {% block Keywords %}cadpoint, теги, alltags, новости{% endblock %} {% block CONTENT %} diff --git a/cadpoint/templates/base.jinja2 b/cadpoint/templates/base.jinja2 index aba8b5c..6477ef1 100644 --- a/cadpoint/templates/base.jinja2 +++ b/cadpoint/templates/base.jinja2 @@ -1,36 +1,46 @@ {% load static %} - - - - - - - - - + + - - - - CADPOINT.RU - {% block Title %}{% endblock %} - {% comment %} - {% endcomment %} - {% comment %}theme-color предоставляет браузерам цвет CSS для - настройки отображения страницы или окружающего пользовательского интерфейса.{% endcomment %} + {% block page_title %}CADPOINT.RU{% endblock %} + + + + + + + + + + + + + + + + + {# Шутка #} - {% comment %} - {% endcomment %} + - + {% block ExtraHead %} + {% endblock %} -{% block META_OG %}{% endblock %}{% block BODY %} +{% block BODY %} {% block Top_CSS1 %}{% endblock %}{% block Top_CSS2 %}{% endblock %}{% block Top_CSS3 %}{% endblock %}{% include "blocks/header_nav.jinja2" %}{% block CONTENT %}{% endblock %} {% include "blocks/footer.jinja2" %}{% if COOKIES %} {% include "blocks/accept-cookies.jinja2" %}{% endif %} diff --git a/cadpoint/templates/index.jinja2 b/cadpoint/templates/index.jinja2 index ea79f6e..f925825 100644 --- a/cadpoint/templates/index.jinja2 +++ b/cadpoint/templates/index.jinja2 @@ -1,51 +1,23 @@ {% extends "base.jinja2" %}{% load static %}{% load thumbnail %}{% load slug_ru %} -{% block META_OG %}{% comment %} РАЗМЕТКА Open Graph ДЛЯ СОЦ-СЕТЕЙ - подробности: https://habr.com/ru/company/macloud/blog/555082/{% endcomment %} - {% comment %} Уникальное название страницы. - Используется парсерами URL-адресов в социальных сетях, таких как Twitter или Facebook{% endcomment %} - {% comment %} Уникальное описание страницы. - Используется парсерами URL-адресов в социальных сетях, таких как Twitter или Facebook.{% endcomment %} - {% comment %} Изображение, отображаемое, когда вы - делитесь ссылкой на страницу в социальных сетях, приложениях чата или других сайтах, - которые очищают URL-адреса. - В идеале это должно быть квадратное изображение с важным содержанием, размещенным - в центре квадрата в прямоугольнике с соотношением сторон 2:1. Это гарантирует, - что изображение будет хорошо смотреться на карточках с изображениями прямоугольной - и квадратной формы.{% endcomment %} - {% comment %} - Описание изображения. - Не используйте этот метатег, если изображение носит чисто декоративный характер - и не содержит значимой информации. Программы чтения с экрана игнорируют - изображение, если мы предоставлен замещающий текст.{% endcomment %} - {% comment %} Естественный язык страницы.{% endcomment %} - {% comment %} Тип контента, которым вы делитесь, - например website, article, или video.movie{% endcomment %} - {% comment %} Канонический URL страницы. - Обязательное свойство для допустимых страниц Open Graph.{% endcomment %} - {% comment %} определяет, как будут выглядеть - карточки при публикации в Twitter. Есть два варианта для веб-сайтов: summary - и summary_large_image{% endcomment %} - - {% endblock %} - - -{% block Title %}{% if TAGS_L %}Тема: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} - {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST %}Страница {{ PAGE_OF_LIST|add:'1' }}{% else %}Главная{% endif %}{% endblock %} -{% block canonical %}https://cadpoint.ru{% if TAGS_L %}{{ TAGS_S }}{% endif %}{% if PAGE_OF_LIST %}/p{{ PAGE_OF_LIST }}{% endif %}{% endblock %} -{% block Description %}CADpoint / {% if TAGS_L %}тег: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} / {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST %}Страница {{ PAGE_OF_LIST|add:'1' }}{% else %}Главная{% endif %}{% endblock %} -{% block Keywords %}cadpoint, {% for I in TAGS_IN_PAGE %}{{ I.name }}, {% endfor %}новости{% if PAGE_OF_LIST %} , стр. {{ PAGE_OF_LIST|add:'1' }}{% endif %}{% endblock %} -{% block Date4Meta %}{{ LENTA.0.tdContentPublishUp|date:'c' }}{% endblock %}" -{% block Last4Meta %}{{ LENTA.0.dtContentTimeStamp|date:'c' }}{% endblock %}" -{% block Expires4Meta %}{% now 'c' %}{% endblock %}" - +{% block page_title %}{% if EMPTY_STATE_TITLE %}{{ EMPTY_STATE_TITLE }}{% elif SELECTED_TAGS %}Тема: {% for I in SELECTED_TAGS %}{{ I.name }} - {% endfor %}{% elif TAGS_L %}Тема: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} - {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not EMPTY_STATE_TITLE %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS and not EMPTY_STATE_TITLE %}Главная{% endif %} | CADpoint{% endblock %} +{% block meta_title %}{% if EMPTY_STATE_TITLE %}{{ EMPTY_STATE_TITLE }}{% elif SELECTED_TAGS %}Тема: {% for I in SELECTED_TAGS %}{{ I.name }} - {% endfor %}{% elif TAGS_L %}Тема: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} - {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not EMPTY_STATE_TITLE %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS and not EMPTY_STATE_TITLE %}Главная{% endif %} | CADpoint{% endblock %} +{% block og_title %}{% if EMPTY_STATE_TITLE %}{{ EMPTY_STATE_TITLE }}{% elif SELECTED_TAGS %}Тема: {% for I in SELECTED_TAGS %}{{ I.name }} - {% endfor %}{% elif TAGS_L %}Тема: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} - {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not EMPTY_STATE_TITLE %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS and not EMPTY_STATE_TITLE %}Главная{% endif %} | CADpoint{% endblock %} +{% block twitter_title %}{% if EMPTY_STATE_TITLE %}{{ EMPTY_STATE_TITLE }}{% elif SELECTED_TAGS %}Тема: {% for I in SELECTED_TAGS %}{{ I.name }} - {% endfor %}{% elif TAGS_L %}Тема: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} - {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not EMPTY_STATE_TITLE %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS and not EMPTY_STATE_TITLE %}Главная{% endif %} | CADpoint{% endblock %} +{% block Description %}{% if EMPTY_STATE_MESSAGE %}{{ EMPTY_STATE_MESSAGE }}{% else %}CADpoint / {% if SELECTED_TAGS %}тег: {% for I in SELECTED_TAGS %}{{ I.name }} / {% endfor %}{% elif TAGS_L %}тег: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} / {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not SELECTED_TAGS %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS %}Главная{% endif %}{% endif %}{% endblock %} +{% block meta_description %}{% if EMPTY_STATE_MESSAGE %}{{ EMPTY_STATE_MESSAGE }}{% else %}CADpoint / {% if SELECTED_TAGS %}тег: {% for I in SELECTED_TAGS %}{{ I.name }} / {% endfor %}{% elif TAGS_L %}тег: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} / {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not SELECTED_TAGS %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS %}Главная{% endif %}{% endif %}{% endblock %} +{% block og_description %}{% if EMPTY_STATE_MESSAGE %}{{ EMPTY_STATE_MESSAGE }}{% else %}CADpoint / {% if SELECTED_TAGS %}тег: {% for I in SELECTED_TAGS %}{{ I.name }} / {% endfor %}{% elif TAGS_L %}тег: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} / {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not SELECTED_TAGS %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS %}Главная{% endif %}{% endif %}{% endblock %} +{% block twitter_description %}{% if EMPTY_STATE_MESSAGE %}{{ EMPTY_STATE_MESSAGE }}{% else %}CADpoint / {% if SELECTED_TAGS %}тег: {% for I in SELECTED_TAGS %}{{ I.name }} / {% endfor %}{% elif TAGS_L %}тег: {% for I in TAGS_IN_PAGE %}{% if I.slug in TAGS_L %}{{ I.name }} / {% endif %}{% endfor %}{% endif %}{% if PAGE_OF_LIST and not SELECTED_TAGS %}Страница {{ PAGE_OF_LIST|add:'1' }}{% elif not SELECTED_TAGS %}Главная{% endif %}{% endif %}{% endblock %} +{% block Keywords %}cadpoint, {% if SELECTED_TAGS %}{% for I in SELECTED_TAGS %}{{ I.name }}, {% endfor %}{% else %}{% for I in TAGS_IN_PAGE %}{{ I.name }}, {% endfor %}{% endif %}новости{% if PAGE_OF_LIST %} , стр. {{ PAGE_OF_LIST|add:'1' }}{% endif %}{% endblock %} {% block CONTENT %}{# #} {##}{% endblock %} diff --git a/cadpoint/templates/item.jinja2 b/cadpoint/templates/item.jinja2 index 021ad67..0f4d78f 100644 --- a/cadpoint/templates/item.jinja2 +++ b/cadpoint/templates/item.jinja2 @@ -1,46 +1,71 @@ {% extends "base.jinja2" %}{% load static %}{% load thumbnail %}{% load slug_ru %} -{% block META_OG %}{% comment %} РАЗМЕТКА Open Graph ДЛЯ СОЦ-СЕТЕЙ - подробности: https://habr.com/ru/company/macloud/blog/555082/ и https://ogp.me/{% endcomment %} - {% comment %} Уникальное название страницы. - Используется парсерами URL-адресов в социальных сетях, таких как Twitter или Facebook{% endcomment %} - {% comment %} Уникальное описание страницы. - Используется парсерами URL-адресов в социальных сетях, таких как Twitter или Facebook.{% endcomment %} - {% comment %} Изображение, отображаемое, когда вы - делитесь ссылкой на страницу в социальных сетях, приложениях чата или других сайтах, - которые очищают URL-адреса. - В идеале это должно быть квадратное изображение с важным содержанием, размещенным - в центре квадрата в прямоугольнике с соотношением сторон 2:1. Это гарантирует, - что изображение будет хорошо смотреться на карточках с изображениями прямоугольной - и квадратной формы.{% endcomment %} - {% comment %} - Описание изображения. - Не используйте этот метатег, если изображение носит чисто декоративный характер - и не содержит значимой информации. Программы чтения с экрана игнорируют - изображение, если мы предоставлен замещающий текст.{% endcomment %} - {% comment %} Естественный язык страницы.{% endcomment %} - {% comment %} Тип контента, которым вы делитесь, - например website, article, или video.movie{% endcomment %} - {% comment %} Канонический URL страницы. - Обязательное свойство для допустимых страниц Open Graph.{% endcomment %} - {% comment %} определяет, как будут выглядеть - карточки при публикации в Twitter. Есть два варианта для веб-сайтов: summary - и summary_large_image{% endcomment %}{% for t in ITEM.tags.all%} - {% comment %} определяет тематику статьи, ключевые слова или хэштеги. Если тематик несколько, перечислите их в разных метатегах.{% endcomment %}{% endfor %} - - +{% block page_title %}{{ ITEM.szContentHead|safe_html_ss }} | CADpoint{% endblock %} + +{% block canonical %}{{ request.scheme }}://{{ request.get_host }}/item/{{ ITEM.id }}-{{ ITEM.szContentSlug }}{% endblock %} +{% block og_url %}{{ request.scheme }}://{{ request.get_host }}/item/{{ ITEM.id }}-{{ ITEM.szContentSlug }}{% endblock %} + +{% block Description %}{% if ITEM.szContentDescription %}{{ ITEM.szContentDescription }}{% else %}{{ ITEM.szContentHead|safe_html_ss }}{% endif %}{% endblock %} + +{% block meta_title %}{{ ITEM.szContentHead|safe_html_ss }} | CADpoint{% endblock %} + +{% block og_title %}{{ ITEM.szContentHead|safe_html_ss }} | CADpoint{% endblock %} + +{% block twitter_title %}{{ ITEM.szContentHead|safe_html_ss }} | CADpoint{% endblock %} + +{% block meta_description %}{% if ITEM.szContentDescription %}{{ ITEM.szContentDescription }}{% else %}{{ ITEM.szContentHead|safe_html_ss }}{% endif %}{% endblock %} + +{% block og_description %}{% if ITEM.szContentDescription %}{{ ITEM.szContentDescription }}{% else %}{{ ITEM.szContentHead|safe_html_ss }}{% endif %}{% endblock %} + +{% block twitter_description %}{% if ITEM.szContentDescription %}{{ ITEM.szContentDescription }}{% else %}{{ ITEM.szContentHead|safe_html_ss }}{% endif %}{% endblock %} + +{% block Keywords %}cadpoint{% if ITEM.szContentKeywords %}, {{ ITEM.szContentKeywords }}{% endif %}{% with item_tags=ITEM.tags.all %}{% if item_tags %}, {% for t in item_tags %}{{ t.name }}{% if not forloop.last %}, {% endif %}{% endfor %}{% endif %}{% endwith %}, новости{% endblock %} + +{% block og_type %}article{% endblock %} + +{% block og_image %}{% if ITEM.imgContentPreview is None %}{% static 'img/og-cadpoint-default.png' %}{% else %}{% thumbnail ITEM.imgContentPreview 680x680 upscale %}{% endif %}{% endblock %} + +{% block og_image_alt %}{{ ITEM.szContentHead|safe_html_ss }} | CADpoint{% endblock %} + +{% block twitter_card %}summary_large_image{% endblock %} + +{% block twitter_image %}{% if ITEM.imgContentPreview is None %}{% static 'img/og-cadpoint-default.png' %}{% else %}{% thumbnail ITEM.imgContentPreview 680x680 upscale %}{% endif %}{% endblock %} + +{% block ExtraHead %}{{ block.super }}{% for t in ITEM.tags.all %} + {% endfor %} + + + {% endblock %} - -{% block Title %}{{ ITEM.szContentHead|safe_html_ss }}{% endblock %} -{% block canonical %}https://cadpoint.ru/item/{{ ITEM.id }}-{{ ITEM.szContentSlug }}{% endblock %} -{% block Description %}CADpoint: {% if ITEM.szContentDescription %}{{ ITEM.szContentDescription }}{% else %}{{ ITEM.szContentHead|safe_html_ss }}{% endif %}{% endblock %} -{% block Keywords %}cadpoint, {% for t in ITEM.tags.all %}{{ t.name }}, {% endfor %}{{ ITEM.szContentKeywords }}, новости{% endblock %} -{% block Date4Meta %}{{ ITEM.tdContentPublishUp|date:'c' }}{% endblock %}" -{% block Last4Meta %}{{ ITEM.dtContentTimeStamp|date:'c' }}{% endblock %}" -{% block Expires4Meta %}{% now 'c' %}{% endblock %}" - - {% block CONTENT %}{# #} -{# #}{% if PER_PAGE %} + {# #}{% if PER_PAGE %}