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

2021-06-10 22:51:41 110点赞 446收藏 39评论

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

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

展开 收起
39评论

  • 精彩
  • 最新
  • 这就是强者的世界吗 [赞一个] [赞一个]

    校验提示文案

    提交
    瞎猫碰上死耗子😄

    校验提示文案

    提交
    收起所有回复
  • git地址404了

    校验提示文案

    提交
    好像被吃了,地址是去看看

    校验提示文案

    提交
    这个 去看看

    校验提示文案

    提交
    收起所有回复
  • 来自弱鸡的仰望

    校验提示文案

    提交
    基于开源组件进行有机结合而已,技术含量其实不高的,只是有心去做了

    校验提示文案

    提交
    收起所有回复
  • 写的不错,不过我在用为知笔记,可以私有化部署

    校验提示文案

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

    校验提示文案

    提交
    为知笔记做的挺好,就是太低调了,618也不做个营销,好怕他哪天破产。

    校验提示文案

    提交
    收起所有回复
  • 很不错的。去年就docker使用了。

    校验提示文案

    提交
    哈哈,好巧

    校验提示文案

    提交
    收起所有回复
  • 很难想象能自学到这种程度。。。只用过java开发web,记得学web框架还是挺麻烦的。难道是python的框架比java简单吗?

    校验提示文案

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

    校验提示文案

    提交
    可以可以,希望值得买也多些热爱技术的人~

    校验提示文案

    提交
    收起所有回复
  • 厉害,开源真的很棒

    校验提示文案

    提交
    感谢你的认可

    校验提示文案

    提交
    收起所有回复
  • 太强了 刚好用得上 阅读文章的时候左侧加上导航栏就更妙了

    校验提示文案

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

    校验提示文案

    提交
    收起所有回复
  • 笔记类软件全部用过一边,剪藏做的最好的是印象笔记。目前个人剪藏用evernote,个笔记知识库整理用Notion

    校验提示文案

    提交
    其实借助于第三方的剪藏工具,Notion也能很好地完成剪藏任务。有一个开源的剪藏扩展叫「web-clipper」可以试试

    校验提示文案

    提交
    试过,不好,还是没有印象笔记剪藏的好,排版和原文不能完全保持一致

    校验提示文案

    提交
    收起所有回复
  • 和obsidian有什么不同?

    校验提示文案

    提交
    私有化部署

    校验提示文案

    提交
    收起所有回复
  • 好,不过我有语雀会员了

    校验提示文案

    提交
  • 想着开发个yuqu来着,还没开始看到你这个了

    校验提示文案

    提交
  • 不错不错,支持开源,回头给你加个star [赞]

    校验提示文案

    提交
  • 这个干得漂亮

    校验提示文案

    提交
  • 不错不错,收藏学习

    校验提示文案

    提交
  • 已经用起来啊leanote

    校验提示文案

    提交
  • 用不上,但支持一下

    校验提示文案

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

    校验提示文案

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

    校验提示文案

    提交
  • 这才是真的强者!

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
446
扫一下,分享更方便,购买更轻松