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