不想用语雀、有道云、印象笔记?于是自己开发了一个在线知识库系统并开源了它!
作为一个互联网底层社畜,学习和工作中难免会需要记录下一些笔记、经验和灵感,或是收藏一些资料、资源和文章。在大学期间,常用印象笔记来进行网页剪藏和微信文章的收藏,受制于免费版本的限制和其他的一些原因,渐渐很少使用了。在自学编程之后,开始有了搭建自己博客的想法,于是便有了使用 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 文档、本地文本文件和「文档模板」
在线表格支持导入本地Excel文件:
文档阅读
文档阅读界面依然是左右双栏式布局,左侧文集大纲,右侧文档内容。
最后
除此之外,还开发了文集和文档的Markdown导出功能、支持进行浏览器剪藏的浏览器扩展等。
到了这一步,自己的需求基本上被满足了。如何让它满足更多人的需求呢?——开源!
于是,我把它开源在了全球著名的代码托管平台——GitHub 和 国内著名代码托管平台——Gitee。
两个仓库的地址是
有想体验又不想安装部署的小伙伴,可以前往示例站点进行体验。
测试账号:test1 密码:123456
系统部署在自己的服务器上,想存啥存啥,想写啥写啥,还要啥自行车~
爱你的浦
校验提示文案
DACAITOU
校验提示文案
pp小达宝
校验提示文案
incmoe
校验提示文案
贪吃小熊
校验提示文案
值友_666
校验提示文案
Goroc
校验提示文案
wjing15054
校验提示文案
值友9761843469
校验提示文案
罗刹大介
校验提示文案
苏丹X
校验提示文案
啥破狼
校验提示文案
dimanche4sc
校验提示文案
大志若勇Nodis
校验提示文案
wsxxqnss
校验提示文案
darkz
校验提示文案
专业维修二八大杠
校验提示文案
九九一品堂
校验提示文案
收藏了
校验提示文案
gujiangjiang
校验提示文案
名字只是记号
校验提示文案
锋仔哥
校验提示文案
maylover
校验提示文案
浑江小老虎
校验提示文案
ccinoo
校验提示文案
苏丹X
校验提示文案
gujiangjiang
校验提示文案
收藏了
校验提示文案
九九一品堂
校验提示文案
专业维修二八大杠
校验提示文案
darkz
校验提示文案
罗刹大介
校验提示文案
wsxxqnss
校验提示文案
大志若勇Nodis
校验提示文案
dimanche4sc
校验提示文案
值友9761843469
校验提示文案
值友_666
校验提示文案
啥破狼
校验提示文案
wjing15054
校验提示文案
Goroc
校验提示文案