사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/zc277584121/marketing-skills --skill mermaid-to-image시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
Skill: Mermaid to Image
Convert mermaid code blocks in Markdown (or other text) files into PNG images, and replace the code blocks with image references. Useful for platforms that don't render Mermaid natively (GitHub Pages/Jekyll, Dev.to, etc.).
When to Use
- The user asks to convert Mermaid diagrams in a file to images
- The user wants to render specific Mermaid code blocks as PNG
- A publishing workflow requires static images instead of Mermaid code blocks
Workflow
Step 1: Identify target files
The user may specify:
- A single file:
convert mermaid blocks in docs/architecture.md - Multiple files:
convert mermaid in all files under docs/ - A specific code block:
convert the second mermaid block in README.md
Scan the target file(s) for mermaid code blocks. Report how many blocks were found and in which files before proceeding.
Step 2: Determine the image output directory
Check the project structure to find where images are typically stored:
# Look for common image directories
ls -d images/ img/ assets/ assets/images/ static/images/ docs/images/ 2>/dev/nullIf a clear image directory exists (e.g., images/, assets/images/), use it. Create a subdirectory by topic if appropriate (e.g., images/<topic>/).
If no image directory is obvious or multiple candidates exist, ask the user:
Where should I save the rendered Mermaid images?
1. images/ (create new)
2. assets/images/
3. docs/figures/
4. Custom — enter a pathStep 3: Render each diagram to PNG
Use the mermaid.ink API to render diagrams. Run this Python snippet for each block:
import base64, urllib.request
def render_mermaid(code: str, output_path: str):
"""Render a Mermaid diagram to PNG via mermaid.ink API."""
encoded = base64.urlsafe_b64encode(code.encode()).decode()
url = f"https://mermaid.ink/img/{encoded}?bgColor=white"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
resp = urllib.request.urlopen(req, timeout=30)
with open(output_path, "wb") as f:
f.write(resp.read())Important: The User-Agent header is required — mermaid.ink returns 403 without it.
Naming convention
Use descriptive filenames based on the diagram content, not generic names:
- GOOD:
architecture-overview.png,data-flow.png,heartbeat-sequence.png - BAD:
mermaid-1.png,diagram.png,image1.png
Step 4: Replace code blocks with image references
Replace each mermaid ... block with a Markdown image reference using a relative path from the file to the image:
If the project uses absolute URLs (e.g., GitHub Pages), use those instead:
Choose the link style that matches the project's existing image references. If unsure, use relative paths.
Step 5: Report results
After processing, summarize:
- How many diagrams were converted
- Where the images were saved
- Which files were modified
Edge Cases
- Large diagrams: mermaid.ink may time out on very complex diagrams. If a render fails, report the error and suggest the user simplify the diagram or try an alternative renderer.
- Multiple blocks in one file: process all blocks in order, give each a unique descriptive filename.
- Already-rendered blocks: if a mermaid block already has a corresponding image (commented out or adjacent), skip it or ask the user.
- Non-Markdown files: the same approach works for any text file containing mermaid code blocks (e.g.,
.rst,.txt).


