Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🚀 md2picgo

🎨 一个优雅的 Markdown 图片上传工具 | Made with ❤️ by Sherry

✨ 特性

  • 🖼️ 自动将 Markdown 中的本地图片上传至图床
  • 🌐 支持多个主流图床服务
  • 🔄 支持批量处理整个文件夹
  • 🎯 支持拖拽上传文件
  • 🌈 多线程并行上传,效率更高
  • 🎨 优雅的日志显示界面
  • 🔌 支持 WordPress 图片链接转换和还原
  • 🔄 上传失败自动重试
  • 📝 保持原有 Markdown 格式
  • ⚙️ 灵活的配置管理系统

🌐 支持的图床

  • PicGo - 通过 PicGo 服务上传
  • 腾讯云COS - 腾讯云对象存储
  • 阿里云OSS - 阿里云对象存储
  • SM.MS - 免费图床服务
  • GitHub - 使用 GitHub 仓库作为图床
  • 七牛云 - 七牛云存储
  • 又拍云 - 又拍云存储
  • Imgur - 国际知名图床

💡 WordPress 链接功能

程序支持两种 WordPress 链接操作:

  1. 转换为 WordPress 链接 - 将图片链接转换为 //images.weserv.nl/?url= 格式,通过 CDN 加速访问
  2. 去除 WordPress 前缀 - 将 WordPress 格式的链接还原为原始链接

🚀 快速开始

安装依赖

pip install -r requirements.txt

运行程序

python main.py

⚙️ 配置说明

点击程序中的"配置"按钮,可以设置以下选项:

图床配置

PicGo

腾讯云COS

  • Secret ID: 腾讯云 API 密钥 ID
  • Secret Key: 腾讯云 API 密钥
  • Bucket: 存储桶名称
  • Region: 地域(如:ap-guangzhou)

阿里云OSS

  • Access Key ID: 阿里云访问密钥 ID
  • Access Key Secret: 阿里云访问密钥
  • Bucket: 存储桶名称
  • Endpoint: 访问域名(如:oss-cn-hangzhou.aliyuncs.com)

SM.MS

  • API Token: SM.MS API 令牌(可选)

GitHub

  • Token: GitHub Personal Access Token
  • Repository: 仓库名称(格式:username/repo)
  • Branch: 分支名称(默认:main)
  • Path: 存储路径(默认:images)

七牛云

  • Access Key: 七牛云访问密钥
  • Secret Key: 七牛云密钥
  • Bucket: 存储空间名称
  • Domain: 绑定的域名

又拍云

  • Operator: 操作员名称
  • Password: 操作员密码
  • Bucket: 存储空间名称
  • Domain: 绑定的域名

Imgur

  • Client ID: Imgur 应用客户端 ID

WordPress 选项

  • 转换为 WordPress 图片链接: 启用后,所有图片链接将转换为 WordPress CDN 格式
  • 去除 WordPress 链接前缀: 启用后,将还原 WordPress 格式的链接为原始链接

其他配置

  • 图片路径前缀: 用于处理相对路径的图片,设置图片文件的基础路径

🛠️ 使用方法

  1. 打开程序,点击"配置"按钮选择图床类型并填写配置信息
  2. 拖拽 Markdown 文件或文件夹到程序窗口,或点击"选择文件"/"选择目录"按钮
  3. 程序会自动上传本地图片并替换链接
  4. 根据配置,自动处理 WordPress 链接转换
  5. 查看日志了解处理进度和结果

🎨 界面预览

📦 依赖说明

必需依赖

  • Python 3.6+
  • PyQt5 >= 5.15.0
  • requests >= 2.25.0

可选依赖(根据使用的图床安装)

  • cos-python-sdk-v5 >= 1.9.0 (腾讯云COS)
  • oss2 >= 2.15.0 (阿里云OSS)
  • qiniu >= 7.4.0 (七牛云)

🌟 特别说明

  • 支持的图片格式:png, jpg, jpeg, gif, bmp(大小写不敏感)
  • 使用 PicGo 图床时,需要 PicGo 在后台运行(默认端口:36677)
  • 建议在处理前备份重要文件
  • 支持批量处理整个 Obsidian 仓库
  • 自动识别并处理所有本地图片链接
  • 配置信息保存在 config.json 文件中
  • 支持绝对路径和相对路径的图片

🔒 安全提示

  • 配置文件中包含敏感信息(如 API 密钥),请妥善保管
  • 不要将 config.json 文件提交到公共代码仓库
  • 建议定期更换 API 密钥

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📝 许可

MIT License © 2025 Sherry

🎉 致谢

  • PicGo - 优秀的图床工具
  • Obsidian - 强大的知识管理工具
  • 各大云服务提供商的优质对象存储服务

🎨 Sherry's Notes: 希望这个小工具能让你的写作流程更加顺畅!如果觉得有帮助,欢迎给个 Star ⭐️

🔨 开发者指南

打包程序

快速打包

# Windows
build.bat

# 或使用Python脚本
python build.py

手动打包

pip install pyinstaller
pyinstaller --name=md2picgo --onefile --windowed --icon=icon/hello kitty.ico --add-data=icon;icon main.py

发布到GitHub

使用自动脚本

# 打包并发布
build_and_release.bat

# 或分步执行
python build.py
python release.py

手动发布

  1. 打包程序
  2. 提交代码到GitHub
  3. 在GitHub创建Release
  4. 上传exe文件

详见 RELEASE.md

📂 项目结构

md2picgo/
├── main.py                 # 程序入口
├── ui.py                   # 用户界面
├── uploader.py            # 上传逻辑
├── config_manager.py      # 配置管理
├── wordpress_processor.py # WordPress处理
├── image_hosts/           # 图床适配器
│   ├── base.py           # 基类
│   ├── factory.py        # 工厂类
│   ├── gitee.py          # Gitee
│   ├── tencent_cos.py    # 腾讯云COS
│   ├── aliyun_oss.py     # 阿里云OSS
│   ├── smms.py           # SM.MS
│   ├── github.py         # GitHub
│   ├── qiniu.py          # 七牛云
│   ├── upyun.py          # 又拍云
│   └── imgur.py          # Imgur
├── icon/                  # 图标文件
├── config.json.example    # 配置示例
├── build.py              # 打包脚本
├── release.py            # 发布脚本
└── README.md             # 说明文档

About

将md中本地图片自动更换成图床链接

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages