Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jeertmans/manim-slides
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v4.1.0
Choose a base ref
...
head repository: jeertmans/manim-slides
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 16,729 additions and 2,302 deletions.
  1. +3 −0 .github/FUNDING.yml
  2. +177 −0 .github/ISSUE_TEMPLATE/bug.yml
  3. +63 −0 .github/ISSUE_TEMPLATE/documentation.yml
  4. +46 −0 .github/ISSUE_TEMPLATE/feature_request.yml
  5. +13 −0 .github/dependabot.yml
  6. +28 −0 .github/pull_request_template.md
  7. +27 −0 .github/scripts/check_github_issues.py
  8. +34 −0 .github/workflows/clearcache.yml
  9. +9 −9 .github/workflows/codeql-analysis.yml
  10. +33 −0 .github/workflows/draft-pdf.yml
  11. +5 −5 .github/workflows/languagetool.yml
  12. +13 −0 .github/workflows/latest_tag.yml
  13. +0 −50 .github/workflows/pages.yml
  14. +72 −0 .github/workflows/publish.yml
  15. +0 −55 .github/workflows/python-publish.yml
  16. +0 −100 .github/workflows/test_examples.yml
  17. +119 −0 .github/workflows/tests.yml
  18. +36 −7 .gitignore
  19. +8 −0 .mdlc.json
  20. +46 −24 .pre-commit-config.yaml
  21. +1 −0 .python-version
  22. +18 −0 .readthedocs.yaml
  23. +552 −0 CHANGELOG.md
  24. +45 −0 CITATION.cff
  25. +21 −674 LICENSE.md
  26. +161 −113 README.md
  27. +2 −0 custom_config.yml
  28. +55 −0 docker/Dockerfile
  29. +15 −0 docker/README.md
  30. +10 −0 docker/texlive-profile.txt
  31. +1 −0 docs/source/_static/favicon.png
  32. +1 −0 docs/source/_static/logo.png
  33. +1 −0 docs/source/_static/logo_dark_docs.png
  34. +1 −0 docs/source/_static/logo_dark_github.png
  35. +1 −0 docs/source/_static/logo_dark_transparent.png
  36. +1 −0 docs/source/_static/logo_light_transparent.png
  37. +101 −0 docs/source/_static/template.diff
  38. +397 −0 docs/source/_static/template.html
  39. +1 −0 docs/source/_static/wizard_dark.png
  40. +1 −0 docs/source/_static/wizard_light.png
  41. +6 −0 docs/source/changelog.md
  42. +77 −8 docs/source/conf.py
  43. +46 −0 docs/source/contributing/index.md
  44. +11 −0 docs/source/contributing/internals.md
  45. +100 −0 docs/source/contributing/workflow.md
  46. +2 −0 docs/source/docutils.conf
  47. +124 −0 docs/source/faq.md
  48. +31 −0 docs/source/features_table.md
  49. +132 −0 docs/source/gallery.md
  50. +57 −0 docs/source/index.md
  51. +0 −11 docs/source/index.rst
  52. +173 −0 docs/source/installation.md
  53. +5 −0 docs/source/license.md
  54. +70 −0 docs/source/manim_or_manimgl.md
  55. +35 −0 docs/source/quickstart.md
  56. +42 −0 docs/source/reference/api.md
  57. +37 −0 docs/source/reference/cli.md
  58. +71 −0 docs/source/reference/customize_html.md
  59. +172 −0 docs/source/reference/examples.md
  60. +72 −0 docs/source/reference/gui.md
  61. +40 −0 docs/source/reference/html.md
  62. +38 −0 docs/source/reference/index.md
  63. +6 −0 docs/source/reference/ipython_magic.md
  64. +100 −0 docs/source/reference/magic_example.ipynb
  65. +201 −0 docs/source/reference/sharing.md
  66. +6 −0 docs/source/reference/sphinx_extension.md
  67. +231 −47 example.py
  68. +6 −0 manim-slides.qrc
  69. +60 −1 manim_slides/__init__.py
  70. +75 −0 manim_slides/__main__.py
  71. +1 −1 manim_slides/__version__.py
  72. +37 −0 manim_slides/checkhealth.py
  73. +69 −9 manim_slides/commons.py
  74. +285 −82 manim_slides/config.py
  75. +1,041 −0 manim_slides/convert.py
  76. +3 −13 manim_slides/defaults.py
  77. 0 manim_slides/docs/__init__.py
  78. +548 −0 manim_slides/docs/manim_slides_directive.py
  79. +278 −0 manim_slides/ipython/ipython_magic.py
  80. +52 −0 manim_slides/logger.py
  81. +0 −27 manim_slides/main.py
  82. +0 −66 manim_slides/manim.py
  83. +0 −636 manim_slides/present.py
  84. +365 −0 manim_slides/present/__init__.py
  85. +599 −0 manim_slides/present/player.py
  86. +14 −0 manim_slides/qt_utils.py
  87. +54 −0 manim_slides/render.py
  88. +171 −0 manim_slides/resources.py
  89. +0 −211 manim_slides/slide.py
  90. +63 −0 manim_slides/slide/__init__.py
  91. +162 −0 manim_slides/slide/animation.py
  92. +755 −0 manim_slides/slide/base.py
  93. +227 −0 manim_slides/slide/manim.py
  94. +73 −0 manim_slides/slide/manimlib.py
  95. 0 manim_slides/templates/__init__.py
  96. +334 −0 manim_slides/templates/revealjs.html
  97. +197 −0 manim_slides/utils.py
  98. +0 −96 manim_slides/wizard.py
  99. +85 −0 manim_slides/wizard/__init__.py
  100. +121 −0 manim_slides/wizard/wizard.py
  101. BIN paper/docs.png
  102. +53 −0 paper/paper.bib
  103. +174 −0 paper/paper.md
  104. +236 −2 pyproject.toml
  105. +0 −53 setup.py
  106. BIN static/docs.png
  107. BIN static/example.gif
  108. BIN static/favicon.png
  109. BIN static/icon.png
  110. BIN static/logo.png
  111. +41 −2 static/logo.py
  112. BIN static/logo_dark_docs.png
  113. BIN static/logo_dark_github.png
  114. BIN static/logo_dark_transparent.png
  115. BIN static/logo_light_transparent.png
  116. +5 −0 static/make_favicon.sh
  117. +21 −0 static/make_logo.sh
  118. BIN static/windows_quality_fix.png
  119. BIN static/wizard_dark.png
  120. BIN static/wizard_light.png
  121. +90 −0 tests/conftest.py
  122. +49 −0 tests/data/slides.py
  123. +29 −0 tests/data/slides/BasicSlide.json
  124. BIN ...data/slides/files/BasicSlide/28bf32c4df2711b07b765a647667059683133b3c45291f34692be0c845f75511.mp4
  125. BIN ...es/files/BasicSlide/28bf32c4df2711b07b765a647667059683133b3c45291f34692be0c845f75511_reversed.mp4
  126. BIN ...data/slides/files/BasicSlide/5060f74bee3cb2e40a399a023e0120b3f91d348a9867c7f401db54ea337de97c.mp4
  127. BIN ...es/files/BasicSlide/5060f74bee3cb2e40a399a023e0120b3f91d348a9867c7f401db54ea337de97c_reversed.mp4
  128. BIN ...data/slides/files/BasicSlide/7a5de547a0b5de2230ff3451dd680425cf0a7ea065b31e8f92b5e93527694077.mp4
  129. BIN ...es/files/BasicSlide/7a5de547a0b5de2230ff3451dd680425cf0a7ea065b31e8f92b5e93527694077_reversed.mp4
  130. BIN ...data/slides/files/BasicSlide/c7d0d9ccbf764d32bf316451f2d00607b8f12893e64afe215041a8aedceeb368.mp4
  131. BIN ...es/files/BasicSlide/c7d0d9ccbf764d32bf316451f2d00607b8f12893e64afe215041a8aedceeb368_reversed.mp4
  132. BIN tests/data/video.mp4
  133. +1 −0 tests/data/video_data_uri.txt
  134. +114 −0 tests/test_base_slide.py
  135. +73 −0 tests/test_checkhealth.py
  136. +142 −0 tests/test_commons.py
  137. +32 −0 tests/test_config.py
  138. +330 −0 tests/test_convert.py
  139. +11 −0 tests/test_defaults.py
  140. +147 −0 tests/test_main.py
  141. +115 −0 tests/test_manim.py
  142. +1 −0 tests/test_player.py
  143. +141 −0 tests/test_present.py
  144. +14 −0 tests/test_qt_utils.py
  145. +705 −0 tests/test_slide.py
  146. +22 −0 tests/test_utils.py
  147. +182 −0 tests/test_wizard.py
  148. +4,323 −0 uv.lock
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: [jeertmans]
177 changes: 177 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
name: Bug
description: Report an issue to help improve the project.
title: '[BUG] <short-description-here>'
labels: [bug]

body:
- type: markdown
id: preamble
attributes:
value: |
**Thank you for reporting a problem about Manim Slides!**
If you know how to solve your problem, feel free to submit a PR too!
> [!WARNING]
> Before reporting your bug, please make sure to:
>
> 1. create and activate virtual environment (venv);
> 2. install `manim-slides` and the necessary dependencies;
> 3. and reduce your Python to a minimal working example (MWE).
>
> You can skip the last step if your issue occurs during installation.
- type: checkboxes
id: terms
attributes:
label: Terms
description: 'By submitting this issue, I have:'
options:
- label: Checked the [existing issues](https://github.com/jeertmans/manim-slides/issues?q=is%3Aissue+label%3Abug+) and [discussions](https://github.com/jeertmans/manim-slides/discussions) to see if my issue had not already been reported;
required: true
- label: Checked the [frequently asked questions](https://manim-slides.eertmans.be/latest/faq.html);
required: true
- label: Read the [installation instructions](https://manim-slides.eertmans.be/latest/installation.html);
required: true
- label: Created a virtual environment in which I can reproduce my bug;

- type: textarea
id: description
attributes:
label: Describe the issue
description: A description of the issue, also include what you tried and what didn't work.
validations:
required: true

- type: input
id: command
attributes:
label: Command
description: |
Enter the command that failed.
This will be automatically formatted into code, so no need for backticks.
placeholder: manim-slides render mwe.py MWE
validations:
required: true

- type: dropdown
id: issue-type
attributes:
label: Issue Type
description: >
Please select the option in the drop-down.
options:
- Installation issue
- Visual bug when presenting (`manim-slides present`)
- Bug when presenting with HTML/PowerPoint/... format (`manim-slides convert`)
- Other
validations:
required: true

- type: input
id: py-version
attributes:
label: Python version
description: |
Please copy and paste the output of `python --version`.
Make sure to activate your virtual environment first (if any).
placeholder: Python 3.11.8
validations:
required: true

- type: textarea
id: venv
attributes:
label: Python environment
description: |
Please copy and paste the output of `manim-slides checkhealth`.
Make sure to activate your virtual environment first (if any).
This will be automatically formatted into code, so no need for backticks.
If Manim Slides installation failed, enter 'N/A' instead.
render: shell
validations:
required: true

- type: dropdown
id: platform
attributes:
label: What is your platform?
multiple: true
options:
- Linux
- macOS
- Windows
- Other (please precise below)
validations:
required: true

- type: input
id: platform-other
attributes:
label: Other platform
description: Please answer if you have replied *Other* above.
validations:
required: false

- type: textarea
id: code
attributes:
label: Manim Slides Python code
description: |
Please copy and paste a minimal working example (MWE) of your Python code that can reproduce your bug.
This will be automatically formatted into code, so no need for backticks.
placeholder: |
from manim import *
from manim_slides import Slide
class MWE(Slide):
def construct(self):
circle = Circle(radius=2, color=RED)
dot = Dot()
self.play(GrowFromCenter(circle))
self.next_slide(loop=True)
self.play(MoveAlongPath(dot, circle), run_time=0.5)
self.next_slide()
self.play(dot.animate.move_to(ORIGIN))
render: python
validations:
required: false

- type: textarea
id: logs
attributes:
label: Relevant log output
description: |
Please copy and paste any relevant log output.
This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: false

- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Please add screenshots if applicable.
validations:
required: false

- type: textarea
id: extra-info
attributes:
label: Additional information
description: Is there anything else we should know about this bug?
validations:
required: false

- type: textarea
id: suggested-fix
attributes:
label: Recommended fix or suggestions
description: A clear and concise description of how you want to update it.
validations:
required: false
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Documentation
description: Ask / Report an issue related to the documentation.
title: '[DOC] <short-description-here>'
labels: [documentation]

body:
- type: markdown
id: preamble
attributes:
value: |
**Thank you for reporting a problem about Manim Slides' documentation!**
If you know how to solve your problem, feel free to submit a PR too!
- type: checkboxes
id: terms
attributes:
label: Terms
description: 'By submitting this issue, I have:'
options:
- label: Checked the [existing issues](https://github.com/jeertmans/manim-slides/issues?q=is%3Aissue+label%3Adocumentation+) and [discussions](https://github.com/jeertmans/manim-slides/discussions) to see if my issue had not already been reported;
required: true

- type: textarea
id: description
attributes:
label: Describe the issue
description: A clear and concise description of the issue you encountered.
validations:
required: true

- type: textarea
id: pages
attributes:
label: Affected page(s)
description: Link to page(s) with the problem.
placeholder: |
+ https://manim-slides.eertmans.be/latest/installation.html
+ https://manim-slides.eertmans.be/latest/features_table.html
validations:
required: true

- type: dropdown
id: issue-type
attributes:
label: Issue type
description: >
Please select the option in the drop-down.
options:
- Typo, spelling mistake, broken link, etc.
- Something is missing
- Documentation enhancement
- Other
validations:
required: true

- type: textarea
id: suggested-fix
attributes:
label: Recommended fix or suggestions
description: A clear and concise description of how you want to update it.
validations:
required: false
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Feature request
description: Have a new idea/feature? Please suggest!
title: '[FEATURE] <short-description-here>'
labels: [enhancement]

body:
- type: markdown
id: preamble
attributes:
value: |
**Thank you for suggesting a new feature!**
If you know how to implement it, feel free to submit a PR too!
- type: checkboxes
id: terms
attributes:
label: Terms
description: 'By submitting this issue, I have:'
options:
- label: Checked the [existing issues](https://github.com/jeertmans/manim-slides/issues?q=is%3Aissue+label%3Aenhancement+) and [discussions](https://github.com/jeertmans/manim-slides/discussions) to see if my issue had not already been reported;
required: true

- type: textarea
id: description
attributes:
label: Description
description: A brief description of the enhancement you propose, also include what you tried and what worked.
validations:
required: true

- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Please add screenshots if applicable
validations:
required: false

- type: textarea
id: extrainfo
attributes:
label: Additional information
description: Is there anything else we should know about this idea?
validations:
required: false
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: daily
labels:
- dependencies
28 changes: 28 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!-- If your PR fixes an open issue, use `Closes #999` to link your PR with the issue. #999 stands for the issue number you are fixing -->

## Fixes Issue

<!-- Remove this section if not applicable -->

<!-- Example: Closes #31 -->

## Description

<!-- Describe all the proposed changes in your PR -->

## Check List

Check all the applicable boxes:

- [ ] I understand that my contributions needs to pass the checks;
- [ ] If I created new functions / methods, I documented them and add type hints;
- [ ] If I modified already existing code, I updated the documentation accordingly;
- [ ] The title of my pull request is a short description of the requested changes.

## Screenshots

<!-- Add all the screenshots which support your changes -->

## Note to reviewers

<!-- Add notes to reviewers if applicable -->
27 changes: 27 additions & 0 deletions .github/scripts/check_github_issues.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
"""Check that GitHub issues (and PR) links match the number in Markdown link."""

import glob
import re
import sys

if __name__ == "__main__":
p = re.compile(
r"\[#(?P<number1>[0-9]+)\]"
r"\(https://github\.com/"
r"(?:[a-zA-Z0-9_-]+)/(?:[a-zA-Z0-9_-]+)/"
r"(?:(?:issues)|(?:pull))/(?P<number2>[0-9]+)\)"
)

ret_code = 0

for glob_pattern in sys.argv[1:]:
for file in glob.glob(glob_pattern, recursive=True):
with open(file) as f:
for i, line in enumerate(f):
for m in p.finditer(line):
if m.group("number1") != m.group("number2"):
start, end = m.span()
print(f"{file}:{i}: ", line[start:end], file=sys.stderr) # noqa: T201
ret_code = 1

sys.exit(ret_code)
34 changes: 34 additions & 0 deletions .github/workflows/clearcache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# From: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries
name: Cleanup caches by a branch
on:
pull_request:
types:
- closed

jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Cleanup
run: |
gh extension install actions/gh-actions-cache
REPO=${{ github.repository }}
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading