When making demonstrations of new products, technologies and other geekery, I love the versatility of using Emacs to demonstrate the trifecta of sprint reviews:
- Presentations explaining the technology and whatnot
- Source code ... correctly highlighted and interactive
- Reviewing code using a connected REPL
- Executing the code in Eshell
However, I don't want to fat-finger, mentally burp, or even delay
gratification for my audience while I laboriously type, so I
predefine each "step" as an Elisp function, and then have demo-it
execute each function when I hit the F6
key.
Click the following for a quicker example:
Using this project is a three step process:
- Load the library in your own Elisp source code file
- Create a collection of functions that "do things".
- Call the
demo-it-start
function with the ordered list of functions.
For instance:
(load-library "demo-it") ;; Load this library of functions
;; Define the first of many steps that do things.
(defun my-demo/step-1 ()
(delete-other-windows)
(demo/org-presentation "~/presentations/emacs-demo/emacs-demo-start.org"))
(defun my-demo/step-2 ()
(demo-it-load-side-window "~/Work/my-proj/src/my-proj.py")
(demo-it-presentation-advance))
;; Wrap the collection of functions in another function...
(defun my-demo ()
"My fabulous demonstration."
(interactive)
(demo-start (list
'my-demo/step-1
'my-demo/step-2
;; ...
)))
(my-demo) ;; Optionally start the demo when file is loaded.
Each "step" is an Elisp functions that does something like load some source code, or show off an org-mode file as a presentation. While this package has a collection of helping functions, the steps can use any Elisp command to show off a feature.
For a more complete example, see example.el.
I recommend installing these other Emacs packages: