不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

州的先生 06-10 22:51 关注

作为一个互联网底层社畜,学习和工作中难免会需要记录下一些笔记、经验和灵感,或是收藏一些资料、资源和文章。在大学期间,常用印象笔记来进行网页剪藏和微信文章的收藏,受制于免费版本的限制和其他的一些原因,渐渐很少使用了。在自学编程之后,开始有了搭建自己博客的想法,于是便有了使用 WordPress 搭建的博客

后来在博客上写的文章越来越多,按照时间排序的文章越来越零散化和碎片化,不时地萌生了要将博客上的文章系统化、结构化的想法,期间找过一些类似功能的 WordPress 插件,也接触过Gitbook、感觉都不是很适合自己。

在参考了众多文档网站之后,决定自己基于开源组件开发一个在线文档系统。

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

系统架构

前后端组件

本身自己对 Python 编程语言比较熟悉,所以后端就选择了 Python 语言下的 Web 开发框架——Django 。

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

前端界面为了省事,直接使用开箱即用的国产前端UI组件——LayUI。

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

编辑器组件

作为文档系统,读写是两个核心功能。对于写文档,本人比较喜欢使用 Markdown 进行书写,那么编辑器就选择了开源的 Markdown 编辑器 —— Editor.md 和 Vditor。

为什么集成了两个编辑器呢? Editor.md 年久失更,但是扩展比较方便,而 Vditor 作为一个开源 Markdown 编辑器的新秀,界面、功能体验都更优,且更新迭代频繁 。所以就集成了 2 个 Markdown 编辑器,自由选择和切换。

同时为了满足偶尔对富文本编辑的需求,还集成了一个轻量级的富文本编辑器——iceEditor。

其他组件

除此之外,还借助了以下组件来实现系统的功能:

  • 后台管理界面——PearAdminLayUI

  • 站点图标——IconFont

  • 图片放大显示——Viewer

  • 文档拖拽排序——Sortable.js

主要功能

文档与文集

作为一个文档系统,最主要的功能当然是文档的书写和阅读了。在这里,为了最大化地让文档结构化,我首先设定「文集」作为系统内文档的容身之所,每一个「文档」都必须归属于一个「文集」;同时,「文档」之间最多支持 3 个层级的排序。

文集支持权限配置:公开访问、私密访问、访问码访问、指定用户访问:

配置文集权限配置文集权限

文集支持成员配置,成员可在文集内进行文档的相关操作:

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

私密文集内的文档支持分享码分享访问:

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

文档书写

文档的书写界面使用左右两栏式布局,左侧可以选择文档的文集,设置文档的层级和排序;右侧则是编辑器区域。

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

同时,在文档编辑页面,可以导入本地 Word 文档、本地文本文件和「文档模板」

文本文档导入Word文件文本文档导入Word文件

在线表格支持导入本地Excel文件:

不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!

文档阅读

文档阅读界面依然是左右双栏式布局,左侧文集大纲,右侧文档内容。

文集页面文集页面

文档阅读页面文档阅读页面

最后

除此之外,还开发了文集和文档的Markdown导出功能、支持进行浏览器剪藏的浏览器扩展等。

到了这一步,自己的需求基本上被满足了。如何让它满足更多人的需求呢?——开源!

于是,我把它开源在了全球著名的代码托管平台——GitHub 和 国内著名代码托管平台——Gitee。

两个仓库的地址是

有想体验又不想安装部署的小伙伴,可以前往示例站点进行体验。

测试账号:test1 密码:123456

系统部署在自己的服务器上,想存啥存啥,想写啥写啥,还要啥自行车~

全部评论(30)
州的先生
1
06-11 14:35
wjing15054 太强了 刚好用得上 阅读文章的时候左侧加上导航栏就更妙了 1

如果文档内容中存在标题,左侧是文集的大纲,右侧是文档的目录

州的先生
1
06-11 14:34
评论又被和谐啦 很难想象能自学到这种程度。。。只用过java开发web,记得学web框架还是挺麻烦的。难道是python的框架比java简单吗? 1

是简单很多,所以有那句名言嘛「人生苦短,我用Python」

州的先生
1
06-11 06:54
incmoe 写的不错,不过我在用为知笔记,可以私有化部署 1

为知笔记很优秀,不过多一个产品多一种选择嘛

incmoe
1
06-11 00:04

写的不错,不过我在用为知笔记,可以私有化部署

pp小达宝
1
06-10 23:38

来自弱鸡的仰望

爱你的浦
1
06-10 23:07

这就是强者的世界吗[赞一个][赞一个]

maple185
0
3小时前

感谢分享。在用wp和joplin.有空试试这个[欢呼]

九九一品堂
0
9小时前

斗宗强者,恐怖如斯![期待]

值友9093792498
0
06-20 04:10

用不上,但支持一下

darkz
0
06-17 22:16

已经用起来啊leanote