conceptadev / conceptadev/superdeck

Add @notes directive for slide speaker notes

Open
#64 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
129
Forks
4
Avg merge
15h 49m
Merged PRs (30d)
5

Description

## Summary
Introduce a first-class Markdown directive for speaker notes (e.g. `@notes` or `@comment`) that compiles into `slide.comments`.

Today, any `@something` token is treated as a tag, and unknown tags can look like they should work as “special blocks”, but they don’t produce speaker notes.

## Motivation
- Authors intuitively try `@comment` / `@notes` for presenter notes.
- Speaker notes already exist in the compiled contract (`slide.comments: string[]`).
- A directive would make notes discoverable and keep them close to slide content.

## Proposed solution
### Option A (preferred): `@notes` (no options)

```markdown
@notes
This is a presenter note.
- Not visible on the slide
- Exported into `slide.comments`
```

### Option B: `@comment`
Same semantics as `@notes`.

### Multi-note behavior
- Allow multiple `@notes` blocks per slide.
- Each block appends one entry to `slide.comments`.

## Backwards compatibility
- `@comment` is currently parsed as a generic tag and could already be used as a widget shorthand if a deck registers a widget named `comment`. Making it reserved may be breaking.
- `@notes` is less likely to collide with existing widget names.

## Acceptance criteria
- [ ] `@notes` content is captured as speaker notes and compiled into `slide.comments`.
- [ ] Notes do not render as visible slide content.
- [ ] Works with multiple `@notes` blocks in a slide.
- [ ] Documentation updated: `docs/reference/markdown-syntax.mdx`, `docs/reference/block-types.mdx`, and authoring guide.

## Related
- `docs/reference/contracts.mdx` documents `comments: string[]`.
- `packages/core/lib/src/markdown/tag_tokenizer.dart` currently treats any `@name` as a tag (outside fences).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.