Skip to content

Aibd/md-pipeline-lite

Repository files navigation

md-pipeline-lite

解决什么问题

  • 发布前图片和视频分散在本地,手动整理麻烦
  • 外链与本地混用,迁移或分享时容易丢失素材
  • 排版风格不统一,发布前需要反复手工调整

功能

  • 将 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 排版

About

A simple workflow to automatically upload local images/videos, replace them with external links, and beautify Markdown before publishing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages