开箱即用的 Markdown 转图片 API 服务的封面图

开箱即用的 Markdown 转图片 API 服务

一个基于 Next.js 和 Puppeteer 的 Markdown 转图片服务,支持 Docker 部署和 API 集成。A Markdown to Image Service based on Next.js and Puppeteer, supporting Vercel deployment and API integration.

🎯 项目简介

Markdown To Image Serve 是一个开箱即用的 Markdown 转图片 API 服务,支持以下特性:

  • 🚀 一键部署(支持 Docker Compose)
  • 🔄 简单易用的 RESTful API
  • 🎨 自定义样式、页眉页脚和主题模板
  • 📱 响应式设计,适配多种尺寸
  • 🌐 多平台支持(Docker 等)
  • 🔒 图片防盗链与访问控制

示例1
示例2
示例3


🌟 核心功能

  • 📝 Markdown 文本转精美图片
  • 🎨 支持自定义主题和样式
  • 📊 代码高亮与表格渲染
  • 🖼️ 自定义页眉页脚
  • 📱 响应式输出
  • 🔄 批量转换
  • 📦 完整 API 支持

🚀 快速开始

在线体验

本地开发

  1. 克隆项目

    bash
    git clone https://github.com/your-username/markdown-to-image-serve.git
    cd markdown-to-image-serve
  2. 安装依赖

    bash
    pnpm install
  3. 配置环境变量
    新建 .env 文件,内容如下:

    env
    NEXT_PUBLIC_BASE_URL=http://localhost:3000
    CHROME_PATH=/path/to/your/chrome  # Chrome 浏览器路径
  4. 启动开发服务器

    bash
    pnpm 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 部署(推荐)

  1. 使用 Docker Compose

    bash
    docker-compose up -d
    # 或
    docker compose build --no-cache

    注意:

    • x86 架构(Linux/Windows/Mac Intel):请将 docker-compose.yml 中的 platform 设置为 linux/x86
    • Apple Silicon:请设置为 linux/amd64
  2. 直接使用 Docker

    bash
    docker 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 相同。


致谢

感谢 markdown-to-image 项目的启发。

如果本项目对你有帮助,欢迎 star 支持!⭐️

相关文章推荐

基于当前文章的分类和标签为您推荐相关内容

订阅管理与提醒系统

by affdirs
基于Cloudflare Workers的轻量级订阅管理系统,帮助您轻松跟踪各类订阅服务的到期时间,并通过Telegram,企业微信等发送及时提醒。

Awesome Cloudflare

by affdirs
精选的 Cloudflare 工具、开源项目、指南、博客和其他资源列表。

独立开发者出海技术栈

by affdirs
出海第一站,搞定技术栈, 聚合全网独立开发者出海技术栈和工具, 技术出海相关的技术实践经验、合规解读、方案选型等

小报童专栏甄选

by affdirs
完全手工甄选优质专栏,助力更有价值信息传播
2025-7-12