* 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(docs): document HTML custom templates
Shows an example of custom template.
TODO:
- [ ] finish documentating;
- [ ] add possibility to pass `-cargs` to Manim Slides' `convert` method when calling the Sphinx extension.
Closes#356
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(docs): document changes and fix
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(deps): use PDM instead of Poetry
* chore(git): move to top
* chore(lint): fixes
* fix(pdm): dynamic version did not work
* chore(ci): fix syntax for Windows
* fix(ci): typo
* wip(docs): updates
* chore(docs): add changelog entry
* chore(docs): admonitions
* chore(docs): update to use manim-slides render
* chore(docs): make it better
* 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>
* chore(deps): remove subprocess calls to FFMPEG with `av`
Linked to the progess made in https://github.com/ManimCommunity/manim/pull/3501.
The following PR aims at reducing subprocess calls for security and speed reasons. Also, with https://github.com/ManimCommunity/manim/pull/3501 is merged, FFMPEG should not be needed anymore as it is part of `PyAv`.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(lib): oops forgot to commit those changes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lib): clear assets and clean code
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(doc): document changes
---------
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>
* chore(lib): simplify how to add config options
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lint): some fixes
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): add render command as alias to `manim render`
* feat(cli): add render command as alias to `manim render`
* chore(test): add test
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lib): simplify how ManimGL rendering is called
* chore(lib): test
* chore(ci): try identify error
* wip
* chore(test): add result output
* try: checkout
* Revert "try: checkout"
This reverts commit 60985f0b612ca0c6bff9726ebcccf07b1b1c4832.
* fix(deps): don't update lock
* chore(lib): simplify code and improve usage
* chore(cli): better cli
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: does this fix?
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): added `--hide-info-window` option
This was suggested by Discord use #dung_14424 on the Manim Discord.
* [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 `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
* chore(tests): adding tests for Qt widgets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: reset WINDOW name
* chore(tests): addign tests
* chore: adding more tests
* fix how bin existence is checked
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: which takes str
* more tests!
* todo: fix
* change verbosity in tests
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(lib): add `Slide.next_section` method
* [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>
* fix(ci): OpenGL issue on Windows server
Attempt at fixing OpenGL issue on Windows server
* fix(ci): unmark xfail
* [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): 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>
* feat(lib): Sphinx directive can now read files
You can optionally read a file instead of the Sphinx directive's content
* fix(lib): rst syntax and docs
* [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): remove notebook dependencies
Unused optional dependency.
* [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: 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>
* feat(present): fix presentation size and add screen option
This kinda fixes the issue of weird resizes between two presentations
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): typing
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This PR introduces a **BREAKING CHANGE**: the general config file is now written in the TOML format. Keys are also placed under a shared subsection. Previous config files will be ignore.
Migration from the previous format can be easily performed with `manim-slides init` and copy/pasting the key codes if necessary.
* fix(lib/cli): relative paths, empty slides, and tests
This fixes two issues:
1. Empty slides are now reported as error, to prevent indexing error;
2. Changing the folder path will now produce an absolute path to slides, which was not the case before and would lead to a "file does not exist error".
A few tests were also added to cover those
* fix(lib): fix from_file, remove useless field, and more
* chore(tests): remove print
* [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 canvas and features
Add canvas to slide
* [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): improve wipe animation
Improve wipe transition by using FadeIn and FadeOut. The also allows to support introducers and removers.
* [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
* chore(deps): upgrading to qt6.5
This PR proposes to update to PySide6.5.
On Ubuntu, you may face this problem (solution included): https://bugreports.qt.io/browse/PYSIDE-2306
* chore(ci): remove experimental installer
* 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
* chore(deps): add manim and manimgl as extras
* chore(ci): publish wheels too
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): run tests on dep. changes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): only use extras to build pages
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(docs): update install documentation
Closes#169
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(docs): update according to code quality report
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat(cli): add more debugging messages
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(lib): fix msg to be more correct
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(version): setup dummy version
chore(version): fix
* chore(ci): udpate version in __version__ too
* chore(version): revert changes
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* 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>
* chore(misc): JOSE paper
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): update path
* fix(ci): tab error
* fix(ci): path to paper
* fix(paper): updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(paper): typos
---------
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>
* chore(ci): clear cache
We must force cache clearing to save a new media/ directory
* chore(ci): clear cache when PR is closed
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(ci): add write permission
---------
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>
* chore(license): change to MIT
After acceptance from owner of manim-presentation (via Telegram), I am changing the license to MIT.
* chore(ci): change license info
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
* chore(setup): remove 3.7 classifier
* 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>
* feat: add option for background color
This allows to define the background color used for border when resize mode is set to "keep".
Closes#52
* [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>
This adds a new option that allows to control how the video is going to be scaled. By default, we now use a smooth rescaling, but fast mode with no interpolation can be used (previously default).
* Mouse Show/Hide feature
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Mouse Hide/Show Fix
Applied requested changes for PR
* [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>
Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
* FEAT: Git template for documentation
* PATCH: Space keys updated
* PATCH: Spaccing update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* UPDATE: Code of conduct removed
* PATCH: Retry CI
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: Harisai <Harisaipravin_SV@intuit.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* wip: use PyQT5 for window display
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: first slide is shown
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: pushing non-working code
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: some logging
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat: new configuration wizard working
* fix: prevent key error
* wip: making action work
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip: soon done! info + video
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: bugs in sleep and exiting
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* try: offscreen
* fix: pop default value if not present
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* feat: add aspect ratio option
* chore: typing wip
* fix: now() function returns seconds, not milliseconds anymore
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Create feature_request.yml
* Issue template
* Create bug.yml
* Update bug.yml
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update bug.yml
* Update bug.yml
* [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>
* Create ISSUE_TEMPLATE
* Update feature_request.yml
* [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(ci): add more style checks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): remove vulture as flake8 replaces it
* chore(lib): add __all__ list
* chore(ci): make flake8 happy and remove mypy
* fix: config_path is actually used in commons
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(lib): add a more meaningful error message
This adds an error message to explain why calling `self.pause()` cannot work if no previous animation was played.
* [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>
* fix(cli): properly rewind / previous slide after reverse
Closes#24
* [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): record presentation
As proposed in #21, it is now possible to record a presentation output to a video file, with option `--record-to="some_file.avi"`.
Closes#21
* [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>
* fix(ui): enhance window quality
This fix always resizes the frame size, as this seems to be a good cross-platform fix to the quality issue that occurs when the frame does not match the window size.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: remove unused import
* fix: actually only resize on Windows
* feat(cli): optional interpolation flag
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore: add image fox windows quality fix
* chore(README): document Windows fix
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* chore(ci): add CodeQL check
* [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>
* fix(cli): previous presentation starts last slide
This changes the previous behavior that was such that going to previous presentation (scene) would start it from zero.
* fix(README): remove non-working svgs
Seems like GitHub does not support that
* wip: onto a cleaner parser, and more robust presentation
* fix(README): remove non-working svgs
Seems like GitHub does not support that
* wip: onto a cleaner parser, and more robust presentation
* wip: some progress
* fix: this is kinda working now
* fix: repeated reversed slide
* fix: import __version__ without importing package
* fix: typing list -> List
* chore(README): update features
* chore(README): upgrade in the README documentation
* chore(README): upgrade in the README documentation
* fix(README): typo in emoji
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix(README): typo in emoji (bis)
* fix: toc link
* fix: few typos found by LT
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* fix(cli): resize only on fullscreen
Closes#10
* [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>
* misc: create Manim Slides logo
* [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(ci): test builds on multiple oses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: add tqdm to setup
* chore(ci): test builds on multiple oses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: install deps in two steps
* fix(bug): allows shape to be 2 or 3 dims
* release new version
* chore(ci): test builds on multiple oses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* chore(ci): test builds on multiple oses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: install deps in two steps
* fix: deps string
* fix: ci
* fix: single quote strings
* fix: choco install manimce
* Add pyopengl
* Update test_examples.yml
* fix: custom 3d example for manimgl
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: virtual frame buffer
* fix: add ffmpeg dep
* feat(cli): add skip-all option for testing
* chore(lint): black fmt
* fix: typo in deps
* fix: python -m pip install
* fix: typo
* Update test_examples.yml
* fix: try fix
* fix: pip install --user
* pip install -e
* only on windows
* fix: tmp fix
* fix: typo in int parsing
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update test_examples.yml
* Update __version__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
You **must** end your `Slide` with a `self.play(...)` or a `self.wait(..)`
To start the presentation using `Scene1`, `Scene2` and so on simply run:
```
manim_presentation Scene1 Scene2...
```
## Keybindings
Default keybindings to control the presentation
| Keybinding | Action |
|:-----------:|:------------------------:|
| Right Arrow | Continue/Next Slide |
| Left Arrow | Previous Slide |
| R | Re-Animate Current Slide |
| Spacebar | Play/Pause |
| Q | Quit |
You can run the **configuration wizard** with
```
manim-presentation-wizard
```
Alternatively you can specify different keybindings creating a file named `manim-presentation.json` with the keys: `QUIT_KEY``CONTINUE_KEY``BACK_KEY``REWIND_KEY` and `PLAYPAUSE_KEY`
`manim-presentation` uses `cv2.waitKeyEx()` to wait for keypresses
The code is released as Free Software under the [GNU/GPLv3](https://choosealicense.com/licenses/gpl-3.0/) license. Copying, adapting and republishing it is not only consent but also encouraged.
For any further question feel free to reach me at [federico.galatolo@ing.unipi.it](mailto:federico.galatolo@ing.unipi.it) or on Telegram [@galatolo](https://t.me/galatolo)
This branch is kept to keep the https://jeertmans.github.io/manim-slides
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent",
"Development Status :: 4 - Beta"
],
)
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.