笔记与博客
怎样用Obsidian + SilverBullet + Hugo来多平台管理笔记和博客
去年测试使用了一段时间用Livebook记录笔记,想每次发现新工具一样兴奋的使用了一个月后放弃了,主要原因是只支持livemd格式,虽然电脑手机和服务端都可以用各种的灵活办法解决,但是要装一堆的插件去解决,没有原生的方案,很累。之后用过Marimo,好过Livebook,但是因为不是面向笔记的应用,虽然功能很强大但是一点也不方便日常使用。后来甚至又用了10天的emacs+orgmode,还是同五年前一样放弃了。再然后3月中旬再次发现了SilverBullet,以前收藏过但是从来没用过,这次看到有人再提起,就试了下,发现正是我需要的完美工具!当然,这样的笔记工具我发现不知10个。但是坚持连续使用一个月的不多。但是SilverBullet是为数不多让我在使用一个月之后还是对之非常感兴趣的工具。
编辑
首先最主要的原因是这款应同支持直接从文件系统编辑Markdown文件而不是数据库,所以我们文件可以直接存到Git里面,而且在手机端和电脑端可以直接在Obsidian里面编辑,然后通过WebDAV同步编辑。在Obsidian我使用Remotely Save插件可以通过WebDAV同步服务器上的Notes,这样我可以用手机(iOS/Android)和电脑上的的Obsidian同步博客和笔记,又可以在有限制的设备上用网页端的SilverBullet编辑,各个平台都非常强大,而Markdown的格式支持也算都比较标准。Obsidian的可视化Front Matter和表格编辑又弥补了SilverBullet这方面的不足。
其次,扩展性很强,而且不需要安装插件,程序直接支持Lua script实现HTML的动态生成,查询数据库和标签像Obsidian的Dataview一样方便,又可以http request,添加按钮,等等。我目前主要一个日历一个待办事项,都是直接写Lua代码生成的。Obsidian可以通过扩展实现相应的功能而大部份不需要在笔记里面插入代码和数据,这样有效的防止了和SilverBullet的冲突,比较特别的是DataView,像 SilverBullet 一样,需要写特殊格式的语句查询,因为我的原则是尽量少装插件而使用原生功能,作为取舍我放弃使用DataView插件,对我来说也没什么影响,我也不想把笔记做的太复杂导致以后如果需要向其他平台转移而大费周章(可能性很大)。
因为很方便编辑所以我干脆把Hugo的博客内容也放到了Notes文件夹里面,然后直接定义Blog的目录为Notes里面,build之后的文件在服务服务器上用Caddy来serve,之前是用CloudFlare的,虽然免费但是速度在国内访问不是特别快。
发布
如果在用电脑的话,直接用 hugo build
命令完成发布,如果用手机的话,创建一个 Shortcut 跑一个 SSH 命令,反倒比电脑更方便,当然如果用电脑并且不开 Terminal(很少有这种情况),也可以用同一个 Shortcut 命令来发布。