已经完成工具链打造,教程在文章末尾
起因
从大学到现在开始大概得有五六年了,一直是用幕布作为主力笔记软件的,在学习成体系的知识的时候这种大纲笔记软件真的是很好用,并且对于我来说足够的简洁和够用,外加多设备实时同步,我已经很习惯和依赖这个软件了。
但是也遇到过不少问题,比如切换账号数据迁移很麻烦,还有几次丢数据的,也没办法完整备份数据,中间因为各种问题死死活活仰卧起坐几经易主,虽然现在在 flomo 手上,也承诺不会乱改这个产品,但是谁知道呢,还是私有化比较安心。
博客之前用的是halo,确实很好用,相对于hugo、hexo之流更直观,管理跟统计也更加方便,外加上社区生态,很多的主题,虽然跟那些静态页面生成工具相比没那么geek,但是易用性上了一个台阶,后台可以直接网页查看统计信息和写作,但是缺点还是有的,java死吃内存,要一台物理机才能跑起来,有人用go重写了halo,但是生态差,人少,主题,更新维护速度什么的都跟不上,试了下算了,云函数之类又容易被反薅,冷启动性能没测,但感觉堪忧,还是静态页面托管更加的灵活,还能找到很多免费的托管方案,所以还是想转到静态页面,统计什么的就用第三方的吧。
笔记软件比较想要的功能:
- 核心功能:可分多层折叠的大纲笔记
- 以及几个简单的文字格式颜色快捷键
- 通用格式的数据导出,例如 json ,toml 这种
- 插入图片
- 导出 pdf/html 等可直接预览的文件
- 实时同步(非刚需,但有会很舒服
尝试过 onenote 、obsidian 、飞书、等等,给我的感觉是,好用是很好用,但是太重了,也超出了我的需求还要花不少时间适应,然后就回到了幕布。
还尝试过逆向幕布,看看能不能用他的前端,自己重写个后端出来,发现要花的时间那可太多太多了,于是就写了解锁会员的 xposed 插件和油猴脚本,也算没白花时间吧(仅仅学习娱乐,也没发布,会员很便宜的)。 又或者有类似的开源产品可以二次开发也算是个不错的项目,就像 memos 之于 flomo 那样。
选型
有人推荐了logseq,纯本地,又是jvm的一套东西,难绷。 就感觉现在都在做加法,找不到一个合适的,简洁的,维护积极的替代品。 那就找一个最流行的社区最活跃的能满足功能的吧,回到obsidian,是markdown编辑器,预感能找到适合博客的插件。
markdown的无序列表外加多层级可折叠,外加editing toolbar插件实现高亮,文件完全在自己的掌控,导出什么的也没问题。 就差个实时同步了,官方的obsidian sync无缝整合体验舒适,但贵,pass 插件中看中两个,一个remotely save,一个obsidian livesync,remotely save支持很多方式,网盘,主要看中s3存储,obsidian-livesync要搭建一个ocuchDB的服务器,可以实时同步。
由于还有私有网盘部署和局域网共享文件的需求,我选择了remotely save,自己使用minio搭建s3存储,插件开启每分钟同步以及打开obsidian时同步,体验也不错,移动设备不会留obsidian常驻 后台,打开会自动同步,pc上又可以设置快捷键,也很方便。
图片上传到图床使用image auto upload插件+picgo core实现,我自己利用cf workers转发到telegraph实现了一个图床,写了一个picgo插件,限制大小5M,一半够用,并且可以保证隐私,国内速度也不是不能用吧。
效果如下,自己参考加载速度,cf的免费额度很够用了,如果流量大了也可以考虑其他家的服务,要么花点钱
博客打算用之前一直用的主题zozo,之前在halo时候用的这个,说明是hugo移植过来的,页面生成也用hugo吧,不过之前用的时候有些不满意的地方自己修改了,现在也不记得改了那些地方,重新改一次记下来吧,可能弄个衍生版以后就不用重新改了,使用插件shell commands来自动化的新建文章,开启本机实时预览服务器,使用git推送cf自动编译部署,写了段js和一个go程序,js在本地预览时兼容双链,go程序在cf pages构建时调用,这样可以在obsidian中使用双链而不需要其他操作也不用修改源文件就能兼容hugo。
总结
至此一个完整的笔记+博客工具链已经完成,依托于obsidian强大的生态,无数的插件带来的可塑性和灵活性,我才得以搭建完成合适的,满足需求的工具体系,之后可能会研究下obsidian插件,找找好的插件或者自己写写改改逐渐完善使用体验。
本次打造工具链用到的:
- obsidian:主角
- minio:s3存储搭建
- remotely save:支持s3的同步插件
- cm311-1a yst:部署s3的私有服务器
- editing toolbar:插件,主要给文字上色用,当然有其他功能,但是跟本身obsidian功能重叠较多,不熟悉快捷键和markdown语法的用这个插件也可以有不错的编辑效果。
- image auto upload plugin:自动上传图片到图床,包括剪贴板粘贴的图片,配合picgo-core使用
- picgo-core:图床上传软件,可以使用插件
- picgo-plugin-telegraph:自己写的上传图片到telegraph的插件,国内配合cf workers使用
- cf workers:每天免费提供10万次访问,用其代理telegraph的图片存储服务
- hugo:博客静态页面生成
- hugo-theme-zozo:简洁的hugo主题
- shell commands:在obsidian内快速执行shell命令的插件,用来调用hugo,git
- git:版本控制,在本工具链中只用来push博客
- nodejs:picgo的基础运行环境
- picgo-go:自己写的picgo的替代品
- 两个convert程序:使hugo支持双链
过程记录
- 50块的cm311-1a机顶盒刷debian用作服务器
- 使用minio打造私有s3存储
- obsidian使用remotely save插件配合s3存储实现多设备同步
- picgo+自建telegraph代理图床实现无限图片存储
- [[使用]]
- obsidian插件image auto upload plugin配和picgo实现图片实时上传
- obsidian插件shell commands实现hugo博客编辑实时预览
- obsidian插件shell commands+git+cloudflare pages实现自动化发布博客
- obsidian兼容hugo的解决方案支持实时网页预览不修改本地markdown源文件