Skip to content

Add @notes directive for slide speaker notes #64

@tilucasoli

Description

@tilucasoli

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)

@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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions