howardabrams / demo-it

An Emacs package for running demonstrations, screencasts and presentations from within Emacs.
GNU General Public License v2.0
324 stars 32 forks source link
demonstrations emacs presentation-slides presentations screencast screencasts

At the end of each sprint, each of us demonstrate accomplishments. These reviews often incorporate the following trifecta:

During my sprint reviews, I noticed I used my org-mode-formatted files, eshell and source code buffers... always in Emacs. However, fat-fingering or mentally burping delayed the gratification for my audience while I laboriously typed. I solved this problem by predefining each "step" as an Emacs Lisp function, and had another function execute each /step function/ when I hit an /advance/ key (=F12=).

After I had amassed a small army of /helper functions/, I packaged it as =demo-it=, because I lack the imagination to come up with anything more clever.

See the following videos as examples of what can be done:

Click the following image for a quicker example:

+HTML: Example and Demonstration

Using this project is a four step process:

  1. Load the library in your own Elisp source code file
  2. Create zero or more helper functions that "do things", or use the functions provided by this project.
  3. Order the functions by calling =(demo-it-create step-1 step-2 ...)=
  4. Call =demo-it-start= to kick off the fun.

Press space for each step, or call =demo-it-end= to end earlier.

For instance:

+BEGIN_SRC elisp

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

(defun my-demo-step/show-code () "Helper demo function that displays some source code and advances the presentation at one time." (demo-it-load-file "example/example.py" :right) (demo-it-presentation-advance))

;; Order the functions and forms for this presentation: (demo-it-create (demo-it-presentation "example/example.org") my-demo-step/show-code demo-it-presentation-return ; close file and advance (demo-it-run-in-eshell "python example/example.py"))

(demo-it-start)

+END_SRC

Each "step" given to =demo-it-create= can be one of the following:

This package has a collection of helping functions, that can either be called directly as part of an expression, or embedded in a demonstration /step function/. For a more complete example, see [[file:example/example.el][example.el]] or the other examples in the [[file:example][example directory]].

Finally, read the [[file:demo-it.org][documentation]] (which is available as an Info manual).