- 发布前图片和视频分散在本地,手动整理麻烦
- 外链与本地混用,迁移或分享时容易丢失素材
- 排版风格不统一,发布前需要反复手工调整
- 将 Markdown 内的本地图片上传到 Postimage,并替换为外链引用
- 将本地视频上传到 Catbox,并替换为视频标签
- 用 Gemini 3 Flash(google-genai)对 Markdown 排版重写 支持 Obsidian 视频嵌入 ![[xxx.mp4]] 替换为 HTML 视频标签
- 发布前自动把图片和视频统一转为外链
- 避免本地素材管理负担
- 自动美化排版用于对外发布
Obsidian 写作 ↓ 运行发布脚本 ↓ 自动上传图片/视频 ↓ 替换为外链 ↓ 自动套排版 ↓ 输出发布版 Markdown / HTML
| 服务 | 支持 API | 稳定性 | 备注 |
|---|---|---|---|
| postimg.cc | 支持 | ⭐⭐⭐⭐ | 只支持图片 |
| Freeimage.host | 支持 | ⭐⭐⭐ | 只支持图片 |
| catbox.moe | 支持 | ⭐⭐⭐ | 支持图片和视频 |
当文件床返回的内容类型为 application/octet-stream 时,建议使用 HTML 视频标签:
<video controls width="800">
<source src="https://files.catbox.moe/ic194e.mp4" type="video/mp4">
</video>md-pipeline-lite/
README.md
requirements.txt
.env.example
.env
pipeline.py
media_uploader.py
llm_formatter.py
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt复制 .env.example 为 .env 并填写:
IMAGE_UPLOAD_API_KEY=
IMAGE_UPLOAD_URL=https://api.postimage.org/1/upload
IMAGE_UPLOAD_USER_AGENT=Postimage/1.0.1
VIDEO_UPLOAD_API_KEY=
VIDEO_UPLOAD_URL=https://catbox.moe/user/api.php
GEMINI_API_KEY=你的_gemini_key
MODEL_NAME=gemini-3-flash-preview
LLM_FORMAT_PROMPT="""
帮我排版,
使用清晰的分级标题(如“一、二、三级标题”)划分大类别,搭配短描述+图片嵌入呈现案例,保持简洁的图文对应关系。
重点用加粗突出关键操作(如“替换”“修复”),并用列表格式整理多步骤内容。
【输出要求】
- 仅输出排版后的 Markdown 内容
- 不要包含提示词、分析过程或额外文字
"""
在仓库根目录运行:
python pipeline.py "example.md"处理目录(递归所有 .md):
python pipeline.py "."- pipeline.py:主流程入口
- media_uploader.py:图片上传与替换
- llm_formatter.py:AI 排版