Skip to main content

keynote-deck

Generate native Keynote (.key) presentations from markdown, using the user's branded Keynote template. Use when asked to create Keynote slides, a slide deck, or a presentation from markdown or an outline. Renders via md2key + AppleScript for zero-loss native Keynote output — no PowerPoint conversion step.

来源信息

仓库
markshust/claude-code-skill-keynote-deck
最近来源活动
2026年7月10日 15:00
检测到的 SKILL.md 语言
英语
星标
1
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
keynote-deck
description
Generate native Keynote (.key) presentations from markdown, using the user's branded Keynote template. Use when asked to create Keynote slides, a slide deck, or a presentation from markdown or an outline. Renders via md2key + AppleScript for zero-loss native Keynote output — no PowerPoint conversion step.
# Keynote Deck Generator Turns markdown into a **native .key file** by pouring content into a branded Keynote template. The model's job is CONTENT ONLY — structure, wording, speaker notes. All visual design lives in the Keynote template's master slides, so never attempt layout, colors, or fonts here. ## Pipeline ``` deck.md ──▶ scripts/generate.sh ──▶ Keynote (AppleScript/md2key) ──▶ deck.key + preview PNGs ``` Run: `~/.claude/skills/keynote-deck/scripts/generate.sh <markdown-file> [output.key]` The script pins the Homebrew Ruby and md2key paths, launches Keynote by bundle id (`com.apple.Keynote`), opens a copy of the user's template, converts, saves, and exports preview PNGs next to the output. ## Workflow 1. **Locate or author the markdown.** If given a file, use it. If given a topic/outline, author the deck markdown first (see Authoring rules) and show it to the user before generating. 2. **Generate:** run `generate.sh deck.md output.key`. 3. **Verify — never skip.** Read 2–3 of the exported preview PNGs (cover, a code slide, the densest bullet slide). Check for: text overflowing its box, code wider than its panel, tables too tall, orphaned single-word bullet wraps. If found, tighten the markdown (shorter bullets, split slide, trim code) and regenerate. One regeneration pass is normal. 4. Report the .key path. The document is left open in Keynote for hand-tweaks. ## Authoring rules Structure: - `# Title` — first heading becomes the cover slide; the line(s) after it become the cover body (subtitle). - One heading per slide. One idea per slide. - `^ note text` — presenter note. **Every content slide gets one**: 2–4 conversational sentences the presenter can speak. For course/video decks this doubles as the narration script. - `---` separators are optional; headings define slides. Heading level → master slide (the template names its masters `cover`, `h1`–`h5`): | Markdown | Master | Suggested role | |----------|--------|----------------| | `#` (first) | `cover` | cover slide | | `#` (mid-deck) | `h1` | section divider | | `##` | `h2` | content — light | | `###` | `h3` | code — dark | | `####` | `h4` | content — dark | | `#####` | `h5` | code — light | The light/dark pairing is the recommended convention (decks can run all-light, all-dark, or alternating) — but the template owner decides what each master looks like; follow whatever their template does. Density limits (Keynote boxes don't auto-shrink — overflow is the #1 failure): - ≤ 5 bullets per slide, ≤ 8 words per bullet, ≤ 1 nesting level. - Code blocks: ≤ 12 lines, ≤ 60 columns. Longer code → split across slides ("part 1 / part 2") or trim to the teaching-relevant lines with `# ...`. - Tables: ≤ 4 columns, ≤ 5 rows. - No inline bold/italic/links — md2key pastes plain text; styling comes from masters. Write so emphasis isn't needed. Supported content per slide (title + ONE of these works best): - Bullet list (with one nesting level) - Fenced code block — syntax-highlighted via `highlight` (dark panel) - Markdown table - Image: `![](absolute/or/relative/path.png)` - ` ```mermaid ` block — rendered to a diagram (requires `mmdc`; if missing, pre-render to PNG and use an image instead) Deck conventions: - Open with a cover (`# Deck Title` + subtitle line). - Second slide: agenda or "What you'll learn" — 3–5 bullets. - Close with a recap/summary slide. - Prefer many light slides over few dense ones — slides are glanceable signposts, not documents. ## Template Template resolution order (generate.sh handles this): 1. `$KEYNOTE_DECK_TEMPLATE` env var 2. `./keynote-template.key` in the current project 3. `~/.claude/skills/keynote-deck/templates/default.key` 4. Fallback: stock "White" theme (warn the user output is unbranded) The template is a normal .key file whose **master slides are named** `cover`, `h1`–`h5` (lowercase, exact). If the user has no template yet, offer to help them build one — the full method (designing background art with Claude, rendering it, assembling masters) is in `TEMPLATE-GUIDE.md` in this skill's directory. Design changes belong in the template's masters, never compensate for design issues in markdown. ## Requirements & troubleshooting - Deps: Homebrew Ruby, `md2key` gem, `highlight` (brew). generate.sh checks and prints install commands if missing. - Keynote must be allowed Automation permission for the shell (macOS prompts on first run — user must click Allow). - md2key drives the **front document**; tell the user not to click around Keynote mid-generation. - Code slides: generate.sh auto-patches md2key (idempotently) to use this skill's 1740×800 code panel at position {90, 170}, and snaps pasted code text to {154, 226}. Only text items below y200 are moved — Keynote counts the title placeholder among "text items" and it must never be repositioned. - Masters used for code slides should have **no body placeholder** — an unfilled placeholder exports its prompt text onto the slide. - If AppleScript errors after a macOS/Keynote update, offer the official pptx skill route (.pptx opens in Keynote with minor fidelity loss) as a fallback.
在 GitHub 查看