From 97e0fc770d9e6d8343b1b898c6c6a4892ed60b27 Mon Sep 17 00:00:00 2001 From: Christopher James Hayward Date: Thu, 18 Mar 2021 21:38:26 -0400 Subject: [PATCH] Put presentations in its own module --- modules/capture.org | 49 ++++------------------------------- modules/presentations.org | 54 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 44 deletions(-) create mode 100644 modules/presentations.org diff --git a/modules/capture.org b/modules/capture.org index 4a3bd51..8919959 100644 --- a/modules/capture.org +++ b/modules/capture.org @@ -10,45 +10,9 @@ Capturing images, screencasts, screenshots or live-streaming. It's defined in this file. -* Slides - -Produce high quality presentations that work anywhere with =HTML/JS= and the *Reveal.js*[fn:1] package. Achieve this behaviour in Emacs with *Ox-reveal*[fn:2]], configured to use a =cdn= allows us to produce ones that are not dependent on a local version. An important caveat here is that paths to images must be absolute URLs. - -#+begin_src emacs-lisp -(use-package ox-reveal - :after ox - :custom (org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js")) -#+end_src - -Create a capture template for creating slides quickly, with our desired configuration. - -#+begin_src emacs-lisp -(with-eval-after-load 'org-roam - (add-to-list 'org-roam-capture-templates - '("s" "Slides" plain (function org-roam-capture--get-point) - "%?" - :file-name "docs/slides/${slug}" - :unnarrowed t - :head -" -,#+TITLE: ${title} -,#+AUTHOR: Christopher James Hayward -,#+EMAIL: chris@chrishayward.xyz - -,#+REVEAL_ROOT: https://cdn.jsdelivr.net/npm/reveal.js -,#+REVEAL_THEME: serif - -,#+EXPORT_FILE_NAME: ${slug} - -,#+OPTIONS: reveal_title_slide:nil -,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil -,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil -"))) -#+end_src - * Screenshots -Download *screenshot.el*[fn:4] for taking screenshots of highlighted regions or entire buffers. +Download *screenshot.el*[fn:1] for taking screenshots of highlighted regions or entire buffers. #+begin_src emacs-lisp (straight-use-package @@ -60,16 +24,15 @@ Download *screenshot.el*[fn:4] for taking screenshots of highlighted regions or * Screencasts -Create screencasts with =one-frame-per-action= GIF recording via *Emacs gif screencast*[fn:3]. +Create screencasts with =one-frame-per-action= GIF recording via *Emacs gif screencast*[fn:2]. + Pause / Resume + High Quality + Optimized -It requires the installation of ~scrot~, ~gifsicle~, and ~convert~ from the =ImageMagick= library. - #+begin_src emacs-lisp (use-package gif-screencast + :init (dotfiles/install "scrot imagemagick") :commands (gif-screencast-start-or-stop gif-screencast-toggle-pause) :custom (gif-screencast-output-directory (concat dotfiles/home "docs/images/"))) #+end_src @@ -89,7 +52,5 @@ It requires the installation of ~scrot~, ~gifsicle~, and ~convert~ from the =Ima * Resources -[fn:1] https://revealjs.com -[fn:2] https://github.com/hexmode/ox-reveal -[fn:3] https://github.com/takaxp/emacs-gif-screencast -[fn:4] https://github.com/tecosaur/screenshot +[fn:1] https://github.com/tecosaur/screenshot +[fn:2] https://github.com/takaxp/emacs-gif-screencast diff --git a/modules/presentations.org b/modules/presentations.org new file mode 100644 index 0000000..f784dcc --- /dev/null +++ b/modules/presentations.org @@ -0,0 +1,54 @@ +#+TITLE: Presentations +#+AUTHOR: Christopher James Hayward +#+EMAIL: chris@chrishayward.xyz + +#+PROPERTY: header-args:emacs-lisp :tangle presentations.el :comments org +#+PROPERTY: header-args :results silent :eval no-export + +#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil +#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil + +Create slideshows and give high quality presentations. + +* Portable slides + +Produce high quality presentations that work anywhere with =HTML/JS= using [[https://revealjs.com][Reveal.js]][fn:1]. Achieve integration inside of Emacs with [[https://github.com/hexmode/ox-reveal][ox-reveal]][fn:2]. Configure it to use a =CDN= producing presentations that are not dependent on locally installed software. An important caveat here is that paths to images must be absolute URLs. + +#+begin_src emacs-lisp +(use-package ox-reveal + :after ox + :custom (org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js")) +#+end_src + +** Capture template + +When using the [[file:writing.org][Writing]] module, add a capture template for quickly creating slide presentations with the desired markup and configuration already applied. + +#+begin_src emacs-lisp +(with-eval-after-load 'org-roam + (add-to-list 'org-roam-capture-templates + '("s" "Slides" plain (function org-roam-capture--get-point) + "%?" + :file-name "docs/slides/${slug}" + :unnarrowed t + :head +" +,#+TITLE: ${title} +,#+AUTHOR: Christopher James Hayward +,#+EMAIL: chris@chrishayward.xyz + +,#+REVEAL_ROOT: https://cdn.jsdelivr.net/npm/reveal.js +,#+REVEAL_THEME: serif + +,#+EXPORT_FILE_NAME: ${slug} + +,#+OPTIONS: reveal_title_slide:nil +,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil +,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil +"))) +#+end_src + +* Resources + +[fn:1] https://revealjs.com +[fn:2] https://github.com/hexmode/ox-reveal