- 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 thedslide-action-kmacro
ordslide-kmacro
prefixes. -
🧪 Experimental keyboard macro recording with
dslide-kmacro-transcribe-set-mark
, every time you callkmacro-end-macro
, dslide will transcribe a macro playback expression into your presentation. All related commands, functions, and variables are under thedslide-kmacro-transcribe
prefix -
dslide-deck-present
is a distinct command fromdslide-deck-start
. It will create a new frame instead of showing the presentation in the current frame. Thedslide-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 seedslide-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 thedslide-deck-develop
command to debug your presentation. -
Babel blocks, which will now all be executed by default, respect the
:eval
parameter. Values such asnever
ornever-export
will skip the block. Other values are equivalent toyes
. Values likequery
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 bothbegin
andend
. It always runs when entering a slide, regardless of direction. It is the counterpart tofinal
, 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
tonil
. 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 fromdslide-deck-start
.dslide-deck-develop
(and the newdslide-deck-present
command) will not run this hook. If you use a custom start function, thedslide-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 ascroll-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.