Obsidian Publish 里图片不居中?别碰 CSS,先看 Markdown 写法
obsidian publish 对 html 标签支持极有限,<img> 的 align、style 属性全被过滤,直接写 <img src="x.jpg" style="text-align:center"> 没用。能生效的只有原生 markdown 图片语法配合特定修饰。
- 用  是默认左对齐,无额外控制
- 想居中?必须套一层 <div align="center">...</div> —— 这是 Publish 唯一保留的内联对齐方式
- 路径必须是相对 Obsidian 库根目录的路径,比如图片在 assets/cat.jpg,就写 ,不能写 ./assets/cat.jpg 或绝对路径
- 不要用 Typora 风格的 ![alt]{width=50%},Publish 完全不识别
发布后图片变模糊或错位?检查 WebP 转换和尺寸逻辑
Obsidian Publish 会自动把 PNG/JPEG 转成 WebP,并强制压缩——这会导致高精度截图、代码截图边缘发虚,或 SVG 被转成位图失真。它还悄悄重设了最大宽度(通常是 800px),超出部分会被缩放,破坏原始比例。
- SVG 图片尽量别放进 Publish:会被转成 WebP,矢量优势全丢
- 需要精确尺寸?提前在本地用 ImageMagick 或 Squoosh 把图裁好、导出为 WebP,再上传,绕过 Publish 自动压缩
- 截图类图片建议用 PNG + 小尺寸(≤800px 宽),避免二次压缩放大锯齿
- 如果图里有文字,别依赖缩放,Publish 不支持 srcset 或响应式 picture 标签
想让多张图横排显示?Markdown 表格是唯一可靠方案
Obsidian Publish 不支持 Flexbox、CSS Grid,display: flex 和 float 全部失效。试图用多个 <div align="center"> 并列?它们会垂直堆叠,不是横排。
- 唯一稳定方式:用 Markdown 表格,每张图占一列,例如:
- |  |  |  |
- 表格本身会被居中(如果整行没其他内容),三张图自动等宽横排
- 列数别超过 4,否则在手机端会横向滚动,Publish 不加 overflow-x: auto
- 别给表格加 :---: 对齐符,会影响图片渲染位置,留空最稳
本地预览和 Publish 效果不一致?重点查 base-url 和路径大小写
Obsidian 本地预览用的是 file:// 协议,而 Publish 是 https://your-vault.obsidian.md/,路径解析规则不同。更麻烦的是 Publish 服务端区分大小写,但 Windows/macOS 本地文件系统不区分——你本地看着好好的 ,发布后可能 404。
- 所有图片路径统一用小写字母 + 短横线,如 diagram-flow.png,别用 Diagram_Flow.PNG
- 别依赖 Obsidian 的「嵌入链接」右键生成路径,手动确认路径从库根开始,且全部小写
- 如果用了插件(如 Media Extended)生成的路径,Publish 通常不认,得手动改成标准 
- 发布前用浏览器打开 https://your-vault.obsidian.md/assets/xxx.jpg 直接测路径,比猜快得多
图片对齐这事,表面是排版,实际卡点全在 Publish 的路径规则、HTML 白名单和自动压缩策略上。调样式不如调路径,写 CSS 不如写表格——它不给你发挥空间,那就按它的规矩来。