Homepage: https://github.com/howardabrams/demo-it
Author: Howard Abrams
Updated:
Create demonstrations
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.