Markdown To Image Serve
基于 Next.js 和 Puppeteer 的 Markdown 转图片服务,支持 Docker 一键部署和 API 调用
将 Markdown 内容转换为精美图片,提供开箱即用的 API 接口,支持 Docker 快速部署和二次开发。
简体中文 | [English](./README_EN.md)🎯 项目简介
Markdown To Image Serve 是一个开箱即用的 Markdown 转图片 API 服务,支持以下特性:
- 🚀 一键部署(支持 Docker Compose)
- 🔄 简单易用的 RESTful API
- 🎨 自定义样式、页眉页脚和主题模板
- 📱 响应式设计,适配多种尺寸
- 🌐 多平台支持(Docker 等)
- 🔒 图片防盗链与访问控制
🌟 核心功能
- 📝 Markdown 文本转精美图片
- 🎨 支持自定义主题和样式
- 📊 代码高亮与表格渲染
- 🖼️ 自定义页眉页脚
- 📱 响应式输出
- 🔄 批量转换
- 📦 完整 API 支持
🚀 快速开始
在线体验
本地开发
克隆项目
bashgit clone https://github.com/your-username/markdown-to-image-serve.git cd markdown-to-image-serve
安装依赖
bashpnpm install
配置环境变量
新建.env
文件,内容如下:envNEXT_PUBLIC_BASE_URL=http://localhost:3000 CHROME_PATH=/path/to/your/chrome # Chrome 浏览器路径
启动开发服务器
bashpnpm dev
Chrome 路径获取方式
- macOS:bash
ls -l /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
- Linux:bash
which google-chrome # 或 which chromium
- Windows:powershell
Get-Command chrome | Select-Object -ExpandProperty Definition # 或在 chrome://version/ 查看"可执行文件路径"
Docker 部署(推荐)
使用 Docker Compose
bashdocker-compose up -d # 或 docker compose build --no-cache
注意:
- x86 架构(Linux/Windows/Mac Intel):请将
docker-compose.yml
中的 platform 设置为linux/x86
- Apple Silicon:请设置为
linux/amd64
- x86 架构(Linux/Windows/Mac Intel):请将
直接使用 Docker
bashdocker build -t markdown-to-image-serve . docker run -p 3000:3000 markdown-to-image-serve
📚 API 文档
1. 生成海报(POST /api/generatePoster
)
请求参数:
json5
{
"markdown": "string", // Markdown 内容
"header": "string", // 可选:页眉文本
"footer": "string", // 可选:页脚文本
"logo": "string", // 可选:logo图片url
"theme": "blue | pink | purple | green | yellow | gray | red | indigo | SpringGradientWave" // 可选:主题
}
示例请求:
bash
curl -X POST 'http://localhost:3000/api/generatePoster' \
-H 'Content-Type: application/json' \
-d '{
"markdown": "# Hello World\n\nThis is a test. \n # 你好,世界!",
"header": "My Header",
"footer": "My Footer"
}'
2. 生成图片(POST /api/generatePosterImage
)
请求参数与 /api/generatePoster
相同。
🛠 开发计划
- Docker 部署支持
- 自定义主题功能
- 图片压缩优化
- 批量生成功能
- 中文字体优化
- 自定义模板系统
- API 访问控制
🤝 贡献指南
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/AmazingFeature
- 提交改动:
git commit -m 'Add some AmazingFeature'
- 推送分支:
git push origin feature/AmazingFeature
- 提交 Pull Request
📄 许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。
致谢
感谢 markdown-to-image 项目的启发。
如果本项目对你有帮助,欢迎 star 支持!⭐️