#+title: Dslide News #+author: Positron #+email: contact@positron.solutions # The top heading is used to generate the Release notes for the Github releases # page. Include changes in this file to avoid having to compile it all at # every release. #+link: demo.org https://github.com/positron-solutions/dslide/blob/v0.6.0/test/demo.org #+select_tags: latest #+export_file_name: RELEASE.md * v0.6.0 Fighting Spam ๐Ÿ’Œ :latest: - 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. ** 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 [] 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. - 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 org ,#+begin_src elisp :eval never (message "All blocks are now on by default! You must opt out!") ,#+end_src #+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, they now read =:direction= as a normal babel block parameter. โš ๏ธ Old style will warn. #+begin_src org ,#+begin_src elisp :direction backwards (message "The old #+attr_dslide: backward style is no more!") ,#+end_src #+end_src To provide multiple directions, you can use quoted lists and vectors, like so: #+begin_src org ,#+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 #+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 seemd unintuitive to quite 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. * v0.5.6 Let There Be News ๐Ÿ—ž๏ธ - โ›” The concept of default actions has been marked for deprecation. This is preparation for instantiating actions on-demand rather than per slide. The action system may undergo some overhaul internally. + Markup will be reduced, not changed + Affiliated keywords such as =#+attr_dslide_propertize:= will be used more + Configuration of actions on the slide property drawer will be made unnecessary and then removed except for slide actions, which have higher association with the slide heading than any elements in the section. ** Added - Breadcrumbs can have a trailing separator appended with ~dslide-breadcrumb-separator-style~. Default is =append=. To return to old behavior, select =separate=. - News file (this file) ** Changed - Manual Kaizen (continuous improvement) ** Fixed - When a step callback fails, it will be removed from the deck's list of callbacks, preventing infinite loops. This respects ~debug-on-error~.