跳到主要内容

Markdown 图片替换器

⚡ 一款 Markdown 图片链接的替换工具

Build Status Docker Pulls (Backend) Docker Pulls (Frontend)

markdown_image_tool_01.png

在写文档的过程中,如果不是使用 在线文档工具(如:Yuque),那么同事之间的协作与共享往往会变得不够高效。

实际工作中经常会用到一些文档工程项目(比如 Docusaurus 框架,静态文档系统),但一旦需要审阅或协作编辑,就必须先 拉取整个项目工程,修改完之后还得额外处理其中的图片,比如 添加边框、压缩优化等操作,流程繁琐、效率低下。

虽然曾写过一个 图片处理工具 来缓解部分问题,但整体流程依然 重复机械、耗时费力

而即使选择 在线文档工具,在导出 Markdown 时又会遇到一系列问题:

  • 图片链接为 外链 CDN手动需要下载,图片还需要手动 添加边框、压缩优化等操作
  • 内容中混杂各种 HTML 标签影响页面展示与排版

此外,在将文章发布到 墨刀 等平台时,还经常会遇到 图片链接 无法识别的情况,这就要求必须 提前下载所有图片并替换图床,运营写作也面临同样的障碍。

那么,是否存在一种方式,既能在协作阶段使用语雀这类在线平台高效撰写,又能在导出阶段一键转换为文档工程所需格式?

为此开发了这个工具,用来 简化整个流程。典型的使用场景是:

  • 语雀 上撰写和 协作,保持内容 实时更新
  • 最终只需“一步导出”,即可生成 Markdown 文档并自动完成:
    • 下载语雀图片
    • 统一添加边框样式
    • 压缩图片体积
    • 清除无效 HTML 标签

功能特点

  • 双模式支持
    • GitHub 模式:将图片上传到指定仓库,替换链接为 raw.githubusercontent.com 地址
    • 本地模式:生成 ZIP 包,打包处理后的 Markdown 和图片资源
  • 图片压缩优化
    • 可选开启 TinyPNG 压缩,减少图片体积,优化加载速度
  • 实时日志输出
    • 处理进度可视化,通过日志流查看每一步情况

技术栈

  • 前端:React + TypeScript
  • 后端:Node.js + TypeScript
  • 图片处理:TinyPNG API(可选)

快速开始

一键安装

/bin/bash -c "$(curl -fsSL -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/hellojuantu/markdown-image-replacer/contents/docker/install_run.sh)"

访问:http://localhost:13001

一键升级

/bin/bash -c "$(curl -fsSL -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/hellojuantu/markdown-image-replacer/contents/docker/upgrade.sh)"

一键卸载

/bin/bash -c "$(curl -fsSL -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/hellojuantu/markdown-image-replacer/contents/docker/uninstall.sh)"

手动安装

Docker 安装

git clone https://github.com/hellojuantu/markdown-image-replacer.git
cd markdown-image-replacer/docker
echo 'APP_VERSION=0.0.2' > .env
docker compose up --build -d

访问:http://localhost:13001

开发环境

# 安装依赖
cd frontend && npm install
cd ../backend && npm install

# 启动服务
cd frontend && npm run dev
cd ../backend && npm run start

使用指南

  1. 进入页面,选择处理模式:

    • GitHub 模式:上传至指定仓库
    • 本地模式:生成压缩包下载
  2. 上传 Markdown 文件

  3. 可选:启用图片压缩

  4. 启动处理,等待日志输出完成

  5. 获取处理结果(复制或下载)

配置说明

GitHub 配置项

若使用 GitHub 模式上传图片并替换链接,需提前准备一个公开仓库,并提供访问凭证。以下是配置说明及操作步骤:

基本配置字段

字段说明
用户名GitHub 用户名(如:hellojuantu
仓库名用于存储图片的仓库名称(如:image-host
分支默认为 main
TokenGitHub 访问令牌,需有 repo 权限

如何创建一个 GitHub 仓库并获取配置

  1. 创建仓库

    • 打开 https://github.com/new
    • 填写仓库名称,如:image-host
    • 选择 Public
    • 点击 Create repository
    • 按照提示初始化分支,如:main
  2. 生成 GitHub Token

    • 打开 https://github.com/settings/tokens
    • 点击 Generate new token (classic)
    • 勾选 repo 权限(包括 repo:status, repo_deployment, public_repo, repo:invite
    • 复制生成的 Token(注意:只显示一次,请妥善保存)
  3. 填写配置信息

    • 在工具页面中输入上述信息:
      • 用户名:你的 GitHub 账户名
      • 仓库名:刚创建的仓库名,默认填 image-host
      • 分支:刚初始化的分支,默认填 main
      • Token:粘贴刚刚复制的 GitHub Token

图片设置

字段说明
启用压缩是否启用 TinyPNG 压缩
TinyPNG 密钥可在 官网 获取

总结

如果你也常常为了图床而烦恼,或许可以试试看这个工具。希望它能替你省下一些重复劳动的时间,把精力用在更有创造力的事情上。