MD Base64

approvedunreviewed

by Hadesr

将当前笔记导出为图片内联的单文件 Markdown,支持 Wiki 与标准图片语法,不依赖 Electron,桌面与移动端通用.

Updated todayMIT

MD Base64

一个 Obsidian 插件:把当前笔记导出成「图片内联」的单文件 Markdown —— 发给别人、丢进任何 Markdown 阅读器都不缺图。原笔记一个字都不动。

author version platform

零依赖 —— 不用任何第三方库,也不用 Electron 那个已经被移除的 @electron/remote。桌面(Windows / macOS / Linux)与移动端(iOS / iPadOS / Android)通用。


目录


它解决什么问题

笔记里引用了一堆本地图片,一旦笔记发出去(微信 / 邮件 / 别的编辑器),图片链接全断 —— 因为对方没有你的图库。

这个插件把每张图片转成 data:image/png;base64,... 内联进正文,产出一个自包含的 .md:单文件带走,图永远在。


特性

能力说明
两种语法都认![[图片.png]](wiki 嵌入)和 ![别名](图片.png)(标准 markdown)
保留语义![[a.png|300]] 的宽度用 <img width> 保住;![alt](a.png "title") 的别名保留
幂等已经是 data: 的图片自动跳过 → 可反复导出,不会二次膨胀
进度提示导出时显示"正在内联图片 3/12"
失败清单哪张图没找到会明确列出,而不是静默留个坏链接
远程图可选内联![x](https://…) 也能下载内联(走 Obsidian requestUrl,绕 CORS)
两种落地方式浏览器下载 / 写入库内指定文件夹(手机也方便)
右下角状态栏按钮点一下就导出
原笔记不动只读源文件,产物是另存的新文件
桌面 + 移动isDesktopOnly: false,手机端同样可用

和同类插件对比

只对比常见实现方式,不针对某一个插件。

对比项常见同类插件MD Base64
![[图片.png]](wiki 嵌入)✅ 大多数支持✅
![别名](图片.png)(标准 markdown)⚠️ 部分实现会漏掉✅
![别名](<路径 含空格.png>)⚠️ 视实现而定✅
![[图片.png|300]] 的宽度⚠️ 部分实现会丢宽度✅ 用 <img width> 保住
重复导出⚠️ 可能二次膨胀✅ 幂等(data: 自动跳过)
旧版 Electron 依赖⚠️ 部分旧实现依赖✅ 不依赖
移动端⚠️ 部分仅桌面端✅ isDesktopOnly: false,手机能用
找不到的图片⚠️ 可能静默留坏链接✅ 明确清单
进度提示⚠️ 部分没有✅ 正在内联图片 3/12
导出方式⚠️ 弹原生"另存为"✅ 浏览器下载/写入库内文件夹
远程图片⚠️ 部分不支持✅ 可选内联(走 requestUrl 绕 CORS)
复制到剪贴板⚠️ 部分没有✅ 额外命令

安装

方式一:社区插件市场

设置 → 第三方插件 → 关闭安全模式 → 浏览 → 搜索 MD Base64 → 安装 → 启用。

方式二:Git / 手动安装

git clone https://github.com/Hadesls/MDbase64.git

把仓库里的 main.js、manifest.json、styles.css 放进:

<你的笔记库>/.obsidian/plugins/mdbase/

然后在 Obsidian → 设置 → 第三方插件 → 关闭安全模式 → 启用 MD Base64。

也可以直接在 GitHub 仓库页点 Code → Download ZIP,解压后取那三个文件。

目录名必须是 mdbase,与 manifest.json 里的 id 一致,否则加载不了。

手机 / iOS:优先用社区市场安装;手动拷贝时,系统「文件」App 看不到 .obsidian,建议在电脑上操作。


用法

两种入口:

  1. 右下角状态栏按钮「导出 Base64」 —— 点一下导出当前笔记
  2. 命令面板 Ctrl/Cmd + P
    • MD Base64: 导出当前笔记为 Base64 MD(图片内联)
    • MD Base64: 复制当前笔记(Base64 内联)到剪贴板(不落盘)

当前不是 .md 笔记时,上面两条命令会自动置灰。

导出完成后会提示:落到哪、内联了几张、有没有找不到的。


设置

设置 → MD Base64:

顶部是居中的「MD Base64」文字 logo,下面分三张卡片:导出设置 / 支持的图片语法 / 支持的图片格式。

字段说明默认
导出方式浏览器下载 = 触发系统下载 / 写入库内文件夹 = 直接存到库里(手机更方便)浏览器下载
库内导出文件夹仅"写入库内"模式显示。不存在会自动创建。文件名 = 原笔记名.base64.mdExports
导出后自动打开仅"写入库内"模式显示关
也内联远程图片![x](https://…) 也下载内联。网络慢 / 图大时导出会久一点关

支持的图片语法

![[图片.png]]
![[图片.png|300]]          ← 300 是宽度,用 <img width> 保住
![[图片.png|别名]]
![别名](图片.png)
![别名](<含 空格 的路径.png>)
![别名](图片.png "标题")

已经是 data: 的图片会自动跳过 → 可反复导出,不会二次膨胀。


支持的图片格式

png / jpg / jpeg / gif / webp / bmp / svg / avif / ico / tif / tiff

要加格式:改 main.js 顶部的 MIME 表,加一行即可。


已知边界

  1. 产物会变大:base64 让图片体积膨胀约 33%(3MB 的图 → 4MB 文本)。base64 的物理特性,任何实现都一样。
  2. 导出瞬间会忙一下:图片多 / 大时,读图 + 编码要几百毫秒到几秒(一次性)。日常写作零开销 —— 那段代码只在点导出时执行。
  3. 找不到的图片保持原样,并在提示里列出来。
  4. 远程图片默认不内联(要在设置里打开)。
  5. SVG 走 image/svg+xml 内联;部分编辑器对 SVG 的 data URI 支持不好,属正常现象。
  6. 写入库内模式下,同名 *.base64.md 会被直接覆盖(不生成副本)。

许可

MIT License —— 详见 LICENSE。

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.