Документация по расширению Discourse с помощью плагинов, тем и компонентов тем, работе с исходным кодом ядра и использованию API Discourse.
Введение
- Введение: Введение в разработку для Discourse
Окружения разработки
- Dev Container: Разработка Discourse с использованием Dev Container
- GitHub Codespaces: Разработка Discourse в GitHub Codespaces
- Настройка Docker: Установка Discourse для разработки с использованием Docker
- Настройка macOS: Установка Discourse на macOS для разработки
- Настройка Ubuntu/Debian: Установка Discourse на Ubuntu или Debian для разработки
- Настройка Windows: Установка Discourse на Windows для разработки
- Плагины без Docker: Установка плагинов в вашем окружении разработки без Docker
- Локальная настройка: Как настроить локальное окружение разработки Discourse?
- Мульти-сайтовая настройка: Настройка мульти-сайтового окружения разработки
- Настройка Fedora: Настройка Discourse для разработки на Fedora Linux
Код и внутреннее устройство
- Компоненты Ember: Добавление компонентов Ember в Discourse
- Линтинг и форматирование: Автоматический линтинг и форматирование кода перед коммитами
- Приёмочные тесты: Написание приёмочных тестов и тестов компонентов для кода Ember в Discourse
- Запуск наборов тестов: Как запускать наборы тестов QUnit для ядра, плагинов и тем Discourse
- Совместимость версий: Фиксация версий плагинов и тем для старых установок Discourse (ветки d-compat)
- Владельцы объектов Ember: Владельцы объектов Ember (getOwner, внедрение сервисов и т.д.)
- Производительность JS: Использование ‘tachometer’ от Google для измерения изменений производительности JS в Discourse
- CI с GitHub Actions: Настройка непрерывной интеграции с использованием GitHub Actions
- Расширения Markdown: Руководство разработчика по расширениям Markdown
- Преобразование модальных окон: Преобразование модальных окон из устаревших контроллеров в новый API компонента DModal
- API DModal: Использование API DModal для отображения модальных окон (также известных как всплывающие окна/диалоги) в Discourse
- JS API: Использование JS API
- Коннекторы плагинных выходов: Использование коннекторов плагинных выходов из темы или плагина
- modifyClass: Использование modifyClass для изменения поведения ядра
- Создание маршрутов: Создание маршрутов в Discourse и отображение данных
- Метод аутентификации: Добавление нового «управляемого» метода аутентификации в Discourse
- Случайная сериализация моделей ActiveRecord: Предотвращение случайной сериализации моделей ActiveRecord
- Переопределение шаблонов: (не рекомендуется) Переопределение шаблонов Discourse из темы или плагина
- Сервисные объекты: Использование сервисных объектов в Discourse
- Системные спецификации: Написание сквозных системных спецификаций для пользовательского интерфейса Discourse
- FormKit: Набор инструментов Discourse для отображения форм.
- Триггеры AppEvents: Справочник по триггерам AppEvents
- Трансформеры: Использование трансформеров для настройки клиентских значений и поведения
- Настройка списка тем: Настройка списка тем
- Руководство по CSS: Руководство по классам CSS с использованием BEM
- Подсказки типов и валидация JS: Подсказки типов и валидация JavaScript (typescript)
- Проектирование для устройств: Проектирование для разных устройств (касание и наведение)
- Проектирование для адаптивной ширины: Проектирование для адаптивной ширины (точки перелома, область просмотра и контейнеры)
- Примитивы жестов: Перетаскивание, изменение размера и примитивы жестов
Плагины
- Базовый плагин: Разработка плагинов Discourse - Часть 1 - Создание базового плагина
- Плагинный выход: Разработка плагинов Discourse - Часть 2 - Подключение к плагинному выходу
- Настройки сайта: Разработка плагинов Discourse - Часть 3 - Добавление пользовательских настроек сайта
- Настройка Git: Разработка плагинов Discourse - Часть 4 - Настройка git
- Административный интерфейс: Разработка плагинов Discourse - Часть 5 - Добавление административного интерфейса
- Приёмочные тесты: Разработка плагинов Discourse - Часть 6 - Добавление приёмочных тестов
- Публикация плагина: Разработка плагинов Discourse - Часть 7 - Публикация вашего плагина
- Новые локали: Добавление новой локали из плагина
- Интеграция чата: Добавление нового провайдера в discourse-chat-integration
- Расширение markdown-it: Переупаковка расширения markdown-it в плагин Discourse
- Автозагрузка Rails: Структурирование плагина для автозагрузки Rails
Темы и компоненты
- Разработка тем: Разработка тем и компонентов тем Discourse
- Быстрая справка: Быстрый справочник для разработчиков тем
- Руководство для дизайнеров: Руководство дизайнера по началу работы с темами в Discourse
- Theme Creator: Начало работы с Theme Creator и CLI тем
- CLI тем: Установка консольного приложения Discourse Theme CLI для помощи в создании тем
- Структура темы: Структура тем и компонентов тем
- Несколько файлов JS: Разделение JavaScript темы на несколько файлов
- Несколько файлов SCSS: Разделение SCSS темы на несколько файлов
- Настройки темы: Добавление настроек в вашу тему Discourse
- Объекты для настроек темы: Тип Objects для настройки темы
- Миграция настроек: Миграция настроек темы Discourse
- Метаданные темы: Добавление метаданных и скриншотов в тему
- Переменные ядра: Использование переменных ядра Discourse в вашей теме
- Локализуемые строки: Добавление локализуемых строк в темы и компоненты тем
- E2E-тестирование: Сквозное системное тестирование для тем и компонентов тем
- Минимизация обслуживания: Минимизация обслуживания кастомизаций темы
- Размеры шрифтов: Изменение размеров шрифтов в ваших темах
- Включение ресурсов: Включение ресурсов (например, изображений, шрифтов) в темы и компоненты
- Пользовательские значки: Замена значков SVG по умолчанию в Discourse пользовательскими значками в теме
- Тёмный режим: Обновление тем и плагинов для поддержки автоматического тёмного режима
- Модификаторы темы: Модификаторы темы: Краткое введение
- Псевдоэлементы: Вставка текста или изображений в любом месте вашего сайта с использованием псевдоэлементов CSS
- Компонент шрифта: Создание и обмен компонентом темы шрифта
- Язык Highlight.JS: Установка нового языка для Highlight.JS через компонент темы
- Контент главной страницы: Добавление пользовательского контента, который отображается только на вашей главной странице
- Формат сообщений: Поддержка Message Format для локализации
- Глобальные изменения значков: Изменение значков глобально
- Альтернативные значки: Альтернативные значки
- Стиль вики-поста: Изменение стиля вики-поста
- Цветовая схема: Создание и обмен цветовой схемой
- Меню навигации: Использование параметра запроса
navigation_menuдля предпросмотра боковой панели или других вариантов - Стили содержимого постов: Кастомизация содержимого постов с помощью собственных стилей
- Скриншоты темы: Добавление превью-скриншотов к темам Discourse
- Настройки сайта, управляемые темой: Управление настройками сайта с помощью тем
Общие руководства
- White-labeling мобильных приложений: На что стоит обратить внимание перед принятием решения о white-labeling мобильных приложений Discourse
- Пользовательские автоматизации: Создание пользовательских автоматизаций
- Публичный дамп данных: Публичный дамп данных Discourse
- AI-оценки: Запуск AI-оценок Discourse
Учебник по разработке тем
- 1 - Введение: Учебник по разработке тем: 1. Введение
- 2 - Удалённая тема: Учебник по разработке тем: 2. Создание удалённой темы
- 3 - CSS: Учебник по разработке тем: 3. CSS в темах
- 4 - Выходы: Учебник по разработке тем: 4. Использование выходов для вставки и замены контента
- 5 - Компоненты: Учебник по разработке тем: 5. Создание и использование компонентов
- 6 - JS API: Учебник по разработке тем: 6. Использование JS API
- 7 - Заключение: Учебник по разработке тем: 7. Итоги