Skip to content

v0.6.0 Fighting Spam 💌

Latest
Compare
Choose a tag to compare
@psionic-k psionic-k released this 17 Dec 15:47
· 30 commits to master since this release
b8e1399
  • There is less markup (especially for babel)
  • Old actions are easier to use
  • New actions (KMACROS!) fit a more clear pattern
  • That pattern has a long-term plan

Why Some Changes are Breaking 🤠

This release captures a lot of the low-hanging fruit of the benefits expected in 0.7.0. For the most part, what was removed was markup that nobody wanted to write.

0.7.0 will continue in this direction, using less markup and having more of it be similar. 0.7.0 will also make it possible to mix steps from different actions. That will very nearly bring us to 1.0.

There is a tricky outstanding architectural issue with actions tracking their own progress. If the changes to custom actions are significant, it will only because it also makes writing new custom actions much, much simpler. (they are already simple)

More Changes Coming 🧑‍🔧

⛔ The dslide-default-actions value will soon go away, becoming deprecated in 0.7.0. Instead, we will use configurable dispatcher to match elements and set default arguments globally. The dispatcher will create actions on-demand.

The propertize action is the closest one to working like they will in 0.7.0. ℹ️ Your custom actions will need to be registered in the dispatcher configuration after 0.7.0.

Added ➕

  • 🧪 Experimental new kmacro action can run keyboard kmacros to script "live demonstrations". Describe dslide-action-kmacro to view the documentation. There is a demo in the usual demo file. All related functions and variables are under the dslide-action-kmacro or dslide-kmacro prefixes.

  • 🧪 Experimental keyboard macro recording with dslide-kmacro-transcribe-set-mark, every time you call kmacro-end-macro, dslide will transcribe a macro playback expression into your presentation. All related commands, functions, and variables are under the dslide-kmacro-transcribe prefix

  • dslide-deck-present is a distinct command from dslide-deck-start. It will create a new frame instead of showing the presentation in the current frame. The dslide-present-hook will be run in this frame when the deck is ready. If you customize this hook, you can easily separate configuration for development and presentation. Also see dslide-present-frame-parameters to set up the frame how you like.

  • Development now has its own hook dslide-develop-hook. Use this for more convenient buffer setup when using the dslide-deck-develop command to debug your presentation.

  • Babel blocks, which will now all be executed by default, respect the :eval parameter. Values such as never or never-export will skip the block. Other values are equivalent to yes. Values like query do not ask yet. Expect that in 0.7.0. 🚧

    #+begin_src elisp :eval never
      (message "All blocks are now on by default!  You must opt out!")
    #+end_src
    
  • init is now recognized as a direction by babel blocks and counts for both begin and end. It always runs when entering a slide, regardless of direction. It is the counterpart to final, which always runs when exiting a slide.

Changed 🙅

  • Babel blocks are no longer configured with #+attr_dslide: affiliated keywords. Instead, :direction as a normal babel block parameter. ⚠️ Old style will warn.

    #+begin_src elisp :direction backwards
      (message "The old #+attr_dslide: backward style is no more!")
    #+end_src
    

    To provide multiple directions, you can use quoted lists and vectors, like so:

    #+begin_src elisp :direction '(begin backwards)
      (message "Lists must be quoted or Org mode tries to evaluate them")
    #+end_src
    
    #+begin_src elisp :direction [begin backwards]
      (message "It may be better to just use a vector 💡")
    #+end_src
    
  • Image action is now a default action (although default actions are going away.)

  • Image action defaults :standalone-display to nil. If you want fullscreen display, you need to set the option in the property drawer, the way it has been. This was to support turning the image action on by default.

  • ⚠️ Propertize action now warns on unquoted lists. Please use quoted lists. In my opinion, all lists should be considered quoted in org, but this change is consistent with babel parameters being evaluated when unquoted.

  • Yet more manual Kaizen. Seriously, check it out by installing dslide.

  • dslide-start-hook is only called when beginning from dslide-deck-start. dslide-deck-develop (and the new dslide-deck-present command) will not run this hook. If you use a custom start function, the dslide-deck-start hook will still run.

Fixed 💩

  • The image action will no longer haphazardly try to display links that don't look like an image. Remote images, if they were working on your Emacs, may be affected. File an issue, explain your setup, and workaround by downloading.
  • Window scroll when opening the contents was unreliable. The call to recenter was replaced with a scroll-down to pull the header into view. Let me know if this doesn't work for you. Stop just suffering in silence.
  • dslide-deck-stop when called in the contents will leave the contents and return to the presentation. It seemed unintuitive to quit from the contents view.
  • 🚧 dslide-deck-develop is a bit smarter. It may also be dumber. There's a lot of states it can be called in. The happy path seems okay.
  • 🚧 dslide-default-actions could result in duplicate actions. This caused issues with images when going in reverse if they were both configured and present in the default actions list. This entire behavior will go away in 0.7.0.