Install
openclaw skills install presentation-html-generator-skillGenerate high-quality technical HTML presentations (Reveal.js) and Markdown technical deep-dive articles from projects or papers. Covers architecture diagrams, code walkthroughs, math formulas, and speaker notes. Use when users say: 'make a presentation', 'create slides', 'generate HTML slides', 'technical presentation', 'paper presentation', 'Reveal.js slides', 'write a technical deep-dive article', 'create tech blog from code', 'generate architecture diagrams with matplotlib'. Triggers on requests to: (1) Convert a project/paper into an HTML slide deck, (2) Write a Markdown technical analysis article, (3) Generate matplotlib architecture diagrams for documentation.
openclaw skills install presentation-html-generator-skillGenerate Reveal.js HTML presentations and Markdown technical deep-dive articles from complex technical projects or papers. All content in Chinese by default.
Read the project/paper thoroughly. Collect:
All technical details (parameter values, shapes, formulas) must come from source code, not guesswork.
Organize slides into these modules:
Produce a self-contained HTML file using Reveal.js via CDN. Must include:
<aside class="notes">) on every slide — conversational style, explain "why" not "what"Reveal.js Config (mandatory):
Reveal.initialize({
width: 1920,
height: 960, // 2:1 aspect ratio for widescreen
margin: 0.1,
minScale: 0.2,
maxScale: 1.5,
center: true,
});
Centering CSS (mandatory):
.reveal .slides { text-align: center; }
.reveal .slides section {
display: flex; flex-direction: column;
justify-content: center; align-items: center;
width: 100%; height: 100%;
padding: 20px 40px; box-sizing: border-box;
}
.grid-2, .grid-3 { max-width: 1700px; width: 100%; }
.reveal .slides section > * { max-width: 100%; box-sizing: border-box; }
For every core module, follow this 5-step structure:
(B,C,T) → (B,2C,1))When the project involves an AI model or algorithm, the training and inference pipelines MUST be presented as separate, clearly distinguished sections. Do NOT merge them into a single "model overview" slide.
If the source material contains ANY of the following, apply this step:
Slide Group A: Training Pipeline (2-4 slides)
Slide Group B: Inference Pipeline (2-4 slides)
Slide Group C: Training vs Inference Comparison (1 slide)
Must include a comparison table:
| Aspect | Training | Inference |
|---|---|---|
| Mode | model.train() | model.eval() |
| Data | Labeled dataset + augmentation | Raw input only |
| Dropout/BN | Active / running stats update | Disabled / frozen stats |
| Output | Loss value | Predictions |
| Batch Size | Large (throughput) | Small/1 (latency) |
| Key Metric | Training loss, validation accuracy | Latency, throughput, quality |
| Unique Components | Loss fn, optimizer, scheduler | Decoder, post-processor, cache |
#e3f2fd, #1976d2), Inference slides use 🟢 green tones (#e8f5e9, #388e3c)Before delivering, verify:
Follow the article structure template in references/article-template.md.
Key principles:
See references/matplotlib-guide.md for the complete matplotlib diagram generation methodology.
Critical rules:
FancyBboxPatch pad must be proportional: min(w, h) * 0.15h * 0.75 / n_linesset_aspect('equal')Arial Unicode MS > Heiti TC > STHeiti| Issue | Root Cause | Fix |
|---|---|---|
| Slide content overflow | Too much content per slide | Use scrollable containers or split slides |
| Content off-center | Missing Flexbox centering CSS | Apply mandatory centering CSS above |
| Mermaid not rendering on hidden slides | startOnLoad: true only renders visible | Set startOnLoad: false, manual render on ready + slidechanged |
| Vertical flowchart overflow | Too many nodes in HTML/CSS flowchart | Compress gap/padding/font-size, see references/revealjs-fixes.md |
| Matplotlib boxes distorted | pad in data coordinates, not pixels | Use proportional pad calculation |
| Chinese not showing in matplotlib | Wrong font | Use Arial Unicode MS / Heiti TC |
| Training/Inference merged into one slide | AI model specifics lost | Split into separate slide groups with distinct color themes (blue=train, green=infer) |
For generating presentations with maximum quality, see references/prompt-template.md for a proven C.R.I.S.P principle prompt.
See assets/slide-template.html for a starter HTML template with all required configs pre-set.