Skip to content
Agentmart
Submit a tool

mph-figure

Render markdown or HTML into a crisp, accurately-rendered PNG — tables, data figures, stat cards — for inlining into Substack posts (where markdown tables…

Skill by mphinance

IndexedMIT★ 29
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/mphinance-mph-figure

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Render markdown or HTML into a crisp, accurately-rendered PNG — tables, data figures, stat cards — for inlining into Substack posts (where markdown tables render as garbage) or anywhere a real-browser-rendered image beats a hand-drawn one. Use whenever a post or doc needs a table-as-image, or any markdown/HTML turned into a picture.

Use cases: documents, frontend, data

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/mph-figure

What's inside

Skill name
mph-figure
Description
Render markdown or HTML into a crisp, accurately-rendered PNG — tables, data figures, stat cards — for inlining into Substack posts (where markdown tables render as garbage) or anywhere a real-browser-rendered image beats a hand-drawn one. Use whenever a post or doc needs a table-as-image, or any markdown/HTML turned into a picture.
License
MIT
Instructions
59 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (6)

  • .gitignore
  • SKILL.md
  • build_pdf_ofm.mjs
  • package-lock.json
  • package.json
  • render.mjs · scripts/

SKILL.md (first lines)

# MPH Figure

Turns markdown (or raw HTML) into a pixel-accurate image: it renders the content in a
real browser via Playwright and screenshots it. Because a browser does the layout, the
output has full CSS fidelity — real fonts, text wrapping, column alignment, the lot.
More accurate than SVG-shortcut generators, which only support a subset of CSS.

Built mainly for one job: **Substack cannot render markdown tables.** The
`mph-substack-writer` skill mandates "generate an image instead." This skill is how you
generate it.

## When to use it

- A Substack post (or any doc) needs a **table** — render it as an image instead of
  writing a raw markdown table.
- Any time structured content (a comparison, a stat block, a small data card) reads
  better as a clean image than as plain markdown.

## One-time setup

This skill bundles a script with dependencies. Run once:

```
cd ~/.claude/skills/mph-figure
npm install
npx playwright install chromium   # skip if Playwright's browser is already installed
```

## How to use it

1. Write the figure as **markdown** (a normal markdown table works; column alignment
   with `:---:` is respected) and save it to a file, e.g. `figure.md`.
2. Render it:

   ```
   node ~/.claude/skills/mph-figure/scripts/render.mjs --in figure.md --out figure.png
   ```

3. Inline the result in the post: `![caption](figure.png)`.

Need full control of the markup? Pass a `.html` file (or add `--html`) instead.

## Options

- `--in <file>`     markdown or HTML input (required)
- `--out <file>`    output PNG (required)
- `--width <px>`    figure width, default 720 (a good Substack inline width)
- `--scale <n>`     sharpness / device scale, default 2 (retina-crisp)
- `--theme <name>`  visual theme, default `bloomberg`
- `--html`          treat the input as raw HTML regardless of extension

## Theme

`bloomberg` — a dark, sharp, data-first look: near-black card, amber accents, clean
tables with uppercase headers and tabular numerals. This is the "dark theme, Bloomberg
aesthetic" `mph-substack-writer` asks for. Add more themes to the `THEMES` map in
`scripts/render.mjs`.

From mphinance/alpha-skills, MIT.

More from mphinance/alpha-skills

Signals

Stars
29
Forks
6
Open issues
0
Last commit (this folder)
Jun 16, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from mphinance

Cite this page

mph-figure skill. Agent Mart. https://agentmart.dev/skills/mphinance-mph-figure (last updated 2026-10-24)