XingGuo Song

宋玉の世界

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版)

发布于 # 前端

目录

写在前面

四年前当时我才参加工作,还保持着写博客的习惯,为了写博客还专门学习了Markdown语法,现在想想这个举动真的是很值,因为现在我在Obsidian中记笔记都会经常使用。记得当时写博客还很苦逼,每次都需要启动Hexo的服务,并且需要进入后台管理才能写。这样确实不是很方便,并且当时的我对于知识管理一无所知,把博客当成知识库管理来使用,大量的读书笔记都放到上面,但实在是操作起来太麻烦,渐渐的也就放弃了。后来,经过阮一峰的推荐,语雀进入了我的视野,当时觉得语雀就是天使,解决了我记笔记的最大痛点,因此也顺理成章将大量的笔记记录在语雀上, 之前还写了一篇如何将语雀文章发布到Hexo博客,希望将语雀当成我的博客后台,渐渐的我也发现了语雀的不足,毕竟语雀是线上知识库当数据量过大时它的瓶颈就出现了,加载缓慢,显然不适合快速的记笔记和思考。后来又了解到了Obsidian ,它数据本身就存储在本地的,一切都由自己掌控,因此能快速响应,这次总算是满足了管理海量知识的需求了。

我一直相信输出是为了更好输入,在最开始我就希望博客文章能同时发布到多个平台,下面是我当时的畅想,但几经尝试,都以失败告终,直到遇到Obsidian,我的想法终于可以实现了,Obsidian支持自己开发插件,也就意味我自己可以实现一款插件,将文章发布到多个平台,并且Obsidian 本身就是一个浏览器环境,使用JS进行开发,对于一个资深前端来说,那还不是手到擒来。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240728212623051

现在只是实现了obsidian-note-publish 将文章发布到语雀上,后面还会支持掘金、公众号、个人博客等更多平台,真正实现一键发布到多个平台。

点击链接查看原文 , 订阅 SSR 获得最新动态。

安装插件

推荐使用BRAT插件安装。打开BRAT的设置界面,点击Add Beta plugin,然后输入本插件地址https://github.com/songxingguo/obsidian-note-publish,点击Add Plugin就可以安装本插件了。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240728230636899

配置插件

基础配置

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729222256196

  • Attachment location:附件存放的位置,我附件默认都是存放在当前文件夹的 attachmens 中,这样将附件分开放置更方便管理附件,避免了将附件放到同一个文件夹下导致体积过大的问题。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729090149268

  • Use image name as Alt Text :将图片文件中的 - 替换为 _
  • Update original document :当图片上传之后是否需要更新图片本地的路径。
  • Delete local attachments :图片上传之后是否需要删除本地的图片。
  • Ignore note properties :在对笔记进行处理时是否需要去除顶部的元信息。

Update original documentDelete local attachments 一定要同时开启,否则删除了本地文件,但又没有更新线上地址会导致图片显示不出来。

语雀配置

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729085646431

  • Token : 语雀的开发授权码, 当然这个只有超级会员才可以创建。
  • BookSlug:知识库的路径,比如我的知识库https://www.yuque.com/songxingguo/read 的路径是 songxingguo/read
  • Public Note: 新建文档时,是否公开发布文档。

图床配置

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729085836013

最后是图床相关的配置,这个会比较麻烦一下,下面主要讲 AliYun OSS 的配置,因为对于国内用户来说,阿里云的对象存储可能更加实惠。具体如何创建存储桶,可以阅读这篇Obsidian + 阿里云OSS 支持云同步 的文章。

  • Region:对象存储的地域。
  • Access Key Id: 可以进入用户权限界面进行获取。
  • Access Key Secret: 同上。
  • Access Bucket Name:存储桶名。
  • Target Path:图片的保存目录,支持 {year} {mon} {day} {random} {filename} 等变量,比如使用 obsidian/{year}{mon}{day}/{filename},上传的图片 pic.jpg 将保存在 obsidian/20230608/pic.jpg
  • Custom Domain Name: 自定义域名地址。

更多配置可以查看 Obsidian 图片上传插件:Image Upload Toolkit,这里也要感谢 obsidian-image-upload-toolkit, 本插件是在其基础上开发的。

最后,温馨提示,可以进入 对象存储OSS资源包(包月) 购买40G的包年套餐只要9块钱,十分划算,作为图床完全足够。有了图床就可以极大的减小本地Obsidian的仓库大小,方便多端同步。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729223046706

使用插件

上传图片

点击Ctrl + P 或者 Cmd + P 唤起命令工具,输入 Note Publish 就可以看到 Upload Image 的命令,点击就可以将图片上传到图床中。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729125209877

发布文章

点击左侧的按钮会打开预览界面,现在只要三个按钮分别是选择知识库目录,复制博客文章,以及发布到语雀。

发布到语雀主要做了以下几件事情:

  • 将Callouts 语法的头部去掉,转换成普通的引用,后面将其转换为语雀的高亮块。
  • 将文章中的双链的两对括号去掉。
  • 删除文章的元信息。

想了四年,一键发布文章到多平台终于在Obsidian中实现了(语雀版) 20240729125451707