All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
(unreleased)=
(unreleased-added)=
- Added audio output to
manim-slides present
. #382
(unreleased-changed)=
- Added
--info-window-screen
option and change--screen-number
to not move the info window. #389
(unreleased-chore)=
- Created a favicon for the website/documentation. #399
(v5.1.3)=
(v5.1.3-chore)=
(v5.1.2)=
(v5.1.2-chore)=
- Fix ReadTheDocs version flyout in iframes. #367
(v5.1.1)=
(v5.1.1-chore)=
- Move documentation to ReadTheDocs for better versioning. #365
(v5.1)=
(v5.1-added)=
- Added the
--hide-info-window
option tomanim-slides present
. #313 - Added the
manim-slides render
command to render slides using correct Manim installation. #317 - Added the
playback-rate
andreversed-playback-rate
options to slide config. #320 - Added the speaker notes option. #322
- Added
auto
option for conversion format, which is the default. This is somewhat a breaking change, but changes to the CLI API are not considered to be very important. #325 - Added
return_animation
option to slide animationsself.wipe
andself.zoom
. #331 - Created a Docker image, published on GitHub. #355
- Added
:template:
and:config_options
options to the Sphinx directive. #357
(v5.1-modified)=
- Modified the internal logic to simplify adding configuration options. #321
- Remove
reversed
file assets when exporting to HTML, as it was not used. #336
(v5.1-chore)=
- Removed subrocess calls to FFmpeg with direct
libav
bindings using theav
Python module. This should enhance rendering speed and security. #335 - Changed build backend to PDM and reflected on docs. #354
- Dropped Python 3.8 support. #350
- Made Qt backend optional and support PyQt6 too. #350
- Documentated how to create and use a custom HTML template. #357
Prior to v5, there was no real CHANGELOG other than the GitHub releases, with most of the content automatically generated by GitHub from merged pull requests.
In an effort to better document changes, this CHANGELOG document is now created.
(v5-added)=
- Added the following option aliases to
manim-slides present
:-F
and--full-screen
forfullscreen
,-H
for--hide-mouse
, and-S
for--screen-number
. #243 - Added a full screen key binding (defaults to F) in the presenter. #243
- Added support for including code from a file in Manim Slides Sphinx directive. #261
- Added the
manim_slides.slide.animation
module and created theWipe
andZoom
classes, that return a new animation. #285 - Added two environ variables,
MANIM_API
andFORCE_MANIM_API
, to specify theMANIM_API
to be used:manim
andmanimce
will importmanim
, whilemanimgl
andmanimlib
will importmanimlib
. If one of the two APIs is already imported, useFORCE_MANIM_API=1
to override this. #285 - Added a working
ThreeDSlide
class compatible withmanimlib
. #285 - Added
loop
option toSlide
'snext_slide
method. Callingnext_slide
will never fail anymore. #294 - Added
Slide.next_section
for compatibility withmanim
'sScene.next_section
method. #295 - Added
--next-terminates-loop
option tomanim-slides present
for turn a looping slide into a normal one, so that it ends nicely. This is useful to have a smooth transition with the next slide. #299 - Added
--playback-rate
option tomanim-slides present
for testing purposes. #300 - Added
auto_next
option toSlide
'snext_slide
method to automatically play the next slide upon terminating. Supported bypresent
andconvert --to=html
commands. #304
(v5-changed)=
- Automatically concatenate all animations from a slide into one. This is a breaking change because the config file format is different from the previous one. For migration help, see associated PR. #242
- Changed the player interface to only use PySide6, and not a combination of PySide6 and OpenCV. A few features have been removed (see removed section), but the new player should be much easier to maintain and more performant, than its predecessor. #243
- Changed the slide config format to exclude unecessary information.
StypeType
is removed in favor to one booleanloop
field. This is a breaking change and one should re-render the slides to apply changes. #243 - Renamed key bindings in the config. This is a breaking change and one
should either manually rename them (see list below) or re-init a config.
List of changes:
CONTINUE
toNEXT
,BACK
toPREVIOUS
, andREWIND
toREPLAY
. #243 - Conversion to HTML now uses Jinja2 templating. The template file has been modified accordingly, and old templates will not work anymore. This is a breaking change. #271
- Bumped RevealJS' default version to v4.6.1, and added three new themes. #272
- Changed the logger such that
make_logger
is called at module import, and we do not use Manim's logger anymore. #285 - Changed
Slide.wipe
andSlide.zoom
to automatically callself.play
. This is a breaking change as callingself.play(self.wipe(...))
now raises an error (becauseNone
is not an animation). #285 - Changed the
manim_slides.slide
module to contain submodules, i.e.,slide.manim
,slide.manimlib
,slide.animation
. Onlyslide.animation
is part of the public API. Rules for choosing the Manim API (eithermanim
ormanimlib
) has changed, and defaults to the currently imported module, with a preference formanim
. #285
(v5-fixed)=
- Patched enums in
manim_slides/convert.py
to correctly callstr
's__str__
method, and not theEnum
one. This bug was discovered by @alexanderskulikov in #253, caused by Python 3.11's change in howEnum
work. #257. - Fixed potential non-existing parent path issue in
manim convert
's destination path. #262
(v5-removed)=
- Removed
--start-at-animation-number
option frommanim-slides present
. #242 - Removed the following options from
manim-slides present
:--resolution
,--record-to
,--resize-mode
, and--background-color
. #243 - Removed
PERF
verbosity level because not used anymore. #245 - Remove
Slide
's methodstart_loop
andself.end_loop
in favor toself.next_slide(loop=True)
. This is a breaking change. #294