Releases: positron-solutions/dslide
v0.6.2 Bug Fix
v0.6.1 The Toddling
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 bykbd
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
anddslide-hide-tags
now properly default tot
, 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>
andM-<backspace>
and others is now correct. There are likely more events that don't round trip nicely fromlast-kbd-macro
throughkey-description
and back throughread-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 💌
- 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.
v0.5.5
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
Added
- New options for images, reveal images as a series, show images full buffer without being visible on the slide. Call
describe-symbol
ondslide-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 tofull-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
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. Seedslide-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
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
orexports :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
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 calldslide-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
Changed
DSLIDE_CHILD_ACTION
completely subsumed intoDSLIDE_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
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 topoint
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