home / skills / spm1001 / trousse / ia-presenter

ia-presenter skill

/skills/ia-presenter

This skill helps you validate and generate iA Presenter markdown and bundles, ensuring correct tab visibility, slide separators, and image metadata for

npx playbooks add skill spm1001/trousse --skill ia-presenter

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
10.6 KB
---
name: ia-presenter
description: Writes and validates iA Presenter markdown where tab-indentation controls slide visibility. Triggers on 'presentation', 'iA Presenter', 'slides from markdown', '.presenter file', or when working in iCloud~net~ia~presenter folder. Validates tab characters (not spaces) for visible text, --- slide separators, and image metadata syntax. (user)
---

# iA Presenter Markdown

Write and edit markdown files for iA Presenter, which generates beautiful slides from plain text.

## What is iA Presenter?

iA Presenter is a macOS/iOS/iPadOS app from Information Architects (iA) — the same company that makes iA Writer. It takes markdown files and renders them as presentation slides with automatic responsive layout. The app emphasizes **story-first** presentation design: you write your script, and the design adapts to your content rather than forcing content into templates.

Key differentiator: **visible/speaker notes separation** is controlled by indentation, not by a separate notes panel. This means your markdown file contains both what you show and what you say, distinguished only by whether lines are tab-indented.

## The Core Insight: Visible vs Speaker Notes

iA Presenter's key innovation is separating **what the audience sees** from **what you say** (speaker notes/teleprompter). This is controlled by indentation:

| Element | Visibility | How to Write |
|---------|------------|--------------|
| Headings | ALWAYS visible | `#`, `##`, `###` at line start |
| Tab-indented text | Visible on slide | `⇥Text here` (literal tab character) |
| Plain paragraphs | Speaker notes only | No indent — audience never sees this |
| Images/videos/tables | Visible by default | URL or path on its own line |
| Lists | Visible only if tabbed | `⇥1. Item` or `⇥- Item` |

**The tab character is load-bearing.** A leading tab makes body text visible to the audience. Without it, the text becomes speaker notes (shown in teleprompter, hidden from audience).

## File Format

iA Presenter uses `.iapresenter` bundles (directories), not plain `.md` files:

```
MyPresentation.iapresenter/
├── assets/          # Images, media (optional)
├── info.json        # Metadata
└── text.md          # The markdown content
```

**info.json template:**
```json
{
  "creatorIdentifier" : "net.ia.presenter",
  "net.ia.presenter" : {},
  "transient" : false,
  "type" : "net.daringfireball.markdown",
  "version" : 2
}
```

To create a new presentation programmatically:
1. Create `MyPresentation.iapresenter/` directory
2. Create `assets/` subdirectory (can be empty)
3. Create `info.json` with the template above
4. Create `text.md` with your markdown content

## When to Use

- Creating new presentations in iA Presenter format
- Editing existing `.presenter` or `.md` files for iA Presenter
- Validating that markdown will render correctly as slides
- Converting standard markdown to iA Presenter format
- Working in the `iCloud~net~ia~presenter` folder

## When NOT to Use

- Standard markdown files (no iA Presenter involvement)
- PowerPoint or Google Slides (use pptx skill instead)
- Reveal.js, Marp, or other slide frameworks (different syntax)
- HTML/CSS slide decks

## Slide Structure

### Slide Separation
```markdown
Content for slide 1

---

Content for slide 2
```
Three dashes (`---`) on their own line create a new slide.

### Heading Hierarchy
```markdown
# Title Slide Heading (H1 - largest)
## Section Heading (H2 - major sections)
### Content Heading (H3 - within slides)
```

Headings are ALWAYS visible. Use them for the key message the audience must see.

### Basic Slide Pattern
```markdown
### Visible Heading
	Visible subtitle or key point (TAB-indented)

Speaker notes go here without indentation. The audience never sees this.
You can write as much context as you need for yourself.

---
```

## Text Visibility Examples

### Title Slide
```markdown
	Fast and Focused
# Main Title
	Subtitle line

This introductory paragraph is speaker notes - invisible to audience.
```
Result: Three visible lines stacked (subtitle, title, subtitle), with speaker notes in teleprompter.

### Content Slide
```markdown
### The Key Point
	The heart of a great presentation is the message. Get the script right before anything else.

Most presentation tools ask you to choose a design first. iA Presenter flips the process. You focus on what matters: your story.
```
Result: Heading + one visible paragraph. The longer explanation is speaker notes.

### Multi-Column Layout
```markdown
### Column One
	Description for the first column goes here.

### Column Two
	Description for the second column goes here.

Speaker notes for this slide.
```
Result: Auto-arranges as two columns side-by-side.

### Visible Lists
```markdown
### Table of Contents
	1. Write
	2. Structure
	3. Iterate
	4. Design
	5. Action

The numbered list above is visible because each line is tab-indented.
```

## Images

### Basic Image
```markdown
https://example.com/image.jpg

Or a local path:
/Theme/image.webp
```
Images are visible by default. Just put the URL or path on its own line.

### Image with Metadata
```markdown
https://example.com/screenshot.png
x: left
y: top
title: "Caption text"
```

Available metadata:
- `x:` — horizontal position: `left`, `center`, `right`
- `y:` — vertical position: `top`, `center`, `bottom`
- `size:` — sizing: `contain`, `cover`
- `background:` — `true` to place behind other elements
- `filter:` — `lighten`, `darken`, `grayscale`, `sepia`, `blur`
- `opacity:` — `0%` to `100%`
- `title:` — caption/alt text

### Image Captions with H4
```markdown
#### Caption introducing the image

/assets/photo.jpg
```
Or image first, caption below:
```markdown
/assets/photo.jpg

#### Caption below the image
```

### Multiple Images (Grid)
```markdown
https://example.com/image1.jpg

https://example.com/image2.jpg

https://example.com/image3.jpg

https://example.com/image4.jpg

These images auto-arrange into a grid layout.
```

### Image + Text Layout
```markdown
### Heading on Left
	Visible description text that appears alongside the image.

https://example.com/image.png
x: right
y: top

Speaker notes explaining what we're showing.
```
Result: Text on left, image on right.

## Inline Formatting

Standard markdown formatting works:
- `**bold**` — **bold**
- `*italic*` — *italic*
- `~~strikethrough~~` — strikethrough
- `==highlight==` — highlighted text
- `[link text](url)` — hyperlinks
- `` `code` `` — inline code
- `$x^2$` — inline LaTeX math
- `// comment` — comment (only you see)

## Common Patterns

### Kicker (Small Text Above Title)
```markdown
	Small kicker text
# Main Title
	Subtitle below
```
Tab-indented text directly above a title creates a "kicker" — small headline often seen above main titles.

### Section Divider
```markdown
## 1. Write
	Start With a Script

Brief visible tagline. Then your speaker notes expand on it below.

---
```

### Quote/Callout Slide
```markdown
	**Key insight in bold.** Additional visible context that supports the main point.

The rest of your speaking notes. Expand, give examples, tell stories.
```

### Closing Slide
```markdown
## Now go and move mountains.

Final thoughts in speaker notes. Link to resources: [How-To](https://ia.net/presenter/how-to)
```

## Validation Checklist

When reviewing iA Presenter markdown:

1. **Tab characters exist** — Visible body text MUST start with a literal tab (not spaces)
2. **Slides are separated** — `---` between each slide
3. **One idea per slide** — Keep slides focused
4. **Headings are concise** — They're always visible; make them count
5. **Speaker notes are useful** — Don't waste the teleprompter space
6. **Images have paths** — URLs or local paths on their own lines

## Common Mistakes

| Mistake | Problem | Fix |
|---------|---------|-----|
| Spaces instead of tabs | Text won't be visible | Use literal tab character |
| Too much visible text | Stuffed slides bore audiences | Move detail to speaker notes |
| Missing `---` | Slides won't separate | Add `---` between slides |
| Forgetting speaker notes | Wasting the teleprompter | Add context below visible content |

## Generating New Presentations

When creating iA Presenter markdown from scratch:

1. **Start with the story** — Write the narrative first
2. **Identify key points** — These become headings
3. **Decide what audience sees** — Tab-indent only essential text
4. **Add speaker notes** — Context, examples, transitions
5. **Add images last** — URLs/paths with positioning metadata
6. **Review slide count** — `---` separators should match intended slides

## Example: Complete Slide

```markdown
### Tell Your Story
	The heart of a great presentation is the message. Get the script right before anything else.

Most presentation tools ask you to choose a design and then adjust your story to fit it. iA Presenter flips the process.

Start with what you want to say. The design comes later, and it adapts to your content — not the other way around.

---
```

**Visible to audience:**
- "Tell Your Story" (heading)
- "The heart of a great presentation..." (tab-indented paragraph)

**Speaker notes (teleprompter only):**
- "Most presentation tools ask you to choose..."
- "Start with what you want to say..."

## Layout Algorithm

Presenter auto-selects layouts based on:
- Number of visual blocks (cells) in the slide
- Types of graphics in each block
- First heading level of each block
- Order of blocks

| Content | Result |
|---------|--------|
| 2-3 elements separated by blank lines | Side-by-side columns |
| 4+ elements | Grid layout |
| H4 + image | Caption layout |
| Image with `background: true` | Background image behind text |

**Cells:** Content separated by blank lines goes into different cells. One element per cell usually looks better.

## Anti-Patterns

| Pattern | Problem | Fix |
|---------|---------|-----|
| Spaces for indentation | Content invisible on slides | MUST use literal tab characters |
| Missing `---` separators | Slides run together | Add `---` between each slide |
| Empty speaker notes | Wasting teleprompter, no speaking context | Add narrative below visible content |
| All-headings slides | Headings are always visible — no notes | Balance headings with tab-indented text |
| Skip validation | Broken slides discovered during presentation | Test in iA Presenter app before presenting |
| Create .md instead of .iapresenter | Won't open correctly in app | Create bundle with text.md + info.json |

## Full Reference

See `references/syntax-reference.md` for complete documentation including:
- All text formatting (highlight, superscript, subscript)
- Footnotes and citations
- LaTeX math
- Code blocks with syntax highlighting
- Tables
- Custom themes and CSS classes
- Layout CSS classes for theming

Overview

This skill validates and generates iA Presenter markdown and .iapresenter bundles so your slides render exactly as intended. It enforces iA Presenter’s rules: tab-based visibility, slide separators, and image metadata syntax, and can scaffold a valid presentation folder with info.json and text.md.

How this skill works

It inspects markdown or .presenter files for literal leading tab characters on visible lines, checks that slides use '---' separators, and validates image metadata blocks (x:, y:, size:, background:, filter:, opacity:, title:). It can convert standard markdown into iA Presenter structure and create the required .iapresenter directory with assets/, info.json, and text.md.

When to use it

  • Preparing or validating slides for iA Presenter before a talk
  • Converting standard markdown into an iA Presenter bundle
  • Editing .presenter or text.md files inside iCloud~net~ia~presenter
  • Checking that visible text uses literal tabs (not spaces)
  • Validating image metadata and slide separators

Best practices

  • Always use a literal tab for any text meant to be visible on slides
  • Keep one clear idea per slide and use '---' between slides
  • Put headings at line start; headings are always visible
  • Put long explanations in non-indented speaker notes (teleprompter only)
  • Add images as standalone lines and follow with metadata lines when needed

Example use cases

  • Create MyTalk.iapresenter with assets/, info.json, and text.md programmatically
  • Scan a repository of .md files and convert those intended for slides into .iapresenter bundles
  • Lint a text.md to find spaces used instead of tabs and missing '---' separators
  • Validate image lines and their metadata (positioning, size, caption)
  • Prepare a presenter-ready markdown file that separates visible lines and speaker notes

FAQ

What happens if I use spaces instead of tabs?

Visible body text will be treated as speaker notes and hidden from the audience; the validator flags these lines and recommends replacing leading spaces with a literal tab.

How do I create a new iA Presenter bundle?

Create a directory named MyPresentation.iapresenter, add an assets/ subfolder, create info.json with the required template, and save your slide content in text.md.