outline/outline

GitHub: outline/outline

一款开源、可自托管的团队知识库系统,支持实时协作和 Markdown,解决团队知识沉淀与文档协作需求。

Stars: 37439 | Forks: 3104

Outline

A fast, collaborative, knowledge base for your team built using React and Node.js.
Try out Outline using our hosted version at www.getoutline.com.

screenshot

TypeScript Prettier Styled Components

这是运行 [**Outline**](https://www.getoutline.com) 及其所有相关服务的源代码。如果您想使用 Outline,则不需要运行此代码,我们提供了托管版本的应用程序,访问地址为 [getoutline.com](https://www.getoutline.com)。您也可以在 [我们的指南](https://docs.getoutline.com/s/guide) 中找到有关使用 Outline 的文档。 如果您想运行自己的 Outline 副本或为开发做出贡献,那么这里适合您。 # 安装说明 请参阅 [文档](https://docs.getoutline.com/s/hosting/) 以在生产配置中运行您自己的 Outline 副本。 如果您对文档有疑问或改进建议,请在 [GitHub discussions](https://github.com/outline/outline/discussions) 中创建一个话题。 # 开发指南 如果您希望为 Outline 贡献更改、修复和改进,这里有一份关于 [设置开发环境](https://docs.getoutline.com/s/hosting/doc/local-development-5hEhFRXow7) 的简短指南。 ## 贡献 Outline 由一个小团队构建和维护 —— 我们非常感谢您帮助修复错误和添加功能! 在提交 pull request 之前,*请* 务必通过在 [GitHub](https://www.github.com/outline/outline/issues) 上创建 issue 或在其中评论来与核心团队进行讨论 —— 我们也希望在 [discussions](https://www.github.com/outline/outline/discussions) 中听到您的声音。通过这种方式,我们可以确保在编写代码之前就方法达成一致。这将大大提高您的代码被接受的可能性。 如果您正在寻找入门方式,以下是一些帮助我们改进 Outline 的途径: - [翻译](docs/TRANSLATION.md) 成其他语言 - 带有 [`good first issue`](https://github.com/outline/outline/labels/good%20first%20issue) 标签的 Issues - 性能改进,包括服务器端和前端 - 开发者体验和文档 - GitHub 上列出的错误和其他问题 ## 架构 如果您有兴趣贡献代码或想了解更多关于 Outline 代码库的信息, 请先参考 [架构文档](docs/ARCHITECTURE.md),以获取有关应用程序如何组合在一起的高层概览。 ## 调试 在开发环境中,Outline 会向控制台输出带有类别前缀的简单日志。在生产环境中,它输出 JSON 日志,这些日志可以很容易地被您首选的日志摄取 pipeline 解析。 HTTP 日志默认是禁用的,但可以通过设置 `DEBUG=http` 环境变量来启用。 可以通过设置 `DEBUG=*` 来启用所有类别的日志,或者通过设置 `DEBUG=database` 和 `LOG_LEVEL=debug` 来启用特定类别的日志,或者设置 `LOG_LEVEL=silly` 以获取非常详细的日志。 ## 测试 我们的目标是为应用程序的关键部分提供足够的测试覆盖率,而不是追求 100% 的单元测试覆盖率。所有 API 端点和任何与身份验证相关的内容都应该经过彻底的测试。 要添加新测试,请使用 [Jest](https://facebook.github.io/jest/) 编写测试,并在被测试代码旁边添加一个带有 `.test.ts` 扩展名的文件。 ``` # 运行所有测试 make test # 在 watch 模式下运行 backend 测试 make watch ``` 一旦使用 `make test` 创建了测试数据库,您可以直接使用 jest 单独运行前端和后端测试: ``` # 运行 backend 测试 yarn test:server # 在 watch 模式下运行特定 backend 测试 yarn test path/to/file.test.ts --watch # 运行 frontend 测试 yarn test:app ``` ## 迁移 Sequelize 用于创建和运行迁移,例如: ``` yarn db:create-migration --name my-migration yarn db:migrate yarn db:rollback ``` 或者,在测试数据库上运行迁移: ``` yarn db:migrate --env test ``` # 动态 ![Alt](https://repobeats.axiom.co/api/embed/ff2e4e6918afff1acf9deb72d1ba6b071d586178.svg "Repobeats analytics image") # 许可证 Outline 采用 [BSL 1.1 许可](LICENSE)。
标签:GNU通用公共许可证, IPv6支持, Markdown, MITM代理, Node.js, React, Ruby, SaaS, Syscalls, TypeScript, Wiki, 企业级, 团队协作, 安全插件, 实时协作, 富文本编辑器, 开源, 文档管理, 测试用例, 知识库, 知识管理系统, 笔记软件, 自动化攻击, 自动化攻击, 自托管