Changelog

Unreleased

v5.1.6

Added

  • Added options to skip the Manim Slides Sphinx directive. #423

Chore

  • Added an examples gallery. #422

v5.1.5

Chore

  • Added CI for broken HTML links and fixed, plus spell checking. #417

  • Create FAQ page and clear FAQ from README.md. #418

  • Used Rye instead of PDM for faster development. #420

Fixed

  • Fixed broken --show-config command. #419

v5.1.4

Added

  • Added audio output to manim-slides present. #382

Changed

  • Added --info-window-screen option and change --screen-number to not move the info window. #389

Chore

  • Created a favicon for the website/documentation. #399

  • Documented the Nixpkg installation. #404

  • Updated the default RevealJS version to 5.1.0. #412

  • Removed the opencv-python dependency. #415

Fixed

  • Fixed the retrieval of background_color with ManimCE. #414

  • Fixed #390 issue caused by empty media created by ManimCE. #416

v5.1.3

Chore

  • Fix link in documentation. #368

  • Warn users if not using recommended Qt bindings. #373

v5.1.2

Chore

  • Fix ReadTheDocs version flyout in iframes. #367

v5.1.1

Chore

  • Move documentation to ReadTheDocs for better versioning. #365

v5.1

Added

  • Added the --hide-info-window option to manim-slides present. #313

  • Added the manim-slides render command to render slides using correct Manim installation. #317

  • Added the playback-rate and reversed-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 animations self.wipe and self.zoom. #331

  • Created a Docker image, published on GitHub. #355

  • Added :template: and :config_options options to the Sphinx directive. #357

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

Chore

  • Removed subrocess calls to FFmpeg with direct libav bindings using the av 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

v5

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.

Added

  • Added the following option aliases to manim-slides present: -F and --full-screen for fullscreen, -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 the Wipe and Zoom classes, that return a new animation. #285

  • Added two environ variables, MANIM_API and FORCE_MANIM_API, to specify the MANIM_API to be used: manim and manimce will import manim, while manimgl and manimlib will import manimlib. If one of the two APIs is already imported, use FORCE_MANIM_API=1 to override this. #285

  • Added a working ThreeDSlide class compatible with manimlib. #285

  • Added loop option to Slide’s next_slide method. Calling next_slide will never fail anymore. #294

  • Added Slide.next_section for compatibility with manim’s Scene.next_section method. #295

  • Added --next-terminates-loop option to manim-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 to manim-slides present for testing purposes. #300

  • Added auto_next option to Slide’s next_slide method to automatically play the next slide upon terminating. Supported by present and convert --to=html commands. #304

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 unnecessary information. StypeType is removed in favor to one boolean loop 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 to NEXT, BACK to PREVIOUS, and REWIND to REPLAY. #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 and Slide.zoom to automatically call self.play. This is a breaking change as calling self.play(self.wipe(...)) now raises an error (because None is not an animation). #285

  • Changed the manim_slides.slide module to contain submodules, i.e., slide.manim, slide.manimlib, slide.animation. Only slide.animation is part of the public API. Rules for choosing the Manim API (either manim or manimlib) has changed, and defaults to the currently imported module, with a preference for manim. #285

Fixed

  • Patched enums in manim_slides/convert.py to correctly call str’s __str__ method, and not the Enum one. This bug was discovered by @alexanderskulikov in #253, caused by Python 3.11’s change in how Enum work. #257.

  • Fixed potential non-existing parent path issue in manim convert’s destination path. #262

Removed

  • Removed --start-at-animation-number option from manim-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 method start_loop and self.end_loop in favor to self.next_slide(loop=True). This is a breaking change. #294