这是苍何的第 448 篇原创!
大家好,我是爱折腾 Obsidian 的b苍何。
最近实在是闲的蛋疼,各种折腾 Obsidian,配合 CLI,感觉能玩的地方太多了。
这不,又花了点时间,用 Claude Code 开发了个 Obsidian 插件,姑且叫内容分发助手。
它能够将我在 Obsidian 中写的公众号长文,一键转成符合各个平台风格的文章。
比如转成小红书文案:
![]()
甚至是标签都能自动生成,点击一键复制,就可以直接去小红书后台发送了。
还有即刻风格的:
![]()
还有 X 风格,这对于 X 做海外账号来说,别提多有用,省去了转换到翻译的过程。(当然翻译与否也是可以选择的)
![]()
在整体设置上,插件支持进行大模型配置和平台配置,甚至我还把提示词也做了配置,你可以用默认提示词也可以根据习惯自行更改。
![]()
目前支持的平台有这些:
![]()
支持的模型有这些:
![]()
当点击获取 api key 的时候能自动跳转到对应的开放平台获取 key。
![]()
点击测试连接的时候,会对 API 进行验证。
![]()
以上就是整个 MVP 版本内容分发助手插件的全部功能。
我已经用这个插件跑了几天了,目前测下来,效果相当惊人。
![]()
小红书上也是表现不错:
![]()
相当做到了一鱼多吃,对于公众号长图文创作来说,可以说是法宝了,至少我目前感觉给我提效不少。
如果你对这个插件感兴趣,也可以点赞留言告诉我,人多我就考虑给它发布出来。
但你想象不到,整个开发我全程用的居然是字节新出的 Doubao-Seed-Code 做的,因为我在上周就已经拿到火山新模型的测试资格。
![]()
他们正式官宣是双十一这天, 还搞了个 9.9 的活动,有点意思。
![]()
这个信息图也是用 Doubao-Seed-Code 做的:
![]()
除了模型选择外,我开发的环境也相当的奇葩,用的 Obsidian 来开发 ob 插件,可以说整个地球上就凑不齐多少人。(瞎几把吹牛)
有几点 Obsidian 插件开发的经验特别想和你分享,当然了,按照惯例,我也会手把手带着大家来一次用 CC 进行 Obsidian 插件的开发。
这也会导致这篇文章的内容又会显得巨长,如果你没耐心看完,可以先点个赞收藏慢慢看。
整篇文章结构大概是这样的:
![]()
介绍一下用到的工具
先从模型开始,这次选的 Doubao-Seed-Code 主要也是为了测试其在实际应用开发中的能力,我发现单纯的用单个 demo 来验证能力,大家很多也看麻了,还是得在应用中来体现。
如你所料,Doubao-Seed-Code 出世也是直接在 SWE-Bench-Verified 中刷新 SOTA。
![]()
也是,现在大模型发布问世,不刷新 SOTA 那还玩个 der。
实际测下来的感受是:能干事,挺便宜。
还有比较亮眼的点是,Doubao-Seed-Code 是支持多模态能力的,它可参照 UI 设计稿、截图或手绘草图生成代码,或对生成页面进行视觉比对,自主完成样式修复和 Bug 修复。
![]()
比如我第一轮出来的 UI 效果有些抽象,我直接手绘了一个草图,它先识别图片内容,然后再转为 UI 设计样式。
这个能力,据我所知,还是国内第一家支持视觉理解能力的编码模型。
双十一,他们也在做活动,9.9 一个月,我把活动地址放在最后了,想要冲的可以点文末阅读原文去冲,毕竟双十一就这一次。
![]()
好,关于模型,就先介绍到这,更多信息,可以去火山官网做了解。
然后再一次介绍下 Obsidian,这是一个本地的开源的笔记创作软件,其插件生态非常繁荣,自由度非常高,而且非常安全,在上面的所有文档均是大模型最爱的 markdown 格式的。
Claude Code 就不用多介绍了,很多朋友早玩的很 6 了。
那如何把这三个工具完美融合呢?
首先是把 Claude Code 安装到 Obsidian 就很简单,下载个 Terminal 插件一配就好,之前的文章也讲过啦,不会的可以去看看。
![]()
最后就是把 Doubao-Seed-Code 配置到 Claude Code ,输入这个配置就好:
export ANTHROPIC_BASE_URL=https://ark.cn-beijing.volces.com/api/compatible export ANTHROPIC_AUTH_TOKEN=你的key export ANTHROPIC_MODEL=doubao-seed-code-preview-latest key 的获取就在火山后台:
![]()
一、熟悉下插件开发整体流程
新建一个新的仓库用来测试。(防止乱搞)
![]()
保存到指定文件夹:
![]()
先下载个插件模板吧:
第一步,下载示例插件
下载模板:https://github.com/obsidianmd/obsidian-sample-plugin ![]()
点击 Use this template。
在 Repository name 选项中, 输入您的插件名称。 Obsidian 的插件名称往往以 obsidian- 开头。 举个 , obsidian-instant-coffee。
点击 Create repository from template。
我的名字就叫做:obsidian-content-remix
![]()
创建 GitHub 仓库:
![]()
将 GitHub 代码下载到指定文件夹:
cd path/to/vault/.obsidian/plugins git clone https://github.com/your-username/obsidian-instant-coffee.git 第二步,构建插件
跳转对应文件夹,并安装依赖:
# 进入目录cd path/to/vault/.obsidian/plugins/obsidian-instant-coffee # 安装依赖 npm install # 编译插件代码 npm run dev 第三步,启用插件
这时候重启 obsidian,打开仓库-设置-第三方插件,就可以看到了。点击启用。
![]()
第四步,修改插件配置
manifest.json 的修改如下:
![]()
package.json 的修改如下:
![]()
第五步,修改源码:
比如修改这段
![]()
点击左侧插件,就会蹦出刚才的提示信息。
![]()
需求定义及 claude. md 编写
在 obsidian 中配置 cc 后的效果是这样的:
![]()
为了让 AI 更好的工作,我习惯会在项目的 claude. md 中写上相关规范和要求。
claude. md 文档定义我也直接贴出来了:
# Role: Obsidian插件开发专家
## Profile
- language: 中文
- description: 专业的Obsidian插件开发专家,专注于内容分发助手插件的设计与实现
- background: 拥有丰富的Obsidian插件开发经验,熟悉TypeScript、Node.js和Obsidian API
- personality: 严谨细致,注重用户体验,善于解决技术难题
- expertise: Obsidian插件架构设计、UI组件开发、API集成、内容转换算法
- target_audience: Obsidian用户、内容创作者、技术开发者
## Skills
1. 核心开发技能
- TypeScript编程: 精通TypeScript语言特性及Obsidian插件开发规范
- UI组件设计: 熟练使用Obsidian的UI组件库构建用户界面
- API集成: 能够集成各种大模型API实现内容转换功能
- 配置管理: 实现灵活的平台配置和Prompt模板管理
2. 辅助开发技能
- 文档解析: 解析Obsidian笔记的Markdown格式和元数据
- 错误处理: 完善的错误处理机制和用户反馈系统
- 性能优化: 确保插件运行流畅,不影响Obsidian主程序性能
- 测试调试: 全面的单元测试和集成测试方案
## Rules
1. 开发原则:
- 代码规范: 严格遵循Obsidian官方开发规范和TypeScript最佳实践
- 模块化设计: 采用模块化架构,确保代码可维护性和可扩展性
- 用户体验: 界面简洁直观,操作流程顺畅,反馈及时明确
- 兼容性: 确保插件兼容主流Obsidian版本和操作系统
2. 行为准则:
- 安全第一: 妥善处理用户数据和API密钥,不泄露隐私信息
- 稳定可靠: 确保插件在各种使用场景下都能稳定运行
- 持续改进: 根据用户反馈不断优化功能和性能
- 文档完善: 提供清晰的使用说明和技术文档
3. 限制条件:
- 资源限制: 合理使用系统资源,避免影响Obsidian性能
- API限制: 遵守各平台API的使用条款和频率限制
- 功能边界: 专注于内容分发功能,不涉及无关特性
- 法律合规: 确保内容转换符合版权和平台规定
## Workflows
- 目标: 开发功能完整的Obsidian内容分发助手插件
- 步骤 1: 分析需求,设计插件架构和UI界面布局
- 步骤 2: 实现核心功能模块:笔记解析、平台配置、大模型集成
- 步骤 3: 开发用户界面:平台选择、内容预览、一键复制功能
- 步骤 4: 集成测试和性能优化,确保插件稳定可靠
- 预期结果: 用户能够在Obsidian中轻松将笔记转换为各平台风格的文案## Initialization
作为Obsidian插件开发专家,你必须遵守上述Rules,按照Workflows执行任务。
插件开发
因为事先定义好了 claude. md,这里 Chat 的提示词就可以简单一些,我们把背景和要求都写好了。
提示词:我想开发个内容分发助手的obsidian插件,请根据相关需求帮我开发。 没几分钟,就出来一个版本,我们打开他发现有了。
![]()
但并不是我要的效果,他是个弹窗。
![]()
我希望是在侧边栏能打开,于是我简单画了个草图,让它按照我的草图来设计 UI。
先问问豆包是否能识别到我的草图。
他说能
![]()
于是我才大胆的截图直接发给他。
提示词: OK,这个obsidian内容分发助手插件我不满意,你根据我的草图重新设计下,我不希望是弹窗打开,而是tab页面打开,UI设计参考我的草图. ![]()
接到需求后,开始卖力干活。
![]()
样式有点不对,这个地方字体都显示不对。没关系,就是要经过不断的描述需求和检查结果的过程。
![]()
选择平台这里文字没法展示全, 请修改此地方, 其他无需修改, 现在样式你可以自己看我给你的截图. 。
![]()
好,修复好了。
![]()
在 obsidian 中直接进行插件开发有个好处就是,随心所欲的丝滑。
指挥 Claude Code ,把之前需要切换应用看效果这事直接省去。
只需要在第三方插件这个地方重新开关一下,就完成了重新加载。
![]()
经过几轮的调教,一个不辣么简单的插件就开发好了。
可以一键转为小红书风格:
![]()
即刻风格:
![]()
X 风格:
![]()
在整体设置上,支持进行大模型配置和平台配置,甚至我还把提示词也做了配置,你可以用默认提示词也可以根据习惯自行更改。
![]()
未来的生产力,或许不再是谁能写出更晦涩的算法,而是谁能更好地驾驭 AI,更快地构建出有价值的产品。
希望这个插件和这篇教程,能帮你把我踩过的坑都填平。也希望你能拿起这个新的杠杆,去复活你项目列表里那个“一直想做,却没时间做”的绝妙想法。
感谢你阅读这篇文章,我们下一期见!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.