插件会将 Obsidian 的 Callout 语法(> [!type])转换为带样式的 HTML,在博客园中保留视觉效果。
| 类型 | 图标 | 颜色 | 别名 |
|---|---|---|---|
| note | 📝 | 蓝色 | - |
| abstract | 📋 | 青色 | summary |
| info | ℹ️ | 蓝色 | todo |
| tip | 💡 | 绿色 | hint, important |
| success | ✅ | 浅绿 | done |
| question | ❓ | 青绿 | help |
| warning | ⚠️ | 橙色 | caution, attention |
| failure | ❌ | 红色 | - |
| danger | ☠️ | 粉红 | error, bug |
| example | 📎 | 紫色 | - |
| quote | 💬 | 灰色 | cite |
> [!note] 标题
> 这是内容
转换为带左侧色条、背景色、图标的 HTML <div> 块。
支持 Obsidian 的 + / - 折叠语法:
> [!tip]+ 默认展开,可折叠
> 展开的内容
> [!faq]- 默认折叠,可展开
> 折叠的内容
[!type]+ → 默认展开,可点击折叠[!type]- → 默认折叠,可点击展开博客园兼容性说明:折叠功能使用 HTML 原生 <details>/<summary> 标签实现。为保证博客园 Markdown 渲染器正确处理,遵循以下规则:
<details> 和 <summary> 标签本身不加内联 style(否则 Markdown 渲染器会将其当作复杂 HTML 块跳过折叠)</summary> 后必须有空行(博客园 Markdown 渲染必需)<details> 内部的 <div> 上</details> 前留空行与内容分隔自动去除 Obsidian 的 %%注释%% 语法,注释内容不会出现在博客园文章中。
这段文字可见 %%这段是注释,不会同步%%
在笔记的 frontmatter 中添加 excerpt 属性,同步时会自动映射为博客园文章的摘要:
---
excerpt: 这是文章摘要
---
同步文章时,自动检测本地图片引用,上传至博客园图床并替换为网络地址,无需手动处理图片。
原始 Markdown
│
├─ 1. vault.cachedRead(file) 读取原始内容
├─ 2. findAllEmbeds() 获取图片嵌入信息
├─ 3. uploadImgs() 上传本地图片到博客园
├─ 4. replaceImgLocalToNet() 替换本地图片为网络地址(基于原始 offset)
├─ 5. stripObsidianComments() 去除 %%注释%%
├─ 6. convertCalloutsToHtml() Callout 语法转 HTML
│
└─ 上传文章
关键设计决策:图片替换(步骤4)必须在内容转换(步骤5-6)之前执行,因为 replaceImgLocalToNet() 依赖 EmbedCache 中记录的原始文件 offset 来定位图片语法。如果先做注释剥离或 Callout 转换,offset 会全部偏移,导致图片替换到错误位置。
<p> 包裹> > 嵌套)暂未处理getImg() 中使用固定根路径 / 解析图片链接,文件在子目录时相对路径图片可能找不到修复
EmbedCache 的 offset 与转换后的内容不匹配,图片链接替换到错误位置或未替换新增
> [!type]),支持 15 种类型,保留左侧色条、背景色、图标等视觉效果> [!type]+ / > [!type]-),使用 <details>/<summary> 实现博客园兼容的折叠/展开%%注释%%),注释内容不会同步到博客园excerpt 属性支持,自动映射为博客园文章摘要.cnb.yml 集成 npm install,开发环境启动时自动安装依赖关键 Bug 修复过程
\[!(\w+)([+-]?)\](标记在 ] 前)→ 修正为 \[!(\w+)\]([+-]?)(标记在 ] 后),与 Obsidian 实际语法 [!type]+ 一致<details>/<summary> 加内联 style 导致博客园 Markdown 渲染器跳过折叠 → 样式移至内部 <div> 和 <span></summary> 后缺少空行导致博客园 Markdown 渲染器不渲染内容 → 添加空行由于Markdown语法的便捷性, 我们从繁重的排版布局工作中解脱出来, 越来越多的人开始接受这种写作方式, 该插件可以将你的md笔记, 方便的同步到博客园中, 即使你是使用的本地图片, 也无须担心, 他都能轻松应对, 并且不会对你的本地文档造成任何影响
既然是Obsidian插件, 必然默认以及安装好了Obsidian这款编辑器
关闭安全模式,如果已经关闭可跳过此步骤 路径:
设置->选项->第三方插件

打开社区插件市场,这可能需要你会一点点的魔法 路径:
设置->选项->第三方插件

社区插件市场内搜索
Custom Attachment Location

点击搜索出的插件,点击安装

点击启用该插件

下载obsidian-sync-cnblog
操作步骤如上
我们需要进入到
设置->选项->文件与链接选项卡,将下图中红框内的设置项调整成与图片一致

进入
Custom Attachment Location选项卡,按照下图配置项依次配置即可 路径:设置->第三方插件->Custom Attachment Location

进入
obsidian-sync-cnblog选项卡,该选项卡中的除去locationPosts以外的所有参数均要参考自己的博客园账号,按照实际需求配置

访问如下链接 博客后台 - 博客园 (cnblogs.com),未登录用户会跳转登录页面, 输入自己的账号密码登录即可,登录成功后。会跳转博客园后台, 滑到页面底部即可看到如下页面

blogUrl,username,passwordlocationPosts 文章的同步目录,默认为仓库的根目录点击设置里的测试连接按钮,可以验证当前插件是否可用

启用插件后, 右键.md结尾的文件会出现
同步到博客园的按钮, 点击该按钮, 文章会自动发布到博客园

如果已经上传的文章, 再次点击
同步到博客园的按钮, 会对博客园已发布文章进行更新
当前插件会自动检查重命名操作, 如果该文章已经上传博客园, 并且进行了重命名, 博客园文章的名称也会自动进行重命名的操作