{
"type": "note",
"title": "技术折腾 xLog 3 实现一个 obsidian 插件",
"tags": [
"post",
"xlog",
"obsidian"
],
"summary": "",
"sources": [
"xlog"
],
"date_published": "2023-10-16T07:13:43.000Z",
"content": "---\ntitle: 技术折腾 xLog 3 实现一个 obsidian 插件\ntags:\n - xlog\n - obsidian\nslug: play-xlog-03\nupdate_time: 2024/3/15 13:43:14\ncreate_time: 2023/10/16 15:13:43\nsha: 225b8065b4a7ecd671e17fb47cb1e54f2cc8dd3a\ndescription: \"\"\nnoteId_x: 32\npublish_time: 2023/10/16 15:13:43\n---\n\n![技术折腾 xLog 3 实现一个 obsidian 插件](ipfs://QmdYgnNT9FpD4Lx1hqHvPgBFidpTubvtZfoyUPawFQRoDB)\n\n内部链接\n\n- [[技术折腾xLog 1 可行性探索]]\n- [[技术折腾 xLog 2 深入理解 xlog 的鉴权]]\n- [[技术折腾 xLog 3 实现一个 obsidian 插件]]\n- [[技术折腾 xLog 4 用 unStorage 封装 xLogDriver]]\n- [[速通 - xLog 背后的 CrossBell SDK]]\n- [[从官方 XLOG Obsidian 插件中能学到什么]]\n- [[开发 Obsidian Sync To Xlog 插件之 处理 obsidian 的图片]]\n- [[速通-CrossBell 的开源作品]]\n- [[速通 Obsidian Docs - 侧重插件开发]]\n\n本文是系列文章的第三章,承接 [[技术折腾 xLog 2 深入理解 xlog 的鉴权]],本文在前两章节的基础上开始尝试制作一个 obsidian 插件。\n\n预计本文会是一个长期更新的项目,你可以持续关注本文,获取更新的动态。另外本文在 xlog 平台至少价值 5 个币的赞赏,嘻嘻,欢迎赞赏。\n\n本文经验可以迁移复用,比如你是其他笔记的用户,可以参考实现。当然有赏金的话,我不介意接单~\n\n## 背景\n\n作为一个 obsidian 的忠实用户,我日常的所思所想会记录在 obsidian 上,这就意味着,我需要先在 obsidian 上编写文章,然后复制内容到 xlog 上,图片部分需要额外注意。\n\n如果后续我们编辑了 obsidian 的内容,也需要注意同步保持一致,如果有一个插件,我只需要在笔记上选择上传,就同步到 xlog 上就好了。\n\n那,我们就实现一个吧。\n\n## 设计思路\n\n整体的设计思路分几步:\n\n- 技术预研,跑通接口\n- 设计 obsidian 插件\n- 实现 obsidian 插件\n- 打包分发 obsidian 插件\n- 宣传试用 obsidian 插件\n\n## 技术预研\n\n在上一节,我们实现了文章的创建和更新,利用 siwe token 可以轻松实现文章管理。其他操作暂不实现。\n\n这一部分我们默认已经掌握,如果不理解,可以阅读上一章节内容。\n\n## 插件设计\n\n这里需要前置 obsidian 的开发经验,这里先略过细节,我维护了一个简单的 obsidian-vue-starter 模板,对 vue 用户比较友好。[Github Repo](https://github.com/Otto-J/Obsidian-Vue-Starter)\n\n我们在模板的基础上进行开发。\n\n我们希望插件这样使用。\n\n用户应该开启插件设置,并且正确添加了 token/charactorID,有一个按钮进行连接测试。\n\n在对应笔记的列表上单击右键出现“上传到 xlog\",点击触发上传操作。\n\n上传校验时候,检查 front-matter 要求添加:\n\n- 可选的 tags\n- 可选的 slug\n- 可选的 summary\n- 必填的 title\n- 可选的 noteId,如果存在视为更新\n\n暂时忽略 charactorID 这个应该是少数需求\n\n如果当前内容包含 video/audio/image ,限制文件大小,提示是否上传到 xlog 替换为 ipfs 链接。\n\n文件上传完成,回填修改 noteID 参数,后续走更新的操作。\n\n## 实现插件\n\n目前我会在 github 上进行这个公开的开源项目:\nhttps://github.com/Otto-J/sync-to-xlog\n\n目前功能趋近完善了,近期的几篇文章都是通过插件完成的。\n\n访问 https://github.com/Otto-J/sync-to-xlog/releases 可以获得最新版本。\n\n## 打包分发\n\n投稿了官方插件市场,待审批上架。\n\n更新:已上架官方插件市场\n\n## 宣传试用\n\n争取获得官方的认可。\n\n给官方说了一声。\n\n在 B 站录了一个简单的视频介绍:\n[《介绍我开发的 Obsidian-sync-xlog 插件:轻松帮你同步 obsidian 内容到 xlog 上》](https://www.bilibili.com/video/BV1rQ4y1s7Fa/)\n\n未来几天开始认真宣传。\n\n更新:得到了官方的认可和转发,还进一步聊了聊。\n",
"attributes": [
{
"value": "play-xlog-03",
"trait_type": "xlog_slug"
}
],
"attachments": [
{
"name": "cover",
"mime_type": "",
"address": ""
}
]
}