Discourse 扩展的文档,包括插件、主题和主题组件,处理核心代码,以及使用 Discourse API。
简介
- 简介: Discourse 开发简介
开发环境
- 开发容器: 使用开发容器开发 Discourse
- GitHub Codespaces: 在 GitHub Codespaces 上开发 Discourse
- Docker 设置: 使用 Docker 为开发安装 Discourse
- macOS 设置: 为开发在 macOS 上安装 Discourse
- Ubuntu/Debian 设置: 为开发在 Ubuntu 或 Debian 上安装 Discourse
- Windows 设置: 为开发在 Windows 上安装 Discourse
- 非 Docker 插件: 在非 Docker 开发环境中安装插件
- 本地设置: 设置本地 Discourse 开发环境?
- 多站点设置: 设置多站点开发环境
- Fedora 设置: 在 Fedora Linux 上设置 Discourse 用于开发
代码和内部机制
- Ember 组件: 向 Discourse 添加 Ember 组件
- 检查和格式化: 在提交前自动检查和格式化代码
- 验收测试: 为 Discourse 中的 Ember 代码编写验收测试和组件测试
- 运行测试套件: 如何运行 Discourse 核心、插件和主题的 QUnit 测试套件
- 版本兼容性: 为旧版 Discourse 安装固定插件和主题版本 (.discourse-compatibility)
- Ember 对象所有权: Ember 对象所有权(getOwner、服务注入等)
- JS 性能: 使用 Google 的 ‘tachometer’ 测量 Discourse 中 JS 性能的变化
- 使用 GitHub Actions 进行持续集成: 使用 GitHub Actions 设置持续集成
- Markdown 扩展: Markdown 扩展的开发者指南
- 转换模态框: 将模态框从旧版控制器转换为新的 DModal 组件 API
- DModal API: 使用 DModal API 在 Discourse 中渲染模态窗口(又名弹出窗口/对话框)
- JS API: 使用 JS API
- 插件插槽连接器: 从主题或插件使用插件插槽连接器
- modifyClass: 使用 modifyClass 更改核心行为
- 创建路由: 在 Discourse 中创建路由并显示数据
- 认证方法: 向 Discourse 添加新的“托管”认证方法
- ActiveRecord 模型意外序列化: 防止 ActiveRecord 模型被意外序列化
- 覆盖模板: (不推荐) 从主题或插件覆盖 Discourse 模板
- 服务对象: 在 Discourse 中使用服务对象
- 系统规范: 为 Discourse 用户界面编写端到端系统规范
- FormKit: Discourse 用于渲染表单的工具包。
- AppEvents 触发器: AppEvents 触发器参考
- 转换器: 使用转换器自定义客户端值和行为
- 主题列表自定义: 自定义主题列表
- CSS 指南: 使用 BEM 的 CSS 类指南
- 为不同设备设计: 为不同设备设计(视口大小、触摸/悬停等)
插件
- 基础插件: 开发 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 主题 CLI 控制台应用程序以帮助您构建主题
- 主题结构: 主题和主题组件的结构
- 多个 JS 文件: 将主题 JavaScript 分成多个文件
- 多个 SCSS 文件: 将主题 SCSS 分成多个文件
- 主题设置: 向 Discourse 主题添加设置
- 主题设置对象: 主题设置的对象类型
- 迁移设置: 迁移 Discourse 主题设置
- 主题元数据: 向主题添加元数据和屏幕截图
- 核心变量: 在主题中使用 Discourse 核心变量
- 可本地化字符串: 向主题和主题组件添加可本地化字符串
- 端到端测试: 主题和主题组件的端到端系统测试
- 最小化维护: 最小化主题自定义的维护工作
- 字体大小: 在主题中更改字体大小
- 包含资源: 在主题和组件中包含资源(例如图像、字体)
- 自定义图标: 使用自定义图标替换 Discourse 的默认 SVG 图标(在主题中)
- 深色模式: 更新主题和插件以支持自动深色模式
- 主题修饰符: 主题修饰符:简要介绍
- 伪元素: 使用 CSS 伪元素在网站的任何位置插入文本或图像
- 字体组件: 创建和共享字体主题组件
- Highlight.JS 语言: 通过主题组件为 Highlight.JS 安装新语言
- 主页内容: 添加仅在主页上显示的新内容
- 消息格式: 消息格式支持本地化
- 全局图标更改: 全局更改图标
- 替代图标: 替代图标
- Wiki 帖子样式: 更改 Wiki 帖子的样式
- 配色方案: 创建和共享配色方案
- 导航菜单: 使用
navigation_menu查询参数预览侧边栏或其他选项 - 帖子内容样式: 使用您自己的样式自定义帖子内容
- 主题截图: 向 Discourse 主题添加预览截图
- 可主题化的站点设置: 使用主题控制站点设置
一般指南
- 白标移动应用: 决定白标 Discourse 移动应用之前需要考虑的事项
- 自定义自动化: 创建自定义自动化
- 公共数据转储: Discourse 公共数据转储
- AI 评估: 运行 Discourse AI 评估
主题开发教程
- 1 - 简介: 主题开发者教程:1. 简介
- 2 - 远程主题: 主题开发者教程:2. 创建远程主题
- 3 - CSS: 主题开发者教程:3. 主题中的 CSS
- 4 - 插槽: 主题开发者教程:4. 使用插槽插入和替换内容
- 5 - 组件: 主题开发者教程:5. 构建和使用组件
- 6 - JS API: 主题开发者教程:6. 使用 JS API
- 7 - 总结: 主题开发者教程:7. 总结