【开源】一套代码,多端阅读!开源文档神器 与它的跨平台 App 诞生记
今天想跟大伙儿聊聊我折腾出来的两个开源项目:BookStack和BookChatApp。如果你平时需要写技术文档、搭建团队知识库,或者想把你的 Markdown 笔记变成手机 App 供人阅读,那这篇文章应该对你胃口。
项目是怎么来的?
其实做这两个东西,纯属“被迫营业”加上“私心作祟”。
几年前我还是个写 PHP 的,那时候想找个好用的文档工具,遇到了 GitBook 和看云,觉得特牛,心里就痒痒:“啥时候我也能整一个?” 后来转去学了 Go 语言,正好公司(掘金量化)让我搞官网和文档系统,我就基于 MinDoc 做了二次开发。
本来代码写得乱七八糟,没好意思开源,怕丢人。但转念一想,自己这几年也没少看开源书籍、用开源组件,受了社区这么多好处,是时候回馈一下了。于是咬咬牙,把BookStack 开源了。后来又觉得光有网页版不够,现在大家都习惯手机刷文档,于是用 uni-app 捣鼓出了BookChatApp 。
它们是怎么工作的?
简单来说,这就是一套“后端+前端” 的完整解决方案。
1. BookStack:你的私有文档管家
它是基于 Go 语言开发的 Web 端系统。核心逻辑很清晰:把知识结构化。它支持书籍、章节、页面的层级管理,而且专门优化了 Markdown 的处理。
原理亮点 :它解决了一个很头疼的问题——文档导入 。我加入了“一键拉取”功能,你给它一个 GitHub 或 Gitee 的 Zip 链接,它能自动解析 Markdown,把文档和图片都乖乖录入数据库,不用你一个个复制粘贴。
2. BookChatApp:把文档装进手机
这是 BookStack 的配套前端,用 uni-app 写的。原理就是通过 API 跟后端 BookStack 交互。
跨端黑科技 :得益于 uni-app 的框架,这一套 Vue 代码,你能同时编译出Android、iOS、H5 ,还有微信/支付宝等各种小程序。不用写多次代码,一次开发,全平台通吃。
这东西好在哪?
专为“运营”而生 :很多文档工具只管写,不管看。BookStack 增加了用户互动、SEO 优化、Sitemap 更新,甚至支持生成电子书下载,就是为了让你的知识库不仅自己用,还能给更多人看。
导入导出太方便了 :支持 Git Clone 导入,也支持 Calibre 工具封装后的电子书生成。写完后一键导出 PDF 或 ePub,体验很顺滑。
真正的开源免费 :基于 Apache 2.0 协议,后端前端全开源。你不用担心数据被锁死在商业平台,自己部署,数据完全自己掌控。
多端阅读体验 :配合 BookChatApp,你的文档库瞬间变成了一个专业的阅读 App,支持书架、书签、阅读偏好设置,颜值也还不错(我觉得哈哈)。
预览
启动页
首页
分类页
书架页
书籍介绍页
书籍阅读页
登录
个人中心
搜索
跟其他平台比怎么样?
经常有人问我:我有 GitBook、看云,为啥要用你的?
BookStack VS 商业平台(看云/GitBook) :
商业平台功能强,但要花钱 ,而且数据不在自己手里。BookStack 是自托管 的,免费,数据安全感满满。而且 BookStack 针对国内用户的“采集”和“导入”需求做了很多本地化优化,用起来更顺手。
BookStack VS 传统 Wiki(MinDoc/Confluence) :
MinDoc 更偏向简单的文档托管。BookStack 增加了用户社交 (关注、粉丝)和移动端支持 。如果说 MinDoc 是“笔记本”,那 BookStack + BookChatApp 就是“出版社+阅读器”。
BookStack VS 通用阅读 App(微信读书/掌阅) :
通用 App 是看书库的,书库不是你的。BookChatApp 是私域 的,专门用来阅读你自己发布的文档、手册或企业内部资料。
写在最后
目前项目还在持续迭代中,代码肯定还有不足的地方,欢迎大家去 GitHub 或 Gitee 提 Issue。如果你觉得这工具帮到了你,顺手点个 Star 就是对开发者最大的鼓励啦!
BookChatApp 源码 : https://gitee.com/truthhun/BookChatApp