辛宝的玄酒清谈!
907 words
5 minutes
技术折腾 xLog 3 实现一个 obsidian 插件

技术折腾 xLog 3 实现一个 obsidian 插件

内部链接

  • [[技术折腾 xLog 1 可行性探索]]
  • [[技术折腾 xLog 2 深入理解 xlog 的鉴权]]
  • [[技术折腾 xLog 3 实现一个 obsidian 插件]]
  • [[技术折腾 xLog 4 用 unStorage 封装 xLogDriver]]
  • [[速通 - xLog 背后的 CrossBell SDK]]
  • [[从官方 XLOG Obsidian 插件中能学到什么]]
  • [[开发 Obsidian Sync To Xlog 插件之 处理 obsidian 的图片]]
  • [[速通-CrossBell 的开源作品]]
  • [[速通 Obsidian Docs - 侧重插件开发]]

本文是系列文章的第三章,承接 [[技术折腾 xLog 2 深入理解 xlog 的鉴权]],本文在前两章节的基础上开始尝试制作一个 obsidian 插件。

预计本文会是一个长期更新的项目,你可以持续关注本文,获取更新的动态。另外本文在 xlog 平台至少价值 5 个币的赞赏,嘻嘻,欢迎赞赏。

本文经验可以迁移复用,比如你是其他笔记的用户,可以参考实现。当然有赏金的话,我不介意接单~

背景#

作为一个 obsidian 的忠实用户,我日常的所思所想会记录在 obsidian 上,这就意味着,我需要先在 obsidian 上编写文章,然后复制内容到 xlog 上,图片部分需要额外注意。

如果后续我们编辑了 obsidian 的内容,也需要注意同步保持一致,如果有一个插件,我只需要在笔记上选择上传,就同步到 xlog 上就好了。

那,我们就实现一个吧。

设计思路#

整体的设计思路分几步:

  • 技术预研,跑通接口
  • 设计 obsidian 插件
  • 实现 obsidian 插件
  • 打包分发 obsidian 插件
  • 宣传试用 obsidian 插件

技术预研#

在上一节,我们实现了文章的创建和更新,利用 siwe token 可以轻松实现文章管理。其他操作暂不实现。

这一部分我们默认已经掌握,如果不理解,可以阅读上一章节内容。

插件设计#

这里需要前置 obsidian 的开发经验,这里先略过细节,我维护了一个简单的 obsidian-vue-starter 模板,对 vue 用户比较友好。Github Repo

我们在模板的基础上进行开发。

我们希望插件这样使用。

用户应该开启插件设置,并且正确添加了 token/charactorID,有一个按钮进行连接测试。

在对应笔记的列表上单击右键出现“上传到 xlog”,点击触发上传操作。

上传校验时候,检查 front-matter 要求添加:

  • 可选的 tags
  • 可选的 slug
  • 可选的 summary
  • 必填的 title
  • 可选的 noteId,如果存在视为更新

暂时忽略 charactorID 这个应该是少数需求

如果当前内容包含 video/audio/image ,限制文件大小,提示是否上传到 xlog 替换为 ipfs 链接。

文件上传完成,回填修改 noteID 参数,后续走更新的操作。

实现插件#

目前我会在 github 上进行这个公开的开源项目: https://github.com/Otto-J/sync-to-xlog

目前功能趋近完善了,近期的几篇文章都是通过插件完成的。

访问 https://github.com/Otto-J/sync-to-xlog/releases 可以获得最新版本。

打包分发#

投稿了官方插件市场,待审批上架。

更新:已上架官方插件市场

宣传试用#

争取获得官方的认可。

给官方说了一声。

在 B 站录了一个简单的视频介绍: 《介绍我开发的 Obsidian-sync-xlog 插件:轻松帮你同步 obsidian 内容到 xlog 上》

未来几天开始认真宣传。

更新:得到了官方的认可和转发,还进一步聊了聊。

技术折腾 xLog 3 实现一个 obsidian 插件
https://ijust.cc/posts/play-xlog-03/
Author
辛宝 Otto
Published at
2023-10-16