Skip to content

obsidian在vuepress博客写作的应用

About 1027 wordsAbout 3 min

obsidianvuepress

2024-06-30

又值暑假之际,我再次捣鼓起了博客,顺便写一个毫无条理的经验分享。

发现问题

每次坚持博客写作的尝试都中道崩殂了,思来想去,一个很重要的原因就是,没有一个方便的写作工具。不方便之处包括但不限于:

  • 插入的图片的保存与管理
  • markdown编辑器与vuepress插件语法的差异,导致编辑体验差
  • 暂时想不出第三点

一些尝试

为了解决这些问题,我曾经选择一些其它工具来进行写作,毕竟内容与便捷更重要。但是,Notion因为有时上不去而被我弃用,飞书则过于强大花哨让我觉得丧失了markdown该有的纯粹简洁(而且似乎响应比较慢)。

第一个问题现在已经解决了,使用github当作图床,PicGo方便上传并配置了cdn加速,再加上一些设置或插件很容易就能实现在将图片复制到博客中时,自动将图片上传至github,并自动填写图片url。

第二个问题则麻烦一些,我尝试过三种markdown编辑方法。第一种,直接在vscode中编写,我并不喜欢分屏的预览效果;第二种,使用Typora来编写,不得不说markdown编辑体验是最好的;第三种,使用obsidian来编写。我需要使用两种vuepress中特殊的语法,剧透以及容器,很可惜Typora和obsidian都不能很好的支持,Typora是没有这种语法,而obsidian是语法不同。自行编写插件可以解决这个问题,二者应该都能支持插件,显然obsidian的插件编写会更简单一些,因此我选择了obsidian。

使用obsidian

用obsidian打开博客项目的src文件夹作为库,因为obsidian会在库文件夹下创建.obsidian文件夹,而这个文件夹在博客项目中是多余的,所以需要将.obsidian添加到博客根目录下.gitignore文件中。

图片上传

在GitHub中新建一个public仓库用于存放图片,并且申请一个具有repo所有权限的Token,配置PicGo时需要使用。

下载PicGo,我选择2.3.1版本。下载完后点击“图床设置->GitHub”进行配置,大概如下配置,可以不需要设置存储路径。

tmp638.png

配置好后可以在上传区拖入一张图片测试一下,是否上传到了GitHub。

obsidian方面只需要下载Image auto upload Plugin即可。

自行编写插件

由于前端能力有限,其实最后并没有实现一个符合我预期的插件。看obsidian插件开发文档,参考类似插件的源码,请教AI……已经尽力了。

两个插件都是只完成了编辑模式下的渲染,markdown后处理器总是写不好就没写阅读模式的了。简单看一下效果吧。

剧透功能:

tmp97D6.png

在悬停时内容会正常显示出来,采用的语法是vuepress的双感叹号包裹。如果不需要和vuepress插件的语法相同的话,Blue Topaz主题是支持挖空的:

tmp3A25.png

还有很多很多bug,不足为外人道也。

容器功能:

tmp4922.png

因为还想能够编辑所以怎么都实现不了,最后退而求其次选择了只做了一点样式装饰,编写时可以提醒一下有容器即可。不是非要用容器的时候用GFM警告即可,obsidian的callout语法和vuepress的GFM警告基础用法是差不多的。

本来还想着好好写个插件发个github呢,我真是高估我自己了。。。

其它可行的优化

博客的yaml大同小异,所以可以用obsidian的模板来创建。(记得模板文件夹要ignore一下)

应该可以用Git实现自动拉取与上传??

……