demo-it

Homepage: https://github.com/howardabrams/demo-it

Author: Howard Abrams

Updated:

Summary

Create demonstrations

Commentary

When making demonstrations of new products, technologies and other
  geekery, I love the versatility of using Emacs to demonstrate the
  trifecta of sprint reviews, including:

  - Presentations explaining the technologies
  - Source code ... correctly highlighted
  - Executing the code in Eshell ... or similar demonstration
  - Test a new feature

  However, I don't want to fat-finger, mentally burp, or even delay
  the gratification while I type, so I predefine each "step" as an
  Elisp function or keyboard macro, and then have =demo-it= execute
  each function when I hit either the SPACE key or the F12 key
  (advanced minor mode).

  Using the library is a four step process:

  1. Load the library in your own Elisp source code file
  2. Create a collection of functions that "do things".
  3. Create the ordered list of functions/steps with `demo-it-create'
  4. Start the demonstration with `demo-it-start'

  For instance:

      (require 'demo-it)   ;; Load this library of functions

      (defun dit-load-source-code ()
        "Load some source code in a side window."
        (demo-it-presentation-advance)
        (demo-it-load-fancy-file "example.py" :line 5 12 :side))

      (defun dit-run-code ()
        "Execute our source code in an Eshell buffer."
        ;; Close other windows and advance the presentation:
        (demo-it-presentation-return)
        (demo-it-start-shell)
        (demo-it-run-in-shell "python example.py Snoopy"))

      (demo-it-create :single-window :insert-slow :full-screen
                      (demo-it-title-screen "example-title.org")
                      (demo-it-presentation "example.org")
                       dit-load-source-code
                       dit-run-code
                      (demo-it-run-in-shell "exit" nil :instant))

      (demo-it-start)

  Each "step" is a series of Elisp functions that "do things".
  While this package has a collection of helping functions, the steps
  can use any Elisp command to show off a feature.

  I recommend installing these other Emacs packages:

  - https://github.com/takaxp/org-tree-slide
  - https://github.com/sabof/org-bullets
  - https://github.com/magnars/expand-region.el
  - https://github.com/Bruce-Connor/fancy-narrow

  See http://github.com/howardabrams/demo-it for more details and
  better examples.  You will want to walk through the source code
  for all the utility functions.

Dependencies