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)=
(v5.3.1)=
(v5.3.1-fixed)=
- Fixed HTML template to avoid missing slides when exporting with
--one-file
. @Rapsssito #515
(v5.3.0)=
(v5.3.0-added)=
- Added CSS and JS inline for
manim-slides convert
if--offline
and--one-file
(-cone_file
) are used for HTML output. @Rapsssito #505
(v5.3.0-changed)=
- Deprecate
-cdata_uri
in favor of-cone_file
formanim-slides convert
. @Rapsssito #505 - Changed template to avoid micro-stuttering with
--one-file
in HTML presentation. @Rapsssito #508
(v5.2.0)=
(v5.2.0-changed)=
- The info window is now only shown in presentations when there
are multiple monitors. However, the
--show-info-window
option was added tomanim-slides present
to force the info window. When there are multiple monitors, the info window will no longer be on the same monitor as the main window, unless overridden. @PeculiarProgrammer #482
(v5.2.0-chore)=
-
Bump ManimGL to
>=1.7.1
, to remove conflicting dependencies with Manim's. #499 -
Bump ManimGL to
>=1.7.2
, to removepyrr
from dependencies, and to avoid complex code for supporting both1.7.1
and>=1.7.2
, as the latter includes many breaking changes. #506
(v5.1.10)=
(v5.1.10-added)=
- Added
--offline
option tomanim-slides convert
for offline HTML presentations. #440 - Added documentation to config option to
manim-slides convert
when using--show-config
. #485
(v5.1.10-changed)=
- Allow multiple slide reverses by going backward @PeculiarProgrammer. #488
(v5.1.10-fixed)=
- Fixed PyAV issue by pinning its version to
<14
. A future release will contain a fix that supports bothav>=14
andav<14
, as their syntax differ, but the former doesn't provide binary wheels for Python 3.9. #494 - Fixed blank web page when converting multiple slides into HTML. #497
(v5.1.9)=
(v5.1.9-fixed)=
- Fixed failing docker builds. #481
(v5.1.8)=
(v5.1.8-added)=
- Added
manim-slides checkhealth
command to easily obtain important information for debug purposes. #458 - Added support for
disable_caching
andflush_cache
options from Manim, and also the possibility to configure them through class options. #452 - Added
--to=zip
convert format to generate an archive with HTML output and asset files. #470
(v5.1.8-chore)=
- Pin
rtoml==0.9.0
on Windows platforms, see #398, until samuelcolvin/rtoml#74 is solved. #432 - Removed an old validation check that prevented setting
loop=True
withauto_next=True
onnext_slide()
#445 - Improved (and fixed) tests for Manim(GL), bumped minimal ManimCE version, improved coverage, and override dependency conflicts. #447
- Improved issue templates. #456
- Enhanced the error message when the slides folder does not exist. #462
- Fixed deprecation warnings. #467
- Documented potential fix for PPTX issue. #475
- Changed project manager from Rye to uv. #476
(v5.1.8-fixed)=
- Fix combining assets from multiple scenes to avoid filename collision. #429
- Fixed whitespace issue in default RevealJS template. #442
- Fixed black screen issue on recent Qt versions and device loss detected, thanks to @PeculiarProgrammer! #465
(v5.1.8-removed)=
- Removed
full-gl
extra, because it does not make sense to ship bothmanimgl
andmanim
together. #447
(v5.1.7)=
(v5.1.7-chore)=
- Improved the CI for bumping the version and README rendering on PyPI. #425
(v5.1.6)=
(v5.1.6-added)=
- Added options to skip the Manim Slides Sphinx directive. #423
(v5.1.6-chore)=
- Added an examples gallery. #422
(v5.1.5)=
(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
(v5.1.5-fixed)=
- Fixed broken
--show-config
command. #419
(v5.1.4)=
(v5.1.4-added)=
- Added audio output to
manim-slides present
. #382
(v5.1.4-changed)=
- Added
--info-window-screen
option and change--screen-number
to not move the info window. #389
(v5.1.4-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
(v5.1.4-fixed)=
- Fixed the retrieval of
background_color
with ManimCE. #414 - Fixed #390 issue caused by empty media created by ManimCE. #416
(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 unnecessary 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