* test: re-add opencv-python
* chore(dev): move to Rye instead of PDM
* try fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: build backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: string quotes?
* small fixes
* upgrade typing
* fix(ci): rye install on Windows
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): typos
* fix
* fix(ci): actually use right python version
* fix(deps): manimgl
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix docs
* another fix
* cleanup
* make sure to use trusted publisher
* chore(docs): remove PDM
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(ci): checking links and spell checking
* chore(ci): move markdown-link-check to GitHub ci
Because pre-commit.ci does not have access to the internet...
* fix(lib): revert `reverse-...` utils because of warnings
* chore(ci): checking links and spell checking
* chore(ci): move markdown-link-check to GitHub ci
Because pre-commit.ci does not have access to the internet...
* fix(docs): myst-parser xref cannot end with .html
* fix(docs): oops
* fix(rtd): remove flyout in iframes
* fix(rtd): remove dirhtml and default to html
Because dirhtml seems to have issues with iframes
* fix(html): correct css style
* chore(deps): make Qt backend optional
TODO:
- [ ] Add relevant entry in CHANGELOG
- [ ] Update install documentation
- [ ] Make sure `manim-slides convert` can run without any Qt backend
- [ ] Make sure test suite works (partially) without any Qt backend
- [ ] Make sure we can import `manim_slides` without any Qt backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): some fixes but wip
* chore(docs): update
* chore(deps): support PyQt6
* chore(deps): make Qt backend optional
TODO:
- [ ] Add relevant entry in CHANGELOG
- [ ] Update install documentation
- [ ] Make sure `manim-slides convert` can run without any Qt backend
- [ ] Make sure test suite works (partially) without any Qt backend
- [ ] Make sure we can import `manim_slides` without any Qt backend
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): some fixes but wip
* chore(docs): update
* chore(deps): support PyQt6
* fix(deps): ci and docs
* fix(lib): missing package
* chore(ci): does it work?
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(test): skip failing
* chore(docs): update
* chore(docs): update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(docs): typo
* fix(test): quit instead of shutdown
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(lib): do not include reversed files in HTML assets
* [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(lib): enhance notes support
TODO: fix keyboard inputs and window order with `present`.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lint): allow too complex
* wip: presenter mode
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat(cli): add presenter view
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): automatically detect conversion format from DEST
As titled
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(cli): fix and add tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): ?
* [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(lib): add support for presenter notes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(test): typo
* Update test_slide.py
* Update convert.py
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(lib): add `auto_next` option
As suggested in #302, you can now automatically skip a slide. It works both with `present` and `convert --to=html`!
Closes#302
* chore(ci): add trigger on push on main
* refactor(lib): change how manim API is imported
* chore(lib): delete old files
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: moving all commands
* adding animations
* fix tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix mypy
* fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* trying to fix docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* make it work
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip test
* tests are working
* improving docs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix index
* docs: nicer shift
* docs: nicer quickstart example
* fix tests
* change tests
* move coverage to test workflow
* fix(tests): remove resolve
* strict resolve
* change local path test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* documented changes
* cleanup docs
* cleanup files
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): set type
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(convert): use Jinja2 for templating
Use Jinja2 templating for more customizable rendering
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(deps): jinja2 is no more optional
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip: rewrite player
* wip(cli): new player
* wip(player): allow to close
* Auto stash before merge of "rewrite-player" and "origin/rewrite-player"
* feat(cli): new player
* chore(docs): document changes
* feat(cli): add info window
* chore(lib/cli): one video per slide
As titled, this PR changes how Manim Slides used to work by only storing one video file per slide.
Previously, a slide would store all animations that occur during the given slide. Up to now, the only "advantage" of this was that it would allow the user to know which animation is played.
But, at the cost of a very complex logic in present, just especially for reversed slides.
On top of top, all converter actually need to concatenate the animations from each slide into one, so it is now performed at rendering time.
To migrate from previous Manim Slides versions, the best is the render the slides again, using `manim render` or `manimgl render`.
Currently, it is not possible to start at a given animation anymore. However, if wanted, I may re-implement this, but this would require to change the config file again.
* fix(ci): trying to fix tests
* chore(test): renaming files
* chore(docs): remove old line from changelog
* fix(docs): typo
* fix(ci): manimgl and smarter comparison
* [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(lib): add Jupyter magic
And also use the same logger level as manim (by default)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): remove deleted module
* chore(lib): fix typing issues
* chore(docs): document magic
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): install kernel
* fix(ci): spawning is not necessary (and fails)
* chore(ci): add ipykernel
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(convert): support base64 encoded videos
Thanks to @t-fritsch, Manim Slides can now convert to a fully self-contained HTML presentation using base64 encoded videos!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lib): explicit decode type
* feat(lib): auto detect mime type
* [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(deps): bumping pydantic to V2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): validators
* fix(ci): add tests and fixes
* fix(lib): add missing mode arg
* fix(lib): change function name
* chore(tests): add more tests and use pytest
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(deps): change test deps
* chore(ci): install manim deps
* fix(ci): move to right place
* fix(lib): add custom schema
* fix(lib): validators
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(convert): add to PDF conversion
Basic PDF conversion. It takes the last frame (by default) for each animation, and prints out a PDF page.
Closes#196
* chore(ci): remove experimental installer
* feat(convert): add to PDF conversion
Basic PDF conversion. It takes the last frame (by default) for each animation, and prints out a PDF page.
Closes#196
* feat(convert): add to PDF conversion
Basic PDF conversion. It takes the last frame (by default) for each animation, and prints out a PDF page.
Closes#196
* chore(deps): update lockfile
* fix(pages): missing assets
This is a PR to try understanding why some assets are not present
* fix(ci): correct path
* fix(ci): fix path..
* chore(ci): add debug
* chore(ci): more and more debug
* 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>
* 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
* 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>
* 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
* 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>
* 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>