Skip to content

Releases: positron-solutions/dslide

v0.6.2 Bug Fix

02 Jan 08:22
be47f2d
Compare
Choose a tag to compare

💩 org-element-parent call was removed. This would affect all slides and all presentations on affected versions, so it deserved a release.

v0.6.1 The Toddling

30 Dec 01:44
9d3a5e3
Compare
Choose a tag to compare

Fixing bugs and filling some gaps in new features.

Added 🎅

  • dslide-action-kmacro now understands the :keys string to be human readable keys, similar to those understood by kbd
  • dslide-kmacro-transcribe-type defaults to :keys and can be set to :events if you encounter an issue (which you should file) with :keys.

Changed 🧑‍🔧

  • dslide-action-kmacro old :keys has been renamed to :events. It is a vector of non-human-readable events.
  • dslide-hide-todo and dslide-hide-tags now properly default to t, as advertised. Thanks Ihor ⛄
  • 🚧 Babel blocks will only restore the point location in the slide buffer and only if it remains where it was set to evaluate the block. This allows babel blocks to better set up for kmacros in other buffers.

Fixed 💩

  • Develop window configuration was not cleaned up, resulting in improper window configuration "restoration"
  • 🚧 Line prefixes, such as those used by org modern to draw pretty source blocks, will be hidden by the markup hiding overlays.
  • 🚧 Header graphical artifacts possibly fixed, but the solution uses :extend t and could lead to problems elsewhere. File issues!
  • Actions for a heading with an empty section (no section element) no longer map over the first child's section
  • Keyboard macro backward steps are implemented
  • dslide-deck-forward no longer no-ops in some circumstances
  • kmacro action properly skips over non-matching directions when both forward and backward elements are present in a slide
  • 🚧 kmacro playback of M-<return> and M-<backspace> and others is now correct. There are likely more events that don't round trip nicely from last-kbd-macro through key-description and back through read-kbd-macro. File issues.
  • 🚧 kmacro playback no longer aborts when inputs from file-notify etc occur. It can be quit with C-g. A more comprehensive solution is being developed.

v0.6.0 Fighting Spam 💌

17 Dec 15:47
b8e1399
Compare
Choose a tag to compare
  • 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.

v0.5.5

25 Nov 03:41
0d9a1f6
Compare
Choose a tag to compare

Bug Fix Release. After doing some work on 0.5.4, a number of issues were discovered in new features that required cleanup.

Added

  • PEEK argument for section and child next methods on actions
  • Export blocks are now hidden by default in the markup hiding action. See dslide-hide-markup-types

Changed

  • Manual was updated with more high level overview

Fixed

  • An important reverse-in-place progress tracking bug was fixed. The description in the manual provides insights.
  • Images with both standalone and reveal display work
  • Images do not create unintended steps
  • Important image & markup hiding bug was fixed
  • Actions will properly run in reverse order when going backwards
  • Filtered headings no longer leave an extraneous newline
  • If a slide has a custom filter set, it might be respected in child actions. Only the active parent slide's filter is currently supported.
  • Text property action will clip the newline from the overlay, achieving the desired result for box, underline etc
  • Overlay cleanup is now only performed in slides that had dslide-finish called
  • TODO and tags are hidden in contents

v0.5.4

23 Nov 06:37
dee290e
Compare
Choose a tag to compare

Added

  • New options for images, reveal images as a series, show images full buffer without being visible on the slide. Call describe-symbol on dslide-action-image to see new slots
  • New propertize action can add text properties to any element by just adding a keyword
  • Hide tags, todos
  • Filter headings, support for custom filter function, filter commented and :noslide: or :noexport: headings by default
  • Manual
  • Demonstration of calling VLC from the demo.org

Changed

  • image fullscreen slot was changed to full-frame

Fixed

  • Hiding of keyword markup was unintentionally hiding images the markup was supposed to modify. Simple off-by-one bug that can be worked around using a space
  • Header margin options now work more properly
  • Overlay leakage
  • Feedback arrow defaults now use matching unicode

v0.5.3

03 Jul 15:28
2d8a9ac
Compare
Choose a tag to compare

Added

  • dslide-header-fun can be used to completely override the header if you like. This is an alternative to using all the customize options. See dslide-make-header for an example of how to pull this off. #3 also contains a minimal example.

Changed

  • dslide--overlays -> dslide-overlay, making it public. This is a good place for overlays you want to add for a slide but not bother cleaning up. They will be cleaned up when the slide changes.

Fixed

  • #3 addressed an issue with header faces being affected by the current heading

v0.5.2

20 Jun 05:43
0326d4d
Compare
Choose a tag to compare

Added

  • When following in the base buffer, the screen will recenter when slides narrow, enabling you to see ahead to your next step usually. Currently 10 lines of context are included in case there is a comment nearby.
  • Hiding comments and comment blocks via the hide-markup action is default
  • Blocks that set :exports none or exports :results will be hidden
  • Babel results will be cleared on slide entry and this can be configured with the remove-results option on the babel action

Changed

  • Babel block examples in the demo were organized into several examples to show each behavior independently
  • Proper generic methods were added so that highly valuable methods have eldoc completions

Fixed

  • Graphical flickering due to an animation initialization resolved
  • Affiliated keywords are hidden by the markup action
  • Following for buffers works across multiple frames, great for presentations!

v0.5.1

26 May 14:11
20c4a44
Compare
Choose a tag to compare

Added

  • Hide markup action. I figured most people will want this by default, and my other package is a bit too raw to depend upon right now
  • "Peeling" animation for inline item reveals, although this method is viable for all sorts of reveals. Needs a bit of internal API integration, but it is there and does work
  • dslide-slide-action-every-child will call dslide-forward on all of its children simultaneously. There is an example in the demo file

Changed

  • Default actions include hiding markup

Fixed

  • Progress for item reveal was fixed up a bit
  • No-header example in the demo
  • Some display behavior in dslide-deck-develop although there are likely still edge cases

v0.5.0

26 May 07:57
0f123e3
Compare
Choose a tag to compare

Changed

  • DSLIDE_CHILD_ACTION completely subsumed into DSLIDE_SLIDE_ACTION. There are no more child actions. It is gone as a concept. Only the slide action remains
  • Extraneous parent slot on slide object removed
  • DSLIDE_SECTION_ACTIONS -> DSLIDE_ACTIONS. We can still say "section action" in docs, but when configuring, DSLIDE_ACTIONS is specific enough

v0.4.0

25 May 13:38
da571e4
Compare
Choose a tag to compare

Added

  • none slide action now supported (this is likely to change due to slides combining with child and slide actions)
  • multiple simultaneous animations supported

Changed

  • important action methods, dslide-section-next dslide-section-previous dslide-child-next dslide-child-previous support an optional argument, REVERSE-IN-PLACE that enables use by actions that want to reverse by re-processing the same org element. Hiding and revealing an item is an example.
  • dslide-start-from was defaulted to point

Fixed

  • The tail-end of animations is now buttery smooth due to a math fix
  • various sources of flicker
  • removed redundant forward & backwards steps due to excessive use of default implementation of dslide-end, which walks forward until progress cannot be made
  • some lifecycle issues such as needing to display the slide buffer
  • image action will load images when going backward