Versions in this module Expand all Collapse all v0 v0.2.0 Feb 7, 2026 v0.1.0 Feb 7, 2026 Changes in this version + const CapabilityApply + const CapabilityAudio + const CapabilityCreate + const CapabilityPlan + const CapabilityRead + const CapabilitySections + const CapabilityTransitions + const CapabilityWrite + type Audio struct + Duration time.Duration + Path string + Script string + Source AudioSource + URL string + Voice string + func NewFileAudio(path string, duration time.Duration) *Audio + func NewNotesAudio(voice string) *Audio + func NewTTSAudio(script, voice string) *Audio + func NewURLAudio(url string, duration time.Duration) *Audio + func (a *Audio) HasContent() bool + type AudioSource string + const AudioSourceFile + const AudioSourceNotes + const AudioSourceTTS + const AudioSourceURL + func AudioSources() []AudioSource + func (s AudioSource) IsValid() bool + func (s AudioSource) NeedsTTS() bool + type Backend interface + Apply func(ctx context.Context, ref Ref, diff *Diff) error + Create func(ctx context.Context, deck *Deck) (Ref, error) + Info func() BackendInfo + Plan func(ctx context.Context, ref Ref, desired *Deck) (*Diff, error) + Read func(ctx context.Context, ref Ref) (*Deck, error) + type BackendInfo struct + Capabilities []string + Name string + Version string + func (b BackendInfo) HasCapability(cap string) bool + type Block struct + Alt string + Kind BlockKind + Lang string + Level int + Text string + URL string + func NewBullet(text string, level int) Block + func NewCode(code, lang string) Block + func NewHeading(text string, level int) Block + func NewImage(url, alt string) Block + func NewNumbered(text string, level int) Block + func NewParagraph(text string) Block + func NewQuote(text string) Block + type BlockKind string + const BlockBullet + const BlockCode + const BlockHeading + const BlockImage + const BlockNumbered + const BlockParagraph + const BlockQuote + func BlockKinds() []BlockKind + func (k BlockKind) IsValid() bool + type Change struct + NewValue any + OldValue any + Op ChangeOp + Path string + SectionID string + SlideID string + func NewAddChange(path string, value any) Change + func NewMoveChange(fromPath, toPath string) Change + func NewRemoveChange(path string, value any) Change + func NewUpdateChange(path string, oldValue, newValue any) Change + type ChangeOp string + const ChangeAdd + const ChangeMove + const ChangeRemove + const ChangeUpdate + func ChangeOps() []ChangeOp + func (op ChangeOp) IsValid() bool + type Deck struct + ID string + Meta Meta + Sections []Section + Theme *Theme + Title string + func (d *Deck) AllSlides() []Slide + func (d *Deck) FindSection(id string) *Section + func (d *Deck) FindSlide(id string) *Slide + func (d *Deck) SlideCount() int + func (d *Deck) TotalDuration() time.Duration + type Diff struct + Changes []Change + DeckID string + func NewDiff(deckID string) *Diff + func (d *Diff) AddChange(c Change) + func (d *Diff) AddChanges() []Change + func (d *Diff) ChangeCount() int + func (d *Diff) CountByOp() map[ChangeOp]int + func (d *Diff) IsEmpty() bool + func (d *Diff) MoveChanges() []Change + func (d *Diff) RemoveChanges() []Change + func (d *Diff) UpdateChanges() []Change + type Layout string + const LayoutBlank + const LayoutComparison + const LayoutImage + const LayoutSection + const LayoutTitle + const LayoutTitleBody + const LayoutTitleTwoCol + func Layouts() []Layout + func (l Layout) IsValid() bool + type Meta struct + Author string + Custom map[string]string + Date string + Description string + Keywords []string + type Ref struct + Backend string + ID string + Path string + func (r Ref) IsFileRef() bool + func (r Ref) String() string + type Section struct + Audio *Audio + ID string + Slides []Slide + Title string + func (s *Section) FindSlide(id string) *Slide + func (s *Section) HasAudio() bool + func (s *Section) SlideCount() int + func (s *Section) TotalDuration() time.Duration + type Slide struct + Audio *Audio + Background *string + Body []Block + ID string + Layout Layout + Notes []Block + Subtitle string + Title string + Transition *string + func (s *Slide) BulletCount() int + func (s *Slide) HasBody() bool + func (s *Slide) HasNotes() bool + func (s *Slide) HasTitle() bool + func (s *Slide) NotesText() string + type Theme struct + Background string + Custom map[string]string + Font string + Name string + Primary string + Secondary string + func DarkTheme() *Theme + func DefaultTheme() *Theme + func (t *Theme) GetCustom(key, defaultValue string) string + func (t *Theme) SetCustom(key, value string)