* Use scene background color as default
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Minor changes to feature: Read scene background
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Small fix for feature "Read bg color"
* chore(ci): add typing ignore
* fix(ci): typo
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
* fix(cli): do not terminate slides early
When a slide is replayed (either normally or reversed), its state must be reset.
Closes#161
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): auto detect resolution
The `present` command will now read by default the resolution of each presentation, and only change it if specified by the user.
This PR also fixes bugs introduced by #156 and previous PRs, where the transition between two presentation was not correct...
* fix(lib): better to test if not None
* wip: start at index
* feat(cli): add start at index options
* fix(ci): correct callback
* chore(ci): fix type hint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(cli): typo in variable name...
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(render): support skipping animations
Manim Slides now supports when Manim or ManimGL skip rendering some animations. All non-public attributes or methods are now named with leading __
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(convert): PowerPoint conversion
You can now convert your presentations to PowerPoint
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(convert): autoplay media
* chore(deps): remove pkg_resources in favor to importlib
This is what pkg_resources' team recommends
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(deps): if case for Python 3.8 (<3.9)
* fix(convert): use correct pkg path
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(deps): remove duplicate deps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): add __init__.py
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(convert): PowerPoint conversion
You can now convert your presentations to PowerPoint
* fix(deps): push poetry lock
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lint): ignore attr-defined because Windows-only
* chore(convert): autoplay media
* fix(convert): autoplay and autoloop
* chore(deps): update lock file
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat(convert): use first frame as default poster frame
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(docs): document new feature
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(lib): use `next_slide` not `pause`
This deprecates `pause` function in favor to `next_slide`, that will also be called by `next_section` in the future.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(lib): reduce import overhead
This PR should reduce the import time overhead caused by manim imports. To solve this, manim is only imported when Slide or ThreeDSlide is needed. A custom logger is now defined, which copies the one from Manim Community. FFMPEG_BIN is now hardcoded, but should be configurable in the future via the CLI or some config file.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): remove last .manim import
* fix(lib): remove print
* chore(lib): fix typo
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): using cached files when possible
This should improve a bit the overall performances
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip(lib): change os.path to pathlib.Path
* chore(lib): use pathlib.Path instead of str
* fix(logger): convert Path to str
* chore(lint): add type hint to prevent future errors
* fix(lib): correct suffix addition
* fix(lib): a class can now have zero slide and work
This fixes a previous issue that occured when a class didn't have any `pause`
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(version): bump 4.8.2 to 4.8.3
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): always use apt-get update
See comment https://github.com/actions/runner-images/issues/6488#issuecomment-1295789463
* chore(docs): add opengraph image and update description
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This removes the constraint that required a Slide class to end with a animation. This was actually not needed, and could lead to confusion since `self.wait` is not an animation with ManimGL, but well with Manim.
This fix, however, still means that a calls to `self.wait` with ManimGL, after last `self.pause` call, will be ignored.
* chore(docs): improving the docs
This improves the docs as suggested by some reddit user. Now, most of Manim is documented in one place
* try: update lockfile
* chore(deps): remove duplicate key
* fix(ci): isort issue
See https://github.com/home-assistant/core/issues/86892
* fix(ci): bad identation
* fix(ci): fixing lock file
* fix(example): issue when ManimGL does not count wait as animation
* feat(cli): feally featured RevealJS template
This adds an option for every possible RevealJS option. Error messages are also improved.
RevealJS version is bumped to latest (4.4.0).
* feat(cli): add primitive support for arbitrary JS functions
* fix(cli): some typos / issues in template
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): pickling issue
* fix(lib): ignore typing error due to __reduce_ex__
* feat(cli): add template selection, fixes first slide bug, and rm stuff
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
As suggested by PySide6's documentation, we avoid using pixmap.scaled() on every frame, but use scaled content to resize the image. This seems to ignore ratio, explaining why we need a new option flag.
* chore(deps): drop support for Python 3.7
In link with the recent release of [Manim v0.17.0](https://github.com/ManimCommunity/manim/releases/tag/v0.17.0), Manim Slides drops support for Python 3.7.
* feat(cli): check for newer Manim Slides version
Uses same logic as manim to check for a new version
* fix(lib): reset correct version
* fix(ci): add type stubs for requests
* chore(speed): avoid unnecessary color conversion
This speeds up a bit the presentation by avoiding color conversion from BGR (OpenCV) to RGB.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* refactor(lib): rename `main` to `__main__`
This allows to call the module using `python -m manim-slides`, useful for profiling, etc.
* fix(setup): update name
* fix: unused imports, hide tab warning for the str
* refactor(defaults.py): move revealjs_template to separate file
* fix(lib): move data files and use pkg_resources
* fix(lib): remove unused and unexisting import
* fix(ci): only test conversion with Manim
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): test ManimGL on Python 3.10, not 3.11
* fix(lib): include package data in setup.py
* fix(ci): no fail-fast
* fix(ci): typo
Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip(cli): convert slides to html using RevealJS
* wip: convert - almost fully working
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: remove unused file
* fix: add last slides in now performed during rendering
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): testing ConvertExample too
* fix: ManimGL does not consider wait as an animation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): read environ variable for verbosity
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>