← Back to Skills Marketplace
fengsh0923

Article to Infographic

by Frank Shen · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
1044
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install article-to-infographic
Description
Transform articles, blog posts, reports, or any text content into visually stunning, self-contained HTML infographics. Use when the user wants to convert tex...
README (SKILL.md)

Article to Infographic

Transform any article or text content into a visually compelling, self-contained HTML infographic. Output is a single HTML file with inline CSS/JS -- zero dependencies, opens in any browser, print-ready for PDF export.

Core Philosophy

  1. Content-First -- Analyze the article before choosing layout.
  2. Smart Layout -- Match infographic type to content type automatically.
  3. Distinctive Design -- No generic AI aesthetics. Every infographic feels custom-crafted.
  4. Zero Dependencies -- Single HTML file with inline CSS/JS.
  5. Print-Ready -- Include print media queries for clean PDF export.

Workflow Overview

Strict 3-Step Confirmation Process:

Step 1: Outline Confirmation (BLOCKING)
   ↓ User must confirm
Step 2a: Layout Selection (BLOCKING)
   ↓ User must confirm
Step 2b: Style Selection (BLOCKING)
   ↓ User must confirm
Step 2c: Illustrations (BLOCKING)
   ↓ User must confirm
Step 3: Output Format (BLOCKING)
   ↓ User must confirm
Generation Phase (automatic)

CRITICAL RULE: Each step requires explicit user confirmation before proceeding. Do NOT batch confirmations. Do NOT proceed to next step until current step is confirmed.


Detailed Workflow

  1. Acquire and analyze article content
  2. Extract key information and classify content type
  3. Step 1: Present outline → Get explicit confirmation
  4. Step 2a: Present layout options → Get explicit confirmation
  5. Step 2b: Present style options → Get explicit confirmation
  6. Step 2c: Present illustration options → Get explicit confirmation
  7. Step 3: Present output format options → Get explicit confirmation
  8. Generate the HTML infographic (only after all confirmations)
  9. Export to PNG if selected in Step 3
  10. Deliver the final output

Confirmation Flow Summary (For AI Reference)

When executing this skill, follow this EXACT sequence:

Phase Step Action User Confirmation Required
1 Content Acquisition Get article URL/file/text ❌ No
2 Content Analysis Extract info, classify type ❌ No
2.5 Step 1 Present outline table MUST CONFIRM
3a Step 2a Present layout options MUST CONFIRM
3b Step 2b Present style options MUST CONFIRM
3c Step 2c Present illustration options MUST CONFIRM
4 Step 3 Present output format options MUST CONFIRM
5 Generation Create HTML ❌ Automatic
6 Delivery Present results ❌ Automatic
7 PNG Export If selected in Step 3 ❌ Automatic

FORBIDDEN ACTIONS:

  • ❌ Never combine Step 1 + Step 2 confirmations
  • ❌ Never combine Step 2a + 2b + 2c into one question
  • ❌ Never combine Step 2 + Step 3 confirmations
  • ❌ Never proceed to generation without all 3 steps confirmed

Phase 1: Content Acquisition

Determine the content source:

  • URL -- Use WebFetch to retrieve article content
  • File -- Read the file directly
  • Pasted text -- Use as-is

If content is ambiguous or too short, ask for clarification.


Phase 2: Content Analysis

Extract from the article:

  1. Title and subtitle -- Main topic and secondary context
  2. Key statistics -- Numbers, percentages, data points
  3. Key points -- 4-8 most important takeaways
  4. Quotes -- Notable statements
  5. Comparisons -- Before/after, pros/cons, A vs B
  6. Sequential steps -- Process flows, timelines, chronological events
  7. Categories -- Natural groupings
  8. Entities -- People, organizations, places

Classify the best infographic type:

Content Signal Infographic Type
Dates, milestones, chronological events Timeline
Numbers, percentages, survey data Statistics Dashboard
A vs B, pros/cons, before/after Comparison
Step-by-step, how-to, tutorial Process Flow
Multiple independent tips/facts Listicle / Card Grid
Mixed content types Magazine / Editorial

Phase 2.5: Step 1 - Outline Confirmation (BLOCKING)

⚠️ CRITICAL: Must get explicit user confirmation before proceeding to Phase 3.

After content analysis, present the user with a structured outline in table form:

| Block | Content | Notes |
|---|---|---|
| Header | Title + subtitle | Top section |
| Hero Stats (3) | [stat1] / [stat2] / [stat3] | Key data highlights |
| ... | ... | ... |

DO NOT proceed until user explicitly confirms.

Using AskUserQuestion:

  • Header: "Step 1/3: Outline Confirmation"
  • Question: "Please review the outline above with [N] blocks. Confirm to proceed or request changes:"
  • Options:
    • "✅ Outline confirmed - proceed to style selection" -- ONLY THEN go to Phase 3
    • "📝 Need adjustments" -- User specifies changes (add/remove/modify blocks), then RE-CONFIRM
    • "🔄 Simplify to core blocks" -- Auto-trim to core blocks only, then RE-CONFIRM

Hard rule: If user chooses adjustments, update the outline and return to this same confirmation step. Do NOT proceed to Phase 3 until "✅ Outline confirmed" is selected.


Phase 3: Step 2 - Style Selection (BLOCKING)

⚠️ CRITICAL: Must get explicit user confirmation for BOTH layout AND style before proceeding to Phase 4.

This phase requires TWO separate confirmations:

Step 2a: Layout Selection (BLOCKING)

Using AskUserQuestion:

  • Header: "Step 2a/3: Layout Selection"
  • Question: "Based on your article, I recommend a [detected type] layout. Confirm your choice:"
  • Options:
    • "✅ [detected type] - recommended"
    • "📊 Statistics Dashboard"
    • "📅 Timeline"
    • "⚖️ Comparison"
    • "🔄 Process Flow"
    • "📝 Listicle / Card Grid"
    • "📖 Magazine / Editorial"

STOP HERE. Wait for user selection. Do NOT show style options yet.

Step 2b: Style Selection (BLOCKING)

ONLY after layout is confirmed, present style options:

Using AskUserQuestion:

  • Header: "Step 2b/3: Visual Style Selection"

  • Question: "What visual style for the [confirmed layout] infographic?"

  • Options (show 4-5 most relevant):

    Standard Styles:

    • "🎨 Bold & Vibrant" -- High contrast, saturated colors, strong visual impact
    • "🌿 Clean & Minimal" -- Whitespace, subtle colors, elegant typography
    • "🌃 Dark & Techy" -- Dark backgrounds, neon accents, modern feel
    • "📰 Warm & Editorial" -- Magazine-style, warm tones, serif typography

    Premium Styles:

    • "🚀 Sci-fi HUD" -- Cyberpunk terminal, particle network, neon glow
    • "💎 Premium Magazine" -- Luxury editorial, massive serif typography
    • "🔮 Glassmorphism Aurora" -- Frosted glass, animated aurora blobs

STOP HERE. Wait for user selection.

Step 2c: Illustrations (optional, but ASK)

Using AskUserQuestion:

  • Header: "Step 2c/3: Illustrations (Optional)"
  • Question: "Add illustrations to the [confirmed style] infographic?"
  • Options:
    • "🚫 No illustrations - text and data only"
    • "🔹 Decorative icons - small SVG icons next to headings"
    • "👤 Character illustrations - full SVG characters from open-source libraries"

ONLY after all 2a→2b→2c are confirmed, proceed to Phase 4.

For detailed color palettes and font pairings per style, see references/style-presets.md.


Phase 4: Step 3 - Output Format Confirmation (BLOCKING)

⚠️ CRITICAL: Must get explicit user confirmation for output format BEFORE generating anything.

Using AskUserQuestion:

  • Header: "Step 3/3: Output Format"
  • Question: "How would you like to receive the [confirmed style] infographic?"
  • Options:
    • "📄 HTML only - single file, opens in browser"
    • "🖼️ HTML + PNG - include high-res image export"
    • "📦 Both formats - explicit delivery of both files"

ONLY after output format is confirmed, proceed to Phase 5 (Generation).


Phase 5: Generate Infographic

HTML Architecture

Single self-contained HTML file:

\x3C!DOCTYPE html>
\x3Chtml lang="[content language]">
\x3Chead>
    \x3Cmeta charset="UTF-8">
    \x3Cmeta name="viewport" content="width=device-width, initial-scale=1.0">
    \x3Ctitle>[Infographic Title]\x3C/title>
    \x3Clink rel="stylesheet" href="[Google Fonts / Fontshare URL]">
    \x3Cstyle>
        :root {
            --bg-primary: ...; --bg-secondary: ...;
            --text-primary: ...; --text-secondary: ...;
            --accent-1: ...; --accent-2: ...;
            --font-display: ...; --font-body: ...;
        }
        /* Layout, components, animations */
        @media print { /* linearize, remove animations */ }
        @media (prefers-reduced-motion: reduce) { /* disable animations */ }
    \x3C/style>
\x3C/head>
\x3Cbody>
    \x3Carticle class="infographic">
        \x3Cheader class="infographic-header">...\x3C/header>
        \x3Cmain class="infographic-body">...\x3C/main>
        \x3Cfooter class="infographic-footer">...\x3C/footer>
    \x3C/article>
    \x3Cscript>/* Intersection Observer animations, counter effects */\x3C/script>
\x3C/body>
\x3C/html>

Design Rules

Typography:

  • Distinctive Google Fonts or Fontshare fonts -- NEVER Inter, Roboto, Arial, or system fonts
  • Display font for headings, clean font for body
  • Responsive sizing with clamp()

Color:

  • CSS custom properties for entire palette
  • Max 3-4 colors: one dominant, one accent, one-two neutrals
  • WCAG AA contrast for readability

Layout:

  • CSS Grid for overall structure, Flexbox for components
  • Max-width 1200px, centered
  • Compact spacing: Use 2-3rem between sections, NOT 5rem+. Infographics should feel dense and information-rich, not stretched out. Header padding: 2-2.5rem. Section padding: 2-3rem. Grid gaps: 2-2.5rem.
  • Responsive: stack on mobile, multi-column on desktop

Data Visualization:

  • Pure CSS for simple charts (bar via width%, pie via conic-gradient)
  • Inline SVG for complex shapes
  • Animate numbers with counter effect (Intersection Observer)
  • Always label data clearly

Animations:

  • Intersection Observer triggers .visible class
  • Stagger children with animation-delay
  • Subtle fade + translateY baseline
  • prefers-reduced-motion media query required

Print:

  • @media print rules: linearize layout, remove animations, ensure readability
  • Appropriate page breaks between sections

Layout Patterns

Timeline:

  • Vertical center line, alternating left/right entries
  • Date badges on line, content cards offset
  • Mobile: single-column stack

Statistics Dashboard:

  • Hero stat at top (large number + context)
  • Grid of stat cards (2-3 columns)
  • CSS bar/pie charts where appropriate
  • Counter animation on scroll

Comparison:

  • Side-by-side columns with central divider
  • Matching rows, color-coded sides
  • Mobile: vertical stack with labels

Process Flow:

  • Numbered steps with connecting lines/arrows
  • Icon + title + description per step
  • Progress indicator

Listicle / Card Grid:

  • Numbered/icon cards in responsive grid (2-3 cols desktop, 1 mobile)
  • Each card: icon/number + title + description
  • Hover effects

Magazine / Editorial:

  • Mix of full-width, card grids, pull quotes, stat highlights
  • Alternate dense and spacious sections
  • Strong typographic hierarchy

Anti-Patterns -- NEVER

  • Purple gradient on white background
  • Generic card layouts with no visual character
  • Font Awesome or emoji spam as decoration
  • Flat, lifeless color schemes
  • Walls of small text (defeats infographic purpose)
  • Charts without labels
  • Cookie-cutter layouts

Phase 6: Delivery

All 3 confirmation steps completed. Generating final output...

Write the HTML file and present a summary:

✅ Infographic generated!

📄 File: [filename].html
📐 Layout: [confirmed layout]
🎨 Style: [confirmed style]
🖼️ Illustrations: [confirmed option]
📦 Output: [confirmed format]
📊 Sections: [count]

Open in browser to view. Ctrl+P / Cmd+P to save as PDF.

Generation is complete. No further confirmations needed.


Edge Cases

Short articles (\x3C 200 words): Compact single-section, 3-5 key points as cards.

Long articles (> 3000 words): Summarize to 6-10 key sections max. Prioritize data and takeaways.

No statistics: Focus on quotes, process flows, or listicle. Use icons instead of charts.

Technical/code-heavy: Code snippet sections, architecture diagrams with CSS shapes, conceptual flow.

Non-English content: Set lang attribute correctly on \x3Chtml>. Use appropriate fonts for CJK, RTL, etc.


Phase 7: PNG Export (if selected in Step 3)

After generating the HTML, if PNG was selected in Step 3, proceed with export:

Method A: Browser tool (preferred in Claude Code / HappyCapy)

If a browser CLI tool is available:

  1. Start a local HTTP server serving the HTML file
  2. Navigate browser to the page
  3. Force all .reveal elements to visible state (skip scroll animations)
  4. Force all bar fills and counters to final values
  5. Take a full-page screenshot
  6. Close browser
// JS to inject before screenshot:
document.querySelectorAll('.reveal').forEach(el => {
    el.classList.add('visible');
    el.style.opacity = '1';
    el.style.transform = 'none';
});
document.querySelectorAll('.ba-fill, .bar-fill').forEach(bar => {
    const w = bar.dataset.width;
    if (w) bar.style.width = w + '%';
});
document.querySelectorAll('[data-counter]').forEach(el => {
    const target = el.dataset.counter;
    const suffix = el.dataset.suffix || '';
    el.textContent = parseInt(target).toLocaleString() + suffix;
});

Method B: Playwright script (standalone environments)

Run the bundled script:

python3 scripts/html_to_png.py infographic.html output.png --width 1200 --scale 2

The script uses headless Chromium via Playwright. It auto-installs dependencies if needed.

Arguments:

  • --width : viewport width in px (default 1200)
  • --scale : HiDPI scale factor (default 2, produces 2400px wide image)

When to export PNG

Ask the user after HTML delivery:

  • Header: "Export"
  • Question: "Want a PNG image export as well?"
  • Options:
    • "Yes, export PNG" -- Run export
    • "HTML only is fine" -- Skip

OpenClaw / Non-Interactive Adaptation

When deploying to environments without interactive question-answer support (e.g., OpenClaw, API-only setups), the skill operates in parameterized mode where ALL options must be specified upfront.

⚠️ CRITICAL: In parameterized mode, you MUST provide ALL confirmations in a single prompt because the system cannot ask follow-up questions.

Parameterized Invocation (Single Prompt)

Users must specify ALL 3 confirmation steps in one prompt:

Generate an infographic from [article source].

STEP 1 - OUTLINE:
[Provide your preferred outline structure, or "use auto-generated outline"]

STEP 2 - STYLE:
Layout: [timeline|statistics|comparison|process|listicle|magazine]
Style: [bold-vibrant|clean-minimal|dark-techy|warm-editorial|scifi-hud|premium-magazine|glassmorphism]
Illustrations: [none|icons|characters]

STEP 3 - OUTPUT:
Format: [html|png|both]

Example complete prompt:

Generate an infographic from https://example.com/article.

STEP 1: Use auto-generated outline

STEP 2: 
Layout: timeline
Style: dark-techy
Illustrations: icons

STEP 3:
Format: both

Parameter Reference

Style options:

  • bold-vibrant -- High contrast, saturated colors
  • clean-minimal -- Whitespace, subtle colors, serif typography
  • dark-techy -- Dark background, neon accents
  • warm-editorial -- Magazine-style, warm tones
  • scifi-hud -- Cyberpunk terminal, particle network, neon glow (premium)
  • premium-magazine -- Luxury editorial, massive serif, cream/charcoal/vermillion (premium)
  • glassmorphism -- Frosted glass, aurora blobs, Apple-inspired depth (premium)

Layout options:

  • timeline -- Chronological events
  • statistics -- Data dashboard
  • comparison -- Side-by-side
  • process -- Step-by-step flow
  • listicle -- Card grid
  • magazine -- Mixed editorial (default for complex articles)
  • auto -- Let the skill decide based on content analysis

Outline adjustments (natural language):

  • "remove [block name]"
  • "add [block description]"
  • "replace [block] with [new content]"
  • "simplify" / "expand"

Export options:

  • html -- HTML only (default)
  • png -- HTML + PNG export
  • both -- Explicitly output both

Fallback Behavior

If no style/layout is specified and AskUserQuestion is not available, use these defaults:

  • Layout: auto (detect from content)
  • Style: dark-techy for technical content, warm-editorial for narrative content, bold-vibrant for data-heavy content
  • Export: html only

Font CDN for China Deployment

When deployed behind the GFW, replace Google Fonts CDN:

\x3C!-- Instead of: -->
\x3Clink href="https://fonts.googleapis.com/css2?family=..." rel="stylesheet">

\x3C!-- Use mirror: -->
\x3Clink href="https://fonts.loli.net/css2?family=..." rel="stylesheet">
\x3C!-- Or use: -->
\x3Clink href="https://fonts.font.im/css2?family=..." rel="stylesheet">

Alternatively, for CJK-heavy content, use system fonts as fallback:

--font-heading: 'Noto Serif SC', 'STSong', 'SimSun', serif;
--font-body: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
Usage Guidance
This skill appears to do what it says (generate HTML infographics) and enforces explicit confirmation steps, which is good. Two things to watch out for before installing or running it: (1) The included Python script will try to install Playwright and download Chromium at runtime (via pip and playwright install). That performs network downloads and writes packages/browsers to the environment — run it only in a sandbox or on a machine where you permit new packages. (2) skill.json advertises multiple PNG fallback tools (Selenium, wkhtmltoimage, CutyCapt) but the shipped script implements only Playwright; that mismatch may indicate incomplete implementation. Recommended actions: review the html_to_png.py contents (you have them), run PNG export only in an isolated environment if you need it, or ask the author to provide an explicit install spec (or a packaged binary) and to remove or justify the use of --break-system-packages. If you are uncomfortable with on-demand package installs or external font/CDN calls, use the skill for HTML-only generation and avoid the PNG export step.
Capability Analysis
Type: OpenClaw Skill Name: article-to-infographic Version: 1.0.0 The skill is classified as suspicious due to the `scripts/html_to_png.py` file using `subprocess.check_call` to install `playwright` and `chromium`. While this is done for the legitimate purpose of enabling PNG export, the ability to execute arbitrary commands for dependency installation represents a significant vulnerability risk (potential RCE) if the skill's environment is not adequately sandboxed or if the dependency source were compromised. There is no evidence of malicious intent such as data exfiltration or backdoor installation, and the `SKILL.md` actively implements defensive measures against prompt injection by enforcing strict user confirmation steps.
Capability Assessment
Purpose & Capability
Name/description, references, templates, and the html_to_png.py script are coherent with an article→infographic generator. However, skill.json advertises a fault-tolerant PNG fallback chain (Playwright → Selenium → wkhtmltoimage → CutyCapt) while the provided script implements only Playwright. The presence of optional dependencies for multiple rendering tools without corresponding code is an inconsistency.
Instruction Scope
SKILL.md confines actions to acquiring article content (URL/file/text), analyzing it, interactive multi-step confirmations, generating a single self-contained HTML, and optionally exporting to PNG. It explicitly requires explicit user confirmations at several points (good). It references fetching URLs (WebFetch) and reading files provided by the user, which is expected for this skill and is not out-of-scope.
Install Mechanism
There is no formal install specification; instead, scripts/html_to_png.py will attempt to install Playwright (pip install playwright) and run `playwright install chromium` at runtime via subprocess. Automatic pip/browser installation during execution can download code and write to the environment, and the script uses the pip flag `--break-system-packages` which can alter system package isolation. Because the skill lacks a declared, reviewed install mechanism and will perform network installs at runtime, this is a moderate risk and should be run in a controlled/sandboxed environment.
Credentials
The skill requests no environment variables, credentials, or config paths. The references and changelog mention external font CDNs (including China mirrors like fonts.loli.net and fonts.font.im) and third-party illustration sources; these are reasonable for rendering/display but are external network endpoints to be aware of. No credentials are requested, which is proportionate.
Persistence & Privilege
The skill is not always-included and does not request elevated or persistent platform privileges. The only persistent side-effect implied is installing packages/browser binaries when running the PNG export script; it does not modify other skills or system config beyond installing dependencies.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install article-to-infographic
  3. After installation, invoke the skill by name or use /article-to-infographic
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release – transform any article or text into a fully self-contained HTML infographic with strict user-controlled workflow. - Converts articles, reports, blog posts, or pasted text into visually engaging infographics (timeline, statistics, comparison, etc.) - Enforces a strict, multi-step confirmation process: outline, layout, style, illustrations, and output format must each be confirmed separately. - Automatically analyzes content and recommends the most suitable infographic type. - Produces distinctive, non-generic infographic designs with zero external dependencies and print-ready formatting. - Supports optional SVG illustrations and flexible output (HTML and PNG).
Metadata
Slug article-to-infographic
Version 1.0.0
License
All-time Installs 3
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Article to Infographic?

Transform articles, blog posts, reports, or any text content into visually stunning, self-contained HTML infographics. Use when the user wants to convert tex... It is an AI Agent Skill for Claude Code / OpenClaw, with 1044 downloads so far.

How do I install Article to Infographic?

Run "/install article-to-infographic" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Article to Infographic free?

Yes, Article to Infographic is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Article to Infographic support?

Article to Infographic is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Article to Infographic?

It is built and maintained by Frank Shen (@fengsh0923); the current version is v1.0.0.

💬 Comments