← Back to Skills Marketplace
domainrankhq

Guizang HTML to PPTX

by domainrankhq · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
80
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install guizang-html-to-pptx
Description
Convert a guizang-ppt-skill magazine HTML deck into a real editable PowerPoint PPTX. Use this skill whenever the user asks to export, convert, or rebuild a g...
README (SKILL.md)

Guizang HTML To PPTX

Source And Scope

This skill is an export-only companion for the original guizang PPT skill:

Do not treat this skill as a replacement for guizang-ppt-skill. It does not create the magazine-style HTML deck from scratch; it starts after the HTML deck already exists.

What This Skill Does

Turn a guizang-ppt-skill HTML deck into a real editable PPTX.

The key idea: use the HTML deck as the visual and content reference, then rebuild the deck with PowerPoint-native objects:

  • Text boxes for titles, body, captions, footers, and metadata
  • Shapes for backgrounds, rules, callouts, stat cards, and layout structure
  • Image objects for files from ppt/images/ or media/
  • Matching fonts and colors from the HTML theme

Do not solve this by putting one screenshot per slide into PowerPoint. That produces a PPTX file, but not an editable deck.

Default Invocation

If the user explicitly selects this skill or writes only something like:

[$guizang-html-to-pptx]

and does not provide more details, treat the request as:

把当前 guizang HTML PPT 导出为真正可编辑 PPTX,不要截图,字体和 HTML 保持一致。

Use the current working directory as the project root. Look first for ppt/index.html, then for index.html. If neither exists, search for a likely guizang HTML deck and proceed with the best match; ask only if multiple plausible decks exist and choosing one would be risky.

When To Use

Use this skill when the user has a guizang/magazine-style HTML deck and asks for:

  • "导出为 PPTX"
  • "不要截图,我要真的 PPTX"
  • "editable PPTX"
  • "PowerPoint 可编辑版本"
  • "把当前 HTML 格式 PPT 转成 pptx"
  • "HTML 和 PPTX 字体保持一致"

If the user explicitly asks for screenshot slides, follow that request. Otherwise, default to editable rebuild.

Inputs And Expected Output

Typical input:

project/
└── ppt/
    ├── index.html
    └── images/

Expected output:

project/
└── ppt/
    ├── deck-name.pptx
    ├── export_editable_pptx.py or export_editable_pptx.js
    └── pptx-qa/
        ├── deck-name.pdf
        ├── slide-01.png
        └── contact-sheet.png

Tool Choice

Prefer the repo's existing tooling if present. If there is already an export_editable_pptx.py or similar export script, inspect and improve it instead of starting over.

If creating the exporter from scratch:

  • Use pptxgenjs when the project already has Node dependencies for it.
  • Use python-pptx when Python is the simpler available path.
  • Use Pillow/PIL for image dimensions and contain/cover calculations.
  • Use LibreOffice soffice plus pdftoppm for visual QA when available.

Do not use browser screenshots as slide backgrounds unless the user explicitly accepts a non-editable screenshot deck.

Workflow

1. Locate And Inspect The HTML Deck

Find the deck root and confirm the page count.

Useful commands:

rg -n '\x3Csection class="slide|class="slide' ppt/index.html
rg -n 'font-family|--serif|--sans|--mono|--ink|--paper' ppt/index.html
rg -n 'images/|media/' ppt/index.html

Read the actual slide sections, not just the CSS. Capture:

  • Slide count and order
  • Each slide's theme: dark, light, hero dark, hero light
  • Titles, body copy, callouts, stats, captions, footers
  • Image filenames and intended placement
  • Theme colors and font variables

Keep the HTML deck as the source of truth. Do not freely rewrite the narrative while exporting.

2. Preserve Guizang Typography

Match the HTML font stack in the PPTX. The default guizang typography is:

HTML role PPTX role Font
--serif-zh Chinese titles, lead copy, callouts Noto Serif SC
--sans-zh Chinese body, step titles, notes Noto Sans SC
--serif-en English display text, large numbers, step numbers Playfair Display
--mono metadata, page labels, code, captions IBM Plex Mono

For python-pptx, setting run.font.name alone may only affect Latin text. Also set DrawingML Latin, East Asian, and complex script typefaces.

from pptx.oxml.ns import qn
from pptx.oxml.xmlchemy import OxmlElement

def set_run_font(run, font_name):
    if isinstance(font_name, tuple):
        latin_font, east_asian_font = font_name
    else:
        latin_font = east_asian_font = font_name

    run.font.name = latin_font
    rpr = run._r.get_or_add_rPr()
    for tag, typeface in (
        ("a:latin", latin_font),
        ("a:ea", east_asian_font),
        ("a:cs", latin_font),
    ):
        node = rpr.find(qn(tag))
        if node is None:
            node = OxmlElement(tag)
            rpr.append(node)
        node.set("typeface", typeface)

Use tuple fonts for mixed roles:

SERIF = "Noto Serif SC"
SANS = "Noto Sans SC"
SERIF_EN = ("Playfair Display", SERIF)
MONO = ("IBM Plex Mono", SANS)

3. Rebuild Slides As Native Objects

Use a 16:9 wide layout, commonly 13.333 x 7.5 inches.

For every slide:

  • Add a PowerPoint background rectangle using the HTML theme color.
  • Add top chrome and footer as editable text.
  • Add headings and body copy as editable text boxes.
  • Add rules, dividers, callout blocks, and stat cards as PowerPoint shapes.
  • Insert source images as separate image objects, not baked into a full-slide screenshot.
  • Keep images visually related to the slide content.

Preserve the slide count unless the user asks for a different count.

4. Fit Images Deliberately

Use contain for screenshots, product UI, charts, and anything that must remain legible. Use cover only for decorative or full-bleed imagery.

For screenshots:

  • Keep the whole UI visible whenever possible.
  • Add a subtle panel background if the screenshot needs contrast.
  • Avoid repeating the same image across adjacent slides unless the HTML intentionally does so.
  • Do not swap in unrelated images to "fill space".

5. Validate Editability

After generating the PPTX, check that it is not a screenshot deck.

Good signs:

  • Each slide has many text/shape objects.
  • Slide text appears in PPTX XML.
  • Images correspond to source assets, not 15 full-slide PNG screenshots.

Quick XML text/font check:

python3 - \x3C\x3C'PY'
from pathlib import Path
from zipfile import ZipFile

pptx = Path("ppt/deck-name.pptx")
with ZipFile(pptx) as z:
    slides = [n for n in z.namelist() if n.startswith("ppt/slides/slide") and n.endswith(".xml")]
    xml = "\
".join(z.read(n).decode("utf-8", "ignore") for n in slides)

print("slides", len(slides))
for needle in ["Songti SC", "PingFang SC", "Noto Serif SC", "Noto Sans SC", "IBM Plex Mono", "Playfair Display"]:
    print(needle, xml.count(needle))
PY

Old fallback fonts from a prior export should not remain if the HTML uses the guizang defaults.

6. Visual QA

Render the PPTX and inspect it. Font changes often create wrapping or overflow, so QA after every font or layout pass.

mkdir -p ppt/pptx-qa
soffice --headless --convert-to pdf --outdir ppt/pptx-qa ppt/deck-name.pptx
pdftoppm -png -r 120 ppt/pptx-qa/deck-name.pdf ppt/pptx-qa/slide

Create a contact sheet and inspect it for:

  • Missing slides
  • Wrong page order
  • Text overflow or clipped titles
  • Font mismatch against HTML
  • Lines crossing text
  • Images too small, repeated, stretched, or unrelated
  • Footer/chrome collisions
  • Placeholder text

If soffice fails inside a sandbox because it needs system cache access, rerun it with the required approval instead of skipping QA.

7. Deliver Clearly

In the final response, state:

  • The PPTX path
  • That it is a real editable PPTX, not screenshot slides
  • Any caveat about fonts needing to be installed on the user's machine
  • What QA was performed

Example:

已导出真正可编辑 PPTX:文字、形状和图片都是独立对象,不是整页截图。
字体已对齐 HTML:Noto Serif SC / Noto Sans SC / Playfair Display / IBM Plex Mono。
我已转 PDF/PNG 做过 15 页目检,没有发现明显溢出或错位。

Common Pitfalls

  • Screenshot deck: Fast, but wrong for "editable PPTX".
  • Font drift: HTML uses Noto Serif SC, but PPTX silently falls back to Songti or PingFang. Set East Asian fonts explicitly.
  • Over-rewriting: Exporting should preserve the approved HTML content and structure.
  • Image mismatch: Do not use decorative images where the HTML used evidence screenshots.
  • Skipping QA: PPTX layout bugs often only show up after rendering through PowerPoint/LibreOffice.
  • Expecting WebGL/animations to export: Rebuild the static visual result; PPTX will not preserve the HTML shader or Motion One page animations.

更多 AI SEO 技能详见:https://domainrank.app/ai-seo-skills

Usage Guidance
This skill appears safe for its stated purpose. Use it from the correct project folder, review any generated or modified exporter script, and approve any dependency installation separately if the required local tools are not already present.
Capability Analysis
Type: OpenClaw Skill Name: guizang-html-to-pptx Version: 1.0.0 The guizang-html-to-pptx skill is a utility designed to convert specific HTML-based presentations into editable PowerPoint files. The SKILL.md file provides detailed, task-aligned instructions for an AI agent to use standard tools like python-pptx, pptxgenjs, and LibreOffice (soffice) for conversion and visual quality assurance. The included Python and shell snippets are functional and relevant to the stated purpose, with no evidence of data exfiltration, malicious execution, or prompt injection attacks.
Capability Assessment
Purpose & Capability
The stated purpose is narrow and coherent: rebuild an existing guizang HTML deck as an editable PowerPoint file rather than screenshots.
Instruction Scope
The skill instructs the agent to search the current project for likely HTML decks and proceed when there is a clear best match. This is purpose-aligned, but users should be aware it involves reading local project files.
Install Mechanism
There is no install spec and no declared required binaries, while the instructions mention optional local tools and libraries such as pptxgenjs, python-pptx, LibreOffice, and pdftoppm. This is not suspicious, but dependencies may need user review if installed separately.
Credentials
The skill expects to inspect HTML/CSS/images and write PPTX, exporter, and QA files into the project. These actions are proportionate for an export workflow.
Persistence & Privilege
The skill may create or improve an exporter script and write QA artifacts, but there is no evidence of background persistence, credential use, privilege escalation, or autonomous activity outside the conversion task.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install guizang-html-to-pptx
  3. After installation, invoke the skill by name or use /guizang-html-to-pptx
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: export guizang magazine-style HTML decks to real editable PPTX with native text, shapes, and images
Metadata
Slug guizang-html-to-pptx
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Guizang HTML to PPTX?

Convert a guizang-ppt-skill magazine HTML deck into a real editable PowerPoint PPTX. Use this skill whenever the user asks to export, convert, or rebuild a g... It is an AI Agent Skill for Claude Code / OpenClaw, with 80 downloads so far.

How do I install Guizang HTML to PPTX?

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

Is Guizang HTML to PPTX free?

Yes, Guizang HTML to PPTX is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Guizang HTML to PPTX support?

Guizang HTML to PPTX is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Guizang HTML to PPTX?

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

💬 Comments