Документация по расширению Discourse с помощью плагинов, тем и компонентов тем, работе с исходным кодом и использованию API Discourse.
Введение
- Введение: Введение в разработку Discourse
Среды разработки
- Контейнер разработки: Разработка Discourse с использованием контейнера разработки
- GitHub Codespaces: Разработка Discourse в GitHub Codespaces
- Настройка Docker: Установка Discourse для разработки с помощью Docker
- Настройка macOS: Установка Discourse на macOS для разработки
- Настройка Ubuntu/Debian: Установка Discourse на Ubuntu или Debian для разработки
- Настройка Windows: Установка Discourse на Windows для разработки
- Плагины без Docker: Установка плагинов в среде разработки без Docker
- Локальная настройка: Настройка локальной среды разработки Discourse?
- Настройка multisite: Настройка среды разработки multisite
- Настройка Fedora: Настройка Discourse для разработки на Fedora Linux
Код и внутренняя архитектура
- Компоненты Ember: Добавление компонентов Ember в Discourse
- Линтинг и форматирование: Автоматический линтинг и форматирование кода перед коммитами
- Приемочные тесты: Написание приемочных и компонентных тестов для кода Ember в Discourse
- Запуск тестовых наборов: Как запускать наборы QUnit-тестов для ядра Discourse, плагинов и тем
- Совместимость версий: Фиксация версий плагинов и тем для старых установок Discourse (ветки d-compat)
- Владельцы объектов Ember: Владельцы объектов Ember (getOwner, внедрение сервисов и т. д.)
- Производительность JS: Использование инструмента Google «tachometer» для измерения изменений производительности 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 и Theme CLI
- Theme CLI: Установка консольного приложения Discourse Theme CLI для помощи в создании тем
- Структура тем: Структура тем и компонентов тем
- Несколько JS-файлов: Разделение JavaScript-кода темы на несколько файлов
- Несколько SCSS-файлов: Разделение SCSS-кода темы на несколько файлов
- Настройки темы: Добавление настроек в тему Discourse
- Объекты для настроек темы: Тип «Объект» для настроек темы
- Миграция настроек: Миграция настроек тем Discourse
- Метаданные темы: Добавление метаданных и скриншотов в тему
- Переменные ядра: Использование переменных ядра Discourse в вашей теме
- Локализуемые строки: Добавление локализуемых строк в темы и компоненты тем
- Сквозное тестирование: Сквозное системное тестирование для тем и компонентов тем
- Минимизация обслуживания: Минимизация обслуживания пользовательских настроек темы
- Размеры шрифтов: Изменение размеров шрифтов в ваших темах
- Включение ресурсов: Включение ресурсов (например, изображений, шрифтов) в темы и компоненты
- Пользовательские значки: Замена стандартных SVG-значков Discourse пользовательскими значками в теме
- Темный режим: Обновление тем и плагинов для поддержки автоматического темного режима
- Модификаторы тем: Модификаторы тем: краткое введение
- Псевдоэлементы: Вставка текста или изображений в любое место на вашем сайте с помощью CSS-псевдоэлементов
- Компонент шрифта: Создание и обмен компонентом шрифта
- Язык Highlight.JS: Установка нового языка для Highlight.JS через компонент темы
- Контент главной страницы: Добавление пользовательского контента, отображаемого только на главной странице
- Формат сообщений: Поддержка Message Format для локализации
- Глобальные изменения значков: Изменение значков глобально
- Альтернативные значки: Альтернативные значки
- Стиль вики-поста: Изменение стиля вики-поста
- Цветовая схема: Создание и обмен цветовой схемой
- Меню навигации: Использование параметра запроса
navigation_menuдля предварительного просмотра боковой панели или других опций - Стили контента постов: Настройка содержимого постов с помощью собственных стилей
- Скриншоты тем: Добавление превью-скриншотов к темам Discourse
- Настраиваемые настройки сайта: Управление настройками сайта с помощью тем
Общие руководства
- Белый лейбл мобильных приложений: Что следует учитывать перед решением о применении белого лейбла для мобильных приложений 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. Завершение