Документация по расширению 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
- API JS: Использование API JS
- Коннекторы для точек вставки плагинов: Использование коннекторов для точек вставки плагинов из темы или плагина
- 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
- Конструктор тем: Начало работы с Конструктором тем и CLI тем
- CLI тем: Установка консольного приложения Discourse Theme CLI для помощи в создании тем
- Структура тем: Структура тем и компонентов тем
- Несколько JS-файлов: Разделение JavaScript темы на несколько файлов
- Несколько SCSS-файлов: Разделение SCSS темы на несколько файлов
- Настройки тем: Добавление настроек в вашу тему Discourse
- Объекты для настроек тем: Тип объектов для настроек темы
- Миграция настроек: Миграция настроек темы Discourse
- Метаданные темы: Добавление метаданных и скриншотов в тему
- Переменные ядра: Использование переменных ядра Discourse в вашей теме
- Локализуемые строки: Добавление локализуемых строк в темы и компоненты тем
- E2E-тестирование: Сквозное системное тестирование для тем и компонентов тем
- Минимизация поддержки: Минимизация поддержки кастомизаций тем
- Размеры шрифтов: Изменение размеров шрифтов в ваших темах
- Включение ресурсов: Включение ресурсов (например, изображений, шрифтов) в темы и компоненты
- Пользовательские иконки: Замена иконок SVG по умолчанию в Discourse на пользовательские иконки в теме
- Тёмный режим: Обновление тем и плагинов для поддержки автоматического тёмного режима
- Модификаторы тем: Модификаторы тем: краткое введение
- Псевдоэлементы: Вставка текста или изображений в любое место вашего сайта с помощью CSS-псевдоэлементов
- Компонент шрифтов: Создание и публикация компонента темы со шрифтом
- Язык Highlight.JS: Установка нового языка для Highlight.JS через компонент темы
- Контент главной страницы: Добавление пользовательского контента, который отображается только на главной странице
- Формат сообщений: Поддержка формата сообщений для локализации
- Глобальные изменения иконок: Изменение иконок глобально
- Альтернативные иконки: Альтернативные иконки
- Стиль постов вики: Изменение стиля постов вики
- Цветовая схема: Создание и публикация цветовой схемы
- Меню навигации: Использование параметра запроса
navigation_menuдля предпросмотра боковой панели или других опций - Стили контента постов: Кастомизация содержимого постов с помощью ваших собственных стилей
- Скриншоты тем: Добавление скриншотов предпросмотра в темы Discourse
- Настраиваемые настройки сайта: Управление настройками сайта с помощью тем
Общие руководства
- White-label мобильные приложения: Вещи, которые следует учитывать перед решением сделать white-label мобильные приложения Discourse
- Пользовательские автоматизации: Создание пользовательских автоматизаций
- Публичный дамп данных: Публичный дамп данных Discourse
- AI evals: Запуск AI evals в Discourse
Учебник по разработке тем
- 1 — Введение: Учебник разработчика тем: 1. Введение
- 2 — Удалённая тема: Учебник разработчика тем: 2. Создание удалённой темы
- 3 — CSS: Учебник разработчика тем: 3. CSS в темах
- 4 — Точки вставки: Учебник разработчика тем: 4. Использование точек вставки для вставки и замены контента
- 5 — Компоненты: Учебник разработчика тем: 5. Создание и использование компонентов
- 6 — API JS: Учебник разработчика тем: 6. Использование API JS
- 7 — Заключение: Учебник разработчика тем: 7. Завершение