skills/revealjs-slides/SKILL.md
Generate reveal.js HTML slide presentations from topics, outlines, or content. Use when the user asks to create slides, presentations, decks, or talks. Triggers on: "create a presentation", "make slides about", "build a deck", "generate a talk", "slide deck for", or any request involving presentation creation. Supports code highlighting, fragments, speaker notes, math, markdown, and Mermaid.js diagrams (flowcharts, sequence, class, ER, mindmap, timeline, etc.).
npx skillsauth add alahmadiq8/skills revealjs-slidesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
assets/template.html to the user's target path (default: slides.html in cwd){{TITLE}}, {{SUBTITLE}}, {{AUTHOR}}, {{DATE}} placeholders<section> elements for each slide between the TITLE SLIDE and closing commentsAfter generating the HTML file, always serve and open it for the user.
npx live-server --port=8765 --open=slides.html
Keyboard shortcuts in the presentation:
S — open speaker notes viewO — overview / slide gridF — fullscreenEsc — exit overview or fullscreenB / . — pause (black screen)assets/template.html — CDN-based (no npm install needed), uses Inter font, custom theme, includes Markdown, Highlight, Notes, Math, and Mermaid plugins.
The template ships with a custom theme built in. Key characteristics:
center: false)class="title-slide" for centered, vertically-centered layout#1a3c6e)<section class="title-slide">
<h1>Presentation Title</h1>
<p>Subtitle text here</p>
<p class="small">Author — Date</p>
</section>
<section>
<h2>Comparison</h2>
<div class="columns">
<div><h3>Left</h3><p>Content</p></div>
<div><h3>Right</h3><p>Content</p></div>
</div>
</section>
The custom theme overrides white.css. To change the base, replace white in the CSS link: black, league, beige, night, serif, simple, solarized, moon, dracula, sky, blood. Note: for dark base themes, also update the CSS variable --r-heading-color and other colors.
<section>
<h2>Title</h2>
<p>Content here</p>
</section>
<section>
<h2>Key Points</h2>
<ul>
<li class="fragment">First point</li>
<li class="fragment">Second point</li>
<li class="fragment">Third point</li>
</ul>
</section>
<section>
<h2>Code</h2>
<pre><code class="language-python" data-trim data-line-numbers>
def hello():
print("Hello, world!")
</code></pre>
</section>
Use data-line-numbers="1-2|3-4" to step through line highlights.
<section>
<h2>Architecture</h2>
<img src="diagram.png" alt="Architecture" style="max-height: 500px;">
</section>
<section>
<h2>Topic</h2>
<p>Audience content</p>
<aside class="notes">Speaker-only notes here. Press 's' to open speaker view.</aside>
</section>
<section data-background-color="#4d7e65">
<h2>Green Background</h2>
</section>
<section data-background-image="photo.jpg" data-background-size="cover">
<h2>Photo Background</h2>
</section>
<section>
<blockquote>"Quote text here." — Author</blockquote>
</section>
<section>
<h2>Comparison</h2>
<div style="display: flex; gap: 2em;">
<div style="flex: 1;"><h3>Left</h3><p>Content</p></div>
<div style="flex: 1;"><h3>Right</h3><p>Content</p></div>
</div>
</section>
<section>
<h2>Equation</h2>
<p>\[ E = mc^2 \]</p>
</section>
<section data-markdown>
<script type="text/template">
## Markdown Title
- Point **one**
- Point *two*
Notes:
Speaker notes in markdown.
</script>
</section>
The template includes the Mermaid plugin. Use <div class="mermaid"> blocks inside slides to render diagrams. Mermaid renders to SVG automatically — no images needed.
<section>
<h2>User Flow</h2>
<div class="mermaid">
flowchart LR
A[Visit Site] --> B{Logged in?}
B -- Yes --> C[Dashboard]
B -- No --> D[Login Page]
D --> E[Enter Credentials]
E --> C
</div>
</section>
<section>
<h2>API Request Flow</h2>
<div class="mermaid">
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /users
API->>DB: INSERT user
DB-->>API: user record
API-->>Client: 201 Created
</div>
</section>
<section>
<h2>Domain Model</h2>
<div class="mermaid">
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+fetch()
}
class Cat {
+purr()
}
Animal <|-- Dog
Animal <|-- Cat
</div>
</section>
<section>
<h2>Database Schema</h2>
<div class="mermaid">
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "ordered in"
</div>
</section>
<section>
<h2>Order Lifecycle</h2>
<div class="mermaid">
stateDiagram-v2
[*] --> Pending
Pending --> Processing : payment received
Processing --> Shipped : packed
Shipped --> Delivered : arrived
Delivered --> [*]
Processing --> Cancelled : refund
</div>
</section>
<section>
<h2>Project Overview</h2>
<div class="mermaid">
mindmap
root((Project))
Frontend
React
Tailwind
Backend
Node.js
PostgreSQL
DevOps
Docker
CI/CD
</div>
</section>
<section>
<h2>Project Milestones</h2>
<div class="mermaid">
timeline
title Release Timeline
Q1 2025 : Alpha release
: Core features
Q2 2025 : Beta release
: API launch
Q3 2025 : GA release
</div>
</section>
<section>
<h2>Sprint Plan</h2>
<div class="mermaid">
gantt
title Sprint 12
dateFormat YYYY-MM-DD
section Backend
API endpoints :a1, 2025-01-06, 5d
Database migration :a2, after a1, 3d
section Frontend
UI components :b1, 2025-01-06, 7d
Integration :b2, after b1, 3d
</div>
</section>
<section>
<h2>Traffic Sources</h2>
<div class="mermaid">
pie title Traffic Sources
"Organic Search" : 45
"Direct" : 25
"Social Media" : 20
"Referral" : 10
</div>
</section>
<section>
<h2>Branching Strategy</h2>
<div class="mermaid">
gitGraph
commit
branch feature
checkout feature
commit
commit
checkout main
merge feature
commit
</div>
</section>
For dark themes (black, night, dracula, league), add a theme directive:
<div class="mermaid">
%%{init: {'theme': 'dark'}}%%
flowchart LR
A --> B --> C
</div>
Available Mermaid themes: default, dark, forest, neutral, base.
<section>
<h2>Architecture</h2>
<div class="columns">
<div>
<div class="mermaid">
flowchart TD
LB[Load Balancer] --> S1[Server 1]
LB --> S2[Server 2]
S1 --> DB[(Database)]
S2 --> DB
</div>
</div>
<div>
<ul>
<li>Horizontally scalable</li>
<li>Single database with replicas</li>
<li>Health-check based routing</li>
</ul>
</div>
</div>
</section>
User, Database, not A, B, C%%{init: {'theme': 'dark'}}%% for dark presentation themesLR (left-to-right) for wide slides, TD (top-down) for tall diagramsclass="title-slide" with h1, subtitle, and authorclass="title-slide" for centered "Questions?" or "Thank You" slidesdata-trim to strip whitespace, set language-* class<strong> text renders in the navy accent color automatically.columns helper: for side-by-side layouts instead of inline flex styles<section> inside <section>. All slides must be flat/horizontal onlyModify the Reveal.initialize({...}) block at the bottom of the HTML:
| Option | Default | Purpose |
|--------|---------|---------|
| transition | 'slide' | none, fade, slide, convex, concave, zoom |
| slideNumber | true | Show slide numbers |
| center | false | Content starts at top (title-slide class overrides this) |
| hash | true | URL hash navigation |
| progress | true | Show progress bar |
| controls | true | Show nav arrows |
| width | 1280 | Slide width in pixels (16:9) |
| height | 720 | Slide height in pixels (16:9) |
| margin | 0 | No outer margin (padding is in CSS) |
Append ?print-pdf to the URL and use browser print (Cmd/Ctrl+P) to save as PDF.
tools
Edit and manage Obsidian vaults — create, read, update, and delete notes, manage properties/frontmatter, handle links and backlinks, work with tags, tasks, daily notes, templates, bases, and more. Uses the Obsidian CLI for safe vault operations when available, with direct file editing as fallback. Use this skill whenever the user mentions Obsidian, vault, knowledge base notes with wikilinks, frontmatter/properties on markdown files, daily notes, or any task involving an Obsidian vault — even if they just say "my notes" or reference a folder that looks like a vault (has .obsidian/ directory).
testing
Write Obsidian Dataview queries (DQL, inline DQL, and DataviewJS) from natural language descriptions. Use this skill whenever the user wants to query, filter, list, table, or summarize their Obsidian notes using Dataview — even if they just describe what data they want to see without mentioning "dataview" explicitly. Trigger on phrases like "show me all notes tagged...", "list my tasks due...", "table of books by rating", "query my vault for...", "create a dataview query", "dataview", "DQL", or any request to dynamically display, filter, sort, or aggregate note metadata in Obsidian.
development
Creates and runs Grafana k6 load testing scripts for traffic simulation, performance testing, and stress testing. Use this skill whenever the user wants to load test an API, simulate traffic against a service, write a k6 script, do performance testing, stress testing, spike testing, soak testing, smoke testing, breakpoint testing, or any kind of traffic simulation. Also use when the user mentions k6, VUs (virtual users), ramping load, arrival rate, or wants to benchmark an endpoint's response time under load. Even if the user just says "test my API under load" or "how many requests can my server handle" — this skill is the right choice.
development
Build, configure, and develop Hugo static sites and themes. Use when the user wants to create a new Hugo site, develop or customize a Hugo theme, write Hugo templates (layouts, partials, shortcodes), configure hugo.toml/yaml/json, work with Hugo's asset pipeline (images, CSS/Sass, JS bundling), manage content (pages, sections, taxonomies, menus), or deploy a Hugo site. Triggers on mentions of "Hugo", "hugo.toml", "static site generator", Hugo-related template syntax (Go templates, baseof, partials), or Hugo content workflows.