mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-09-19 21:33:29 +08:00
chore(docs): document sharing slides (#134)
* chore(docs): remove deprecated "last animation" mention * chore(docs): document sharing slides
This commit is contained in:
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Tool for live presentations using either [Manim (community edition)](https://www.manim.community/) or [ManimGL](https://3b1b.github.io/manim/). Manim Slides will *automatically* detect the one you are using!
|
Tool for live presentations using either [Manim (community edition)](https://www.manim.community/) or [ManimGL](https://3b1b.github.io/manim/). Manim Slides will *automatically* detect the one you are using!
|
||||||
|
|
||||||
> **_NOTE:_** This project extends the work of [`manim-presentation`](https://github.com/galatolofederico/manim-presentation), with a lot more features!
|
> **NOTE:** this project extends the work of [`manim-presentation`](https://github.com/galatolofederico/manim-presentation), with a lot more features!
|
||||||
|
|
||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
* [Dependencies](#dependencies)
|
* [Dependencies](#dependencies)
|
||||||
|
@ -8,6 +8,7 @@ Automatically generated reference for Manim Slides.
|
|||||||
api
|
api
|
||||||
cli
|
cli
|
||||||
examples
|
examples
|
||||||
|
sharing
|
||||||
```
|
```
|
||||||
|
|
||||||
[Application Programming Interface](./api): list of classes and methods that may be useful to the end-user.
|
[Application Programming Interface](./api): list of classes and methods that may be useful to the end-user.
|
||||||
@ -15,3 +16,5 @@ examples
|
|||||||
[Command Line Interface](./cli): list of all commands available using Manim Slides' executable.
|
[Command Line Interface](./cli): list of all commands available using Manim Slides' executable.
|
||||||
|
|
||||||
[Examples](./examples): curated list of examples and their output.
|
[Examples](./examples): curated list of examples and their output.
|
||||||
|
|
||||||
|
[Sharing](./sharing): how to share your presentation with others.
|
||||||
|
126
docs/source/reference/sharing.md
Normal file
126
docs/source/reference/sharing.md
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
# Sharing your slides
|
||||||
|
|
||||||
|
Maybe one of the most important features is the ability to share your
|
||||||
|
presentation with other people, or even with yourself but on another computer!
|
||||||
|
|
||||||
|
There exists a variety of solutions, and all of them are exposed here.
|
||||||
|
|
||||||
|
We will go from the *most restrictive* method, to the least restrictive one.
|
||||||
|
If you need to present on a computer without prior knowledge on what will be
|
||||||
|
installed on it, please directly refer to the last sections.
|
||||||
|
|
||||||
|
> **NOTES:** in the next sections, we will assume your animations are described
|
||||||
|
in `example.py`, and you have one presentation called `BasicExample`.
|
||||||
|
|
||||||
|
## With Manim Slides installed on the target machine
|
||||||
|
|
||||||
|
If Manim Slides, Manim (or ManimGL), and their dependencies are installed, then
|
||||||
|
using `manim-slides present` allows for the best presentations, with the most
|
||||||
|
options available.
|
||||||
|
|
||||||
|
### Sharing your Python file(s)
|
||||||
|
|
||||||
|
The lightest way to share your presentation is with the Python files that
|
||||||
|
describe the slides.
|
||||||
|
|
||||||
|
If you have such files, you can recompile the animations locally, and use
|
||||||
|
`manim-slides present` for your presentation. You may want to copy / paste
|
||||||
|
you own `.manim-slides.json` config file, but it is **not recommended** if
|
||||||
|
you are sharing from one platform (e.g., Linux) to another (e.g., Windows) as
|
||||||
|
the key bindings might not be the same.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# If you use ManimGl, replace `manim` with `manimgl`
|
||||||
|
manim example.py BasicExample
|
||||||
|
|
||||||
|
# This or `manim-slides BasicExample` works since
|
||||||
|
# `present` is implied by default
|
||||||
|
manim-slides present BasicExample
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sharing your animations files
|
||||||
|
|
||||||
|
If you do not want to recompile all the animations, you can simply share the
|
||||||
|
slides folder (defaults to `./slides`). Then, Manim Slides will be able to read
|
||||||
|
the animations from this folder and its subdirectories.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Make sure that the slides directory is in the current
|
||||||
|
# working directory, or specify with `--folder <FOLDER>`
|
||||||
|
manim-slides present BasicExample
|
||||||
|
```
|
||||||
|
|
||||||
|
and the corresponding tree:
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
└── slides
|
||||||
|
├── BasicExample.json
|
||||||
|
└── files
|
||||||
|
└── BasicExample (files not shown)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Without Manim Slides installed on the target machine
|
||||||
|
|
||||||
|
An alternative to `manim-slides present` is `manim-slides convert`.
|
||||||
|
Currently, only HTML conversion is available, but do not hesitate to propose
|
||||||
|
other formats by creating a
|
||||||
|
[Feature Request](https://github.com/jeertmans/manim-slides/issues/new/choose),
|
||||||
|
or directly proposing a
|
||||||
|
[Pull Request](https://github.com/jeertmans/manim-slides/compare).
|
||||||
|
|
||||||
|
A major advantage of HTML files is that they can be opened cross-platform,
|
||||||
|
granted one has a modern web browser (which is pretty standard).
|
||||||
|
|
||||||
|
### Sharing HTML and animation files
|
||||||
|
|
||||||
|
First, you need to create the HTML file and its assets directory.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
manim-slides convert BasicExample basic_example.html
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, you need to copy the HTML files and its assets directory to target location,
|
||||||
|
while keeping the relative path between the HTML and the assets the same. The
|
||||||
|
easiest solution is to compress both the file and the directory into one ZIP,
|
||||||
|
and to extract it to the desired location.
|
||||||
|
|
||||||
|
By default, the assets directory will be named after the main HTML file, using `{basename}_assets`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── basic_example_assets
|
||||||
|
│ ├── 1413466013_2261824125_223132457.mp4
|
||||||
|
│ ├── 1672018281_2145352439_3942561600.mp4
|
||||||
|
│ └── 1672018281_3136302242_2191168284.mp4
|
||||||
|
└── basic_example.html
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, you can simply open the HTML file with any web browser application.
|
||||||
|
|
||||||
|
### Sharing ONE HTML file
|
||||||
|
|
||||||
|
A future feature, that will be available once
|
||||||
|
[#122](https://github.com/jeertmans/manim-slides/issues/122) is solved, will be
|
||||||
|
to include all animations as data URI encoded, within the HTML file itself.
|
||||||
|
|
||||||
|
### Over the internet
|
||||||
|
|
||||||
|
Finally, HTML conversion makes it convenient to play your presentation on a
|
||||||
|
remote server.
|
||||||
|
|
||||||
|
This is how your are able to watch all the examples on this website. If you want
|
||||||
|
to know how to share your slide with GitHub pages, see the
|
||||||
|
[workflow file](https://github.com/jeertmans/manim-slides/blob/main/.github/workflows/pages.yml).
|
||||||
|
|
||||||
|
> **WARNING:** keep in minde that playing large video files over the internet
|
||||||
|
can take some time, and *glitches* may occur between slide transitions for this
|
||||||
|
reason.
|
@ -300,7 +300,6 @@ if not MANIMGL:
|
|||||||
self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
|
self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
|
||||||
self.end_loop()
|
self.end_loop()
|
||||||
|
|
||||||
# Each slide MUST end with an animation (a self.wait is considered an animation)
|
|
||||||
self.play(dot.animate.move_to(ORIGIN))
|
self.play(dot.animate.move_to(ORIGIN))
|
||||||
|
|
||||||
# [manim-3d]
|
# [manim-3d]
|
||||||
@ -349,7 +348,6 @@ else:
|
|||||||
self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
|
self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)
|
||||||
self.end_loop()
|
self.end_loop()
|
||||||
|
|
||||||
# Each slide MUST end with an animation (a self.wait is considered an animation)
|
|
||||||
self.play(dot.animate.move_to(ORIGIN))
|
self.play(dot.animate.move_to(ORIGIN))
|
||||||
|
|
||||||
# [manimgl-3d]
|
# [manimgl-3d]
|
||||||
|
Reference in New Issue
Block a user