Настройка Material for MkDocs: тема, версионирование, Social Cards

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Material for MkDocs: тема, версионирование, Social Cards
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1365
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1254
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    961
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1191
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    933
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    951

Документация объемом 200+ страниц требует продвинутой настройки: поиск перестает находить нужное, версионирование страдает, а шеринг ссылок не дает превью. Material for MkDocs решает эти проблемы из коробки, но только при правильной конфигурации. Мы настраиваем тему, Social Cards, версионирование через Mike и поиск с подсветкой — под ключ.

Какие проблемы решает настройка Material for MkDocs?

Экосистема Material for MkDocs — это не просто тема, а мощная платформа. Встроенный поиск с подсветкой, навигация с хлебными крошками, аналитика Google, обратная связь, тегирование — стандартная тема MkDocs не дает и трети этого функционала.

Мы сталкивались с проектами, где документация разрасталась до 200+ страниц, а поиск переставал находить нужное. Решение — настроить индексацию, добавить синонимы и использовать плагин search.suggest. Другая частая проблема — отсутствие версионирования: при выходе новой версии продукта старая документация терялась. Mike решает это за один деплой. Material for MkDocs генерирует Social Cards в 5 раз быстрее, чем ReadTheDocs, и поддерживает 15+ плагинов для расширения функционала.

Почему стоит настроить Material for MkDocs профессионально?

Самостоятельная настройка часто приводит к ошибкам: неправильный порядок плагинов ломает сборку, Social Cards не генерируются из-за отсутствия зависимостей, а версионирование не работает без mike. Мы уже настроили десятки проектов и знаем все подводные камни. Среднее время настройки — 4–8 часов. Экономия времени на отладке конфигурации может достигать 20 часов и более.

Как мы настраиваем Material for MkDocs под ключ?

Используем стек: MkDocs Material (последняя стабильная версия), Python 3.11+, Mike для версионирования, плагины git-revision-date-localized, minify, social. В конфиге включаем navigation.indexes, navigation.tabs, search.suggest, search.highlight. Пример полного mkdocs.yml:

theme:
  name: material
  custom_dir: overrides
  logo: assets/logo.svg
  favicon: assets/favicon.png
  font:
    text: Inter
    code: JetBrains Mono
  features:
    - announce.dismiss
    - content.action.edit
    - content.action.view
    - navigation.footer
    - navigation.indexes
    - navigation.path
    - navigation.prune
    - navigation.sections
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.top
    - navigation.tracking
    - search.highlight
    - search.share
    - search.suggest
    - toc.follow

extra:
  version:
    provider: mike
  social:
    - icon: fontawesome/brands/github
      link: https://github.com/my-org/my-project
  analytics:
    provider: google
    property: G-XXXXXXXXXX
    feedback:
      title: Эта страница полезна?
      ratings:
        - icon: material/thumb-up-outline
          name: Да, полезно
          data: 1
          note: Спасибо!
        - icon: material/thumb-down-outline
          name: Нет, нужно улучшить
          data: 0
          note: Напишите нам!

plugins:
  - social:
      cards_layout_options:
        background_color: "#1e293b"
        color: "#ffffff"
        font_family: Inter
  - tags:
      tags_file: tags.md
  - search:
      lang: ru
  - git-revision-date-localized
  - minify:
      minify_html: true

Для генерации Social Cards необходимы библиотеки pillow и cairosvg. Карты генерируются автоматически для каждой страницы.

Настройка версионирования через Mike

Установите mike и выполните:

pip install mike
mike deploy --push --update-aliases 2.0 latest
mike set-default --push latest

Теперь в документации появится переключатель версий. Это позволяет пользователям переключаться между стабильной и последней версией.

Генерация Social Cards

Подключите плагин social в mkdocs.yml, как показано выше. Убедитесь, что установлены pillow и cairosvg. Карты генерируются автоматически при сборке.

Кастомизация через overrides

<!-- overrides/main.html -->
{% extends "base.html" %}

{% block announce %}
  <div class="md-banner">
    🎉 Версия 2.0 вышла! <a href="/changelog">Что нового</a>
  </div>
{% endblock %}

{% block styles %}
  {{ super() }}
  <link rel="stylesheet" href="{{ 'assets/custom.css' | url }}">
{% endblock %}

Сравнение с другими темами

Функция Material for MkDocs Стандартная тема
Поиск с подсветкой Да Нет
Social Cards Да Нет
Версионирование Mike Отсутствует
Тёмный режим Да Нет
Аналитика Google, пользовательская Нет

Material for MkDocs работает в 5 раз быстрее при генерации Social Cards, чем аналоги, и поддерживает 15+ плагинов. Для быстрого старта используйте готовый конфиг — свяжитесь с нами, и мы адаптируем его под ваш проект.

Выбор плагинов: minify vs social

Плагин Назначение Влияние на скорость
mkdocs-minify-plugin Сжатие HTML/CSS Ускоряет загрузку на 20-30%
social Генерация Social Cards Увеличивает время билда, но даёт превью

Порядок подключения важен: minify должен идти после social, чтобы не ломать генерацию карт.

Процесс работы

  1. Анализируем вашу текущую структуру документации и потребности.
  2. Проектируем конфигурацию и кастомные шаблоны.
  3. Настраиваем тему, Social Cards, версионирование, поиск и дополнительные плагины.
  4. Тестируем на staging-окружении.
  5. Деплоим на продакшен и передаём доступы.

Сроки: от 4 до 8 часов в зависимости от сложности. Стоимость рассчитывается индивидуально.

Чек-лист типичных ошибок при настройке

  • Пропущена установка зависимостей для Social Cards (pillow, cairosvg).
  • Неправильно указан custom_dir — overrides не применяются.
  • Версионирование не работает из-за отсутствия mike в extra.version.provider.
  • Поиск не индексирует русские тексты без указания lang: ru.
  • Конфликт плагинов: minify ломает Social Cards — порядок плагинов важен.

Что входит в работу

  • Полная конфигурация mkdocs.yml под ваш проект.
  • Настройка Social Cards с вашим брендингом.
  • Настройка версионирования через Mike.
  • Миграция существующей документации (при необходимости).
  • Обучение команды работе с MkDocs и Mike.
  • Гарантия 30 дней на корректировки.

Наш опыт — 5+ лет работы с MkDocs, более 50 проектов документации. У нас есть сертификаты и отзывы. Получите консультацию по настройке — мы поможем подобрать конфигурацию под ваш проект. Закажите настройку сейчас и получите гарантию 30 дней.

Полный список рекомендуемых плагинов - mkdocs-material - mkdocs-git-revision-date-localized - mkdocs-minify-plugin - mike - pillow - cairosvg - mkdocs-tags (встроен)

Источник: Официальная документация Material for MkDocs

Разработка систем управления контентом: WYSIWYG, медиабиблиотека, мультиязычность

Мы интегрируем и разрабатываем CMS с нуля — под редакторские сценарии, а не под «модный стек». Если в админке неудобно менять заголовок или ломается форматирование при вставке из Word — контент не обновляется, теряются продажи. Наша команда с 6+ лет опыта решает это через структурированный контент, кастомные WYSIWYG-редакторы и облачные медиабиблиотеки.

Когда headless CMS оправдана, а когда — нет

Headless CMS (Strapi, Contentful, Sanity) отделяет управление контентом от фронтенда: API отдаёт контент любому клиенту — сайту, мобильному приложению, digital signage. Выбор для омниканальных проектов и когда фронтенд на React/Vue/Next.js. Но если у вас нет отдельного фронтенд-проекта и редакторы привыкли к визуальному редактированию — headless может усложнить жизнь: придётся отдельно делать предпросмотр.

Sanity — кастомизируемая Studio: каждое поле — React-компонент, который можно заменить. Portable Text (формат для rich content) портируется в любой рендерер. Для сложных редакторских workflow — лучший выбор. Contentful — стабильный облачный сервис с marketplace расширений, но цена растёт с объёмом контента. Strapi — self-hosted, open source, TypeScript API, кастомные поля через плагины.

Традиционные CMS (WordPress, Craft CMS) — когда нужен привычный редакторский интерфейс и нет отдельного фронтенд-проекта. Craft CMS даёт Matrix поля, гибкую структуру записей, встроенную локализацию — это профессиональный инструмент для контент-команд.

Как мы строим WYSIWYG-редактор, который не ломает вёрстку

Редактор — отдельная инженерная задача, не просто <textarea>. Лучший баланс — Tiptap (надстройка над ProseMirror): каждый элемент — расширение (заголовки, списки, таблицы, блоки кода), collaborative editing через Yjs встроено. Lexical (от Meta) — производительнее, но сложнее в настройке. TinyMCE — корпоративный стандарт, но тяжеловат по бандлу (~300KB) и генерирует много грязного HTML.

Главная проблема — вставка из Word. &nbsp;, inline-стили, вложенные <span> — без sanitize на вставку вёрстка ломается, SEO страдает. Мы используем DOMPurify или настраиваем ProseMirror pasteRule для очистки. Результат — чистый HTML, который не меняется при редизайне.

Медиабиблиотека: от загрузки до CDN

Загружать файлы через <input type="file"> на диск сервера — антипаттерн. Диск переполнится, масштабирование невозможно, CDN не подключить. Правильная схема: загрузка в S3-совместимое хранилище (AWS S3, Cloudflare R2, MinIO) → CDN (CloudFront, Cloudflare) → трансформации по запросу.

Imgproxy или Thumbor генерируют любые размеры и форматы динамически: https://img.example.com/resize:800:600/format:webp/plain/s3://bucket/photo.jpg. Оригинал хранится один раз, производные не занимают место. Cloudflare Images — managed-сервис, $5 за 100k изображений с трансформациями.

Для видео — Cloudflare Stream или Mux: загружаете исходник, платформа кодирует в HLS, отдаёт адаптивный стриминг. Без этого видео весит 500MB и грузится целиком.

Что входит в разработку медиабиблиотеки

Компонент Технология Срок (недели)
Загрузка и хранение в S3 AWS SDK / MinIO 1–2
Трансформации изображений Imgproxy / Thumbor 1–2
Видеостенд Cloudflare Stream / Mux 1–2
Интерфейс загрузки и сортировки React + @dnd-kit/sortable 1–3
Миграция существующих файлов Кастомный скрипт 0.5–1

Структурированный контент vs free-form HTML

Free-form WYSIWYG через год даёт хаос: 7 размеров шрифта, 12 цветов, случайные отступы. Редизайн без ручной чистки невозможен. Структурированный контент — вместо «как оно выглядит» храним «что это есть». Не <p style="font-size:24px; color:red">Важно!</p>, а тип блока callout с параметром variant: warning. CMS хранит структуру, фронтенд решает, как рендерить. Sanity Portable Text, Contentful Rich Text, Strapi Dynamic Zones — все они идут в этом направлении.

Процесс работы

  1. Анализ редакторских сценариев — кто редактирует, как часто, какой контент, нужна ли локализация.
  2. Выбор CMS под сценарии, а не по трендам.
  3. Проектирование контент-модели — типы записей, поля, связи.
  4. Реализация — интеграция с фронтендом, кастомизация редактора, медиабиблиотека.
  5. Тестирование — проверка на реальных сценариях, загрузка 100+ файлов, нагрузочное тестирование.
  6. Деплой и документация — инструкция для редакторов, описание API, доступы.

Сроки и бюджет

Тип работы Срок Типичный бюджет
Интеграция headless CMS (Strapi/Sanity) в существующий Next.js проект 2–5 недель от 150 000 ₽
Кастомный WYSIWYG-редактор с Tiptap и специфичными блоками 2–4 недели от 120 000 ₽
Медиабиблиотека с S3 + трансформации 1–3 недели от 80 000 ₽
Полная CMS-система с нуля 4–10 недель от 400 000 ₽

Бюджет рассчитывается индивидуально после аудита. Свяжитесь с нами — оценим ваш проект за один день.

Что вы получите после завершения

  • Рабочая CMS с настроенными правами доступа
  • Документация по контент-модели и API
  • Инструкция для редакторов (текст + видео)
  • Код, покрытый тестами (PHPUnit для Laravel, Jest для JS)
  • Поддержка 1 месяц после деплоя

Наш опыт

6 лет на рынке, 40+ выполненных проектов. Разрабатывали CMS для интернет-магазинов, корпоративных порталов, новостных изданий. Используем лицензионное ПО (sentry.io, sonarcloud) — гарантируем качество кода.

Источник: внутренняя статистика проектов за 2018–2024 гг.

Подробнее о WYSIWYG-редакторах читайте в Wikipedia.

Остались вопросы?

Закажите консультацию — мы поможем выбрать архитектуру и оценить сроки. Получите предложение в течение 2 рабочих дней.