使用 BookStack 写文档，一个开源的 Confluence 替代品
BookStack 是一个开源的、基于网页的文档系统，它允许你创建一个结构化的知识库，供个人、团队或公司使用。
知识库
BookStack 是一个开源的、基于网页的文档系统，它允许你创建一个结构化的知识库，供个人、团队或公司使用。
![](/data/attachment/album/202302/04/180856n7ql7p8fk7l9fa9n.jpg)



> 
> BookStack 是一个开源的、基于网页的文档系统，它允许你创建一个结构化的知识库，供个人、团队或公司使用。
> 
> 
> 


BookStack 是一个开源的、基于网页的文档系统，它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计，以适合具有潜在的混合技术技能的受众。它建立在 PHP 框架 Laravel 之上，使用 MySQL 或 MariaDB 作为数据存储。


在尝试为我的工作场所寻找文档或维基系统后，我构建了 BookStack。[Confluence](https://opensource.com/article/20/9/open-source-alternatives-confluence) 是最符合我要求的选项，但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后，我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它，以回馈我多年来喜爱并从中受益的开源社区。


### 内容层次和组织选项


为了保持熟悉和直观，BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建为 “<ruby> 页 <rt>  Page </rt></ruby>”：


* “页” 属于一个特定的 “<ruby> 书 <rt>  Book </rt></ruby>”。
* 在一本书中，“页” 可以选择性地被分组为 “<ruby> 章节 <rt>  Chapter </rt></ruby>”。
* 随着文档的增长，你可以使用 “<ruby> 书架 <rt>  Shelve </rt></ruby>” 来对 “书” 进行分类，如果需要，“书” 可以成为多个书架的一部分。


这种结构是 BookStack 的核心，而且往往是决定 BookStack 是否适合你的使用情况的选择因素。


在这个核心层次上，BookStack 还提供了标签、用户收藏夹和高级搜索功能，以确保内容可被发现。


### 编写文档


在 BookStack 中编写文档的主要方法是通过使用其所见即所得（WYSIWYG）编辑器，它利用了开源的 [Tiny](https://github.com/tinymce/) 项目。这个编辑器提供了一系列的内容格式，包括：


* 各种标题级别
* 代码块
* 可折叠的块
* 表格
* 图片
* 链接
* iFrame 嵌入
* 提醒呼出
* 项目符、编号和任务列表
* 绘图（通过与开源 [diagrams.net](https://www.diagrams.net/) 的整合）


如果你喜欢 [Markdown](https://opensource.com/article/19/9/introduction-markdown)，你可以使用内置的 Markdown 编辑器，它提供实时预览并支持与所见即所得编辑器相同的功能集。如果权限允许，你甚至可以根据你所编辑的页面，在这些编辑器选项之间跳转。


### 你的数据是如何存储的


如果使用了 Markdown，除了原始的 Markdown 内容外，文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB](https://opensource.com/downloads/mariadb-mysql-cheat-sheet) 数据库中。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素，以确保原始文档内容保持开放和可移植。


上传的图片、附件和创建的图纸被保存在本地文件系统中，但也可以选择存储在一个与 s3 兼容的数据存储中，比如开源的 [MinIO](https://github.com/minio/)。


为了保持你的内容可访问性，有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部使用，有一个 HTTP REST API 和一个 Webhook 系统。在扩展方面，一个 “逻辑主题系统” 允许在广泛的系统事件中运行自定义的 PHP 代码。


### 为商业做好准备


BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持，包括 SAML2、OpenID Connect 和 LDAP，允许使用 [KeyCloak](https://www.keycloak.org/) 等平台轻松实现单点登录。也支持多因子认证（MFA），并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。


一个完全基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认值，以及在每个层次项目基础上设置自定义权限的选项。


### 支持的社区


经过 7 年多的积极开发，BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有：


* [我们的文档站点](https://www.bookstackapp.com/docs/)
* [YouTube 上的视频指南](https://www.youtube.com/c/BookStackApp)
* [一个 subreddit](https://www.reddit.com/r/bookstack)
* [一个活跃的 GitHub 问题列表](https://github.com/BookStackApp/BookStack/issues)
* [付费业务支持](https://www.bookstackapp.com/support)


如果你想体验一下 BookStack，你可以 [在我们的演示网站](https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site) 试试。要了解如何设置你自己的实例，请访问 [我们文档中的安装页面](https://www.bookstackapp.com/docs/admin/installation/)。




---


via: <https://opensource.com/article/23/1/bookstack-open-source-documentation>


作者：[Dan Brown](https://opensource.com/users/ssddanbrown) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

