不见春山
骑马倚斜桥,满楼红袖招。
Home
Categories
Archives
Tags
About
Home
Leanote 改造笔记
Leanote 改造笔记
取消
Leanote 改造笔记
由
ctaoist
发布于 2022-01-13
·
最后更新:2022-07-05
1
## 背景 通过 Leanote 写笔记,经过整理后可以直接发布 Blog 的这种模式比较戳我了。 不过一直有点忍受不了 Leanote 的分类逻辑和 Hexo ,Hugo ,Jekyll 等静态博客不太一样,用着主题市场中半成品的主题,就这样凑合着过了两年。 但直到看到了一款 Jekyll 的主题 [Chirpy](https://chirpy.cotes.info/),可以说是一间钟情了,果断移植到 Leanote 上。 在移植过程中越来越忍受不了 Leanote 奇怪的分类逻辑,移植的不够完美,越想越气,忍无可忍,又想到 Leanote 官方从 2018 年就基本上停止更新了,然后就 fork 了源码修改了对应部分的逻辑。 >移植后的主题:[leanote-theme-chirpy](https://github.com/ctaoist/leanote-theme-chirpy) 而且截止官方停止更新,Leanote 还有一些非常影响体验的小 Bug,如中文toc跳转就会无效等。 只修改分类逻辑也有点单调,也离我想像中的还有点差距,所以有了 Leanote 改造计划。 ## 计划 1. [x] 修复一些原有小 bug 2. [x] 支持 emoji、[chart.js](https://www.chartjs.org/) 以及 [mermaid](http://mermaid-js.github.io/mermaid/#/),[效果展示](https://blog.ctaoist.cn/blog/post/ctaoist/Leanote%E6%94%AF%E6%8C%81Mermaid-Chartjs%E5%8F%8A%E4%BF%AE%E5%A4%8DBug) 1. [x] 渲染引擎切换成 [markdown-it](https://github.com/markdown-it/markdown-it),好像官方内嵌的是 [pagedown-ace](https://github.com/benweet/pagedown-ace) 的 `Mardown.Converter`,非常老的一个库,这个库有近10年没有更新了,完全没有办法满足现在的需求,切换到 markdown-it 没有使用内嵌方式,耦合性低,不管是换别的渲染引擎还是进一步定制都很方便 2. [x] 精简 `main-v2.js` 代码,note editor 的代码实现,从原来的 18000 行缩减到 3000 多行,里面大部分都是库代码,看起来很乱,改点东西也很费力,而且依赖库和 editor 强耦合,升级库也很麻烦,所以精简很有必要,降低耦合性 2. [x] 增加博文置顶功能,前端由 [@wiselike](https://github.com/wiselike) 完成 3. [x] 增加 SiteMap 4. [x] RSS 订阅,目前是 `RSS2.0`,在考虑要不要升级到 `Atom1.0` 5. [x] **支持七牛云图床**,配置及使用方法见 [Wiki](https://github.com/ctaoist/leanote/wiki/Configuration#%E5%9B%BE%E5%BA%8A%E9%85%8D%E7%BD%AE),更多的图床欢迎 PR 6. [x] 禁用 Demo 账号,屏蔽 Demo 路由,未匹配路由重定向 7. [x] [Ace 中英文混排优化]([4594](https://github.com/ajaxorg/ace/issues/4594)) 8. [x] 升级 Ace, 并且 **Ace Editor 中的代码块也能高亮**,支持大部分常用语法 7. [ ] 改进登录,降低被破解登录的可能 8. [ ] 升级 Tiny Ace 6. [ ] 生成静态页面,部署到 Github、七牛云等 7. [x] gulp 打包部分需要调整,调整完成,可以正常打包 8. [ ] 分类逻辑中当前的 Notebook 下的笔记数量的计算方式的前端更新 9. [ ] 添加在配置文件中自定义note的图片、附件存放路径 10. [ ] 使用 React 进行重构 11. [ ] Markdown 表格格式化, https://github.com/dswwsd/markdown_table_formatter ## 依赖库升级 简单做一个升级记录。 1. [requirejs](https://www.jsdelivr.com/package/npm/requirejs): 2.1.14 -> 2.3.6 2. [jquery](https://www.jsdelivr.com/package/npm/jquery): 1.9.0 -> 3.6.0 3. [underscore](https://underscorejs.org/): 1.5.1 -> 1.10.2 ## 已经修复原有的 BUG 1. [x] 导入主题时,如果zip包不是由Leanote导出的,而是普通压缩程序创建的包,则会出错 2. [x] 博客后台更改排序方式,在归档页面无效 3. [x] 存配置是可能会保存多个相同的配置 4. [x] 退出功能和 SiteUrl 配置强关联 ## 现存 BUG 或不足 1. 博文被置顶时上一篇下一篇的逻辑好像还有点问题 2. markdownit 的 mermaid 插件和 Prismjs 插件有点冲突,暂时用的老方法替代 3. markdonwit 的 mathjax 插件未完成,用 katex 代替
杂集
该博客文章由作者通过
CC BY 4.0
进行授权。
分享
最近更新
群晖升级 ARPL 笔记
本地部署大语言模型
WireGuard 搭建组网教程
LVM 管理
HK1 RBOX X4 电视盒子折腾笔记
热门标签
机器学习
Tensorflow
Linux
VPN
虚拟组网
Router
ROS
嵌入式
C++
C
文章目录
WireGuard 搭建组网教程
Leanote 支持 Mermaid,Chartjs 及修复 Bug