Skip to content

onelife/termslides

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TermSlides

Script your slides in YAML and show it in terminal.

Install

pip install termslides

Show Slides

termslides your_slides.yaml

Compose Slides

termslides parses YAML file input for slides, which is expected to contain key-value pairs. Following is an example YAML file with one slide.

title: TermSlides Example

Diagram:
  notes: This is an example
  startAnimation: scroll
  pageAnimation: stars
  endAnimation: matrix
  content:
    - type: text
      content: Hello world!
      animation: typing
      afterStart: true
      colour: rainbow
      y: 2
      x: 2

At the top level, title is reserved keyword. Its value will be set as the title of current terminal window. The rest of key-value pairs are treated as slide name-content pairs.

The slide content is another set of key-value pairs. content key is compulsory and the following are optional:

  • notes: Notes for current slide which is shown in slides list mode.
  • duration: The show time in frames before switching to next slide. The frame rate is 20 frames/second.
  • startAnimation: Slide starting animation. scroll only.
  • endAnimation: Slide ending animation. scroll, matrix, shoot, drop or wipe.
  • pageAnimation: The animation between starting and ending. stars, snow, explosion, fireworks or rain.

The value of content is yet another set of key-value pairs. type and content are common compulsory keys.

Available types:

  • text: Text, the most common type.

    • Other compulsory attributes:
      • None
    • Optional attributes:
      • animation: typing or mirage.
      • afterStart: Set value to true to start text animation after slide starting animation.
      • colour: black, red, green, yellow, blue, magenta, cyan, white, rainbow or cycle. cycle doesn't work with animation.
      • y: Default value is to put the text in the middle of y axis.
      • x: Default value is to put the text in the middle of x axis.
      • attr: bold, normal, reverse or underline
      • bg: The background colour. black, red, green, yellow, blue, magenta, cyan or white.
  • figlet: pyfiglet

    • Other compulsory attributes:
    • Optional attributes:
      • animation: typing, mirage or fire.
      • afterStart: Same as text.
      • colour: Same as text.
      • y: Same as text.
      • x: Same as text.
      • attr: Same as text.
      • bg: Same as text.
  • uml: Sequence diagram by PlantUML

    • Other compulsory attributes:
      • None
    • Optional attributes:
      • animation: Same as text.
      • afterStart: Same as text.
      • colour: Same as text.
      • y: Same as text.
      • x: Same as text.
      • attr: Same as text.
      • bg: Same as text.
  • table: Table by python-tabulate

    • Other compulsory attributes:
      • None
    • Optional attributes:
      • hasHeader: Set value to true to interpret the first row of data as table header.
      • tablefmt: Table format.
      • numalign: Number alignment.
      • floatfmt: Number formating.
      • animation: Same as text.
      • afterStart: Same as text.
      • colour: Same as text.
      • y: Same as text.
      • x: Same as text.
      • attr: Same as text.
      • bg: Same as text.
  • image: Grey scale ascii text image

    • Other compulsory attributes:
      • None
    • Optional attributes:
      • height: Target image height
      • y: Same as text.
      • x: Same as text.
  • color-image: Block color image

    • Other compulsory attributes:
      • None
    • Optional attributes:
      • height: Target image height
      • y: Same as text.
      • x: Same as text.

Key Binding

  • Slides List Mode
    • : Next slide
    • : Previous slide
    • Space: Play ending animation if any
    • Enter: Switching to presentation mode
    • q: Quit
  • Presentation Mode
    • : Next slide
    • : Previous slide
    • Space: Play ending animation or next slide
    • Enter or q: Switching to slides list mode

Example

sample.yaml

About

Script your slides in YAML and show it in terminal.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages