Skip to content

Latest commit

 

History

History
128 lines (110 loc) · 4.61 KB

README.md

File metadata and controls

128 lines (110 loc) · 4.61 KB

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