BookStack 是一款基于 Web 的开源文档系统,允许您为个人、团队或公司用途创建结构化的知识库。BookStack 注重易用性和设计,旨在为可能具有混合技术技能的受众提供合适的体验。它基于 PHP 框架 Laravel 构建,使用 MySQL 或 MariaDB 作为数据存储。
我构建 BookStack 是因为我尝试为我的工作场所寻找文档或 Wiki 系统。Confluence 是最符合我要求的选项,但基于用户的定价引入了障碍。Confluence 的封闭性也引发了关于我将要构建的文档的持久性的问题。最终,我决定构建自己的平台来满足我的需求。我以 MIT 许可证发布了它,以回馈我多年来喜爱并从中受益的开源社区。
内容层级结构和组织选项
为了保持熟悉和直观,BookStack 使用真实世界的书籍术语来描述其组织结构。文档内容被创建为“页面”
- 页面属于特定的“书籍”。
- 在一本书籍中,页面可以选择性地分组为“章节”。
- 随着文档的增长,您可以使用“书架”来分类书籍,如果需要,书籍可以成为多个书架的一部分。
这种结构是 BookStack 的核心,并且通常是决定 BookStack 是否适合您的用例的关键方面,要么喜欢,要么讨厌。
基于这种核心层级结构,BookStack 还提供了标签、用户收藏夹和高级搜索功能,以确保内容仍然可被发现。
编写文档
在 BookStack 中编写文档的主要方法是使用其所见即所得(WYSIWYG)编辑器,该编辑器使用了开源 Tiny 项目。此编辑器提供了多种内容格式,包括
- 各种标题级别
- 代码块
- 可折叠块
- 表格
- 图像
- 链接
- iFrame 嵌入
- 警告标注
- 项目符号、编号和任务列表
- 绘图(通过与开源 diagrams.net 集成)
如果您喜欢 Markdown,您可以使用内置的 Markdown 编辑器,它提供实时预览并支持与 WYSIWYG 编辑器相同的功能集。如果权限允许,您甚至可以在这些编辑器选项之间跳转,具体取决于您正在编辑的页面。
您的数据如何存储
文档以相对简单的 HTML 格式存储在 MySQL 或 MariaDB 数据库中,如果使用了 Markdown,则还存储原始 Markdown 内容。许多设计和开发决策都是为了保持这种 HTML 格式的简洁性。它尽可能使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。
上传的图像、附件和创建的绘图保存在本地文件系统中,但可以选择存储在与 s3 兼容的数据存储中,例如开源 MinIO。
为了保持内容的可访问性,内置了将内容导出为 PDF、HTML、纯文本或 Markdown 的选项。对于外部消费,有一个 HTTP REST API 和一个 webhook 系统。在扩展方面,“逻辑主题系统”允许在各种系统事件上运行自定义 PHP 代码。
为商业做好准备
BookStack 附带一系列功能来支持商业环境。内置了对多种身份验证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,从而可以轻松地与 KeyCloak 等平台进行单点登录使用。MFA 选项可用,并且可以根据角色强制执行。审计日志提供了跨实例的修改活动的完整可见性。
完整的基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认设置,并可以选择在每个层级项目基础上设置自定义权限。
社区支持
经过 7 年多的活跃发展,BookStack 的社区不断壮大,并拥有各种讨论和支持渠道。我们现在有
如果您想试用 BookStack,您可以在我们的演示站点上试用。要了解如何设置您自己的实例,请访问我们文档的安装页面。
评论已关闭。