mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-23 21:46:49 +08:00
Fix flake8 check errors: unused imports, tab warning (#68)
* 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>
This commit is contained in:
19
.github/workflows/test_examples.yml
vendored
19
.github/workflows/test_examples.yml
vendored
@ -13,6 +13,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
build-examples:
|
build-examples:
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
manim: [manim, manimgl]
|
manim: [manim, manimgl]
|
||||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||||
@ -27,7 +28,10 @@ jobs:
|
|||||||
# https://github.com/3b1b/manim/issues/1808
|
# https://github.com/3b1b/manim/issues/1808
|
||||||
- manim: manimgl
|
- manim: manimgl
|
||||||
pyversion: '3.7'
|
pyversion: '3.7'
|
||||||
# We only test Python 3.10 on Windows and MacOS
|
# manimgl seems to have problems with Python 3.11
|
||||||
|
- manim: manimgl
|
||||||
|
pyversion: '3.11'
|
||||||
|
# We only test Python 3.11 on Windows and MacOS
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
pyversion: '3.7'
|
pyversion: '3.7'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
@ -36,6 +40,7 @@ jobs:
|
|||||||
pyversion: '3.9'
|
pyversion: '3.9'
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
pyversion: '3.10'
|
pyversion: '3.10'
|
||||||
|
manim: manim
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
pyversion: '3.7'
|
pyversion: '3.7'
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
@ -44,6 +49,7 @@ jobs:
|
|||||||
pyversion: '3.9'
|
pyversion: '3.9'
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
pyversion: '3.10'
|
pyversion: '3.10'
|
||||||
|
manim: manim
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@ -96,13 +102,16 @@ jobs:
|
|||||||
run: python -m manim -ql example.py Example ThreeDExample ConvertExample
|
run: python -m manim -ql example.py Example ThreeDExample ConvertExample
|
||||||
- name: Build slides with manimgl on Ubuntu
|
- name: Build slides with manimgl on Ubuntu
|
||||||
if: matrix.manim == 'manimgl' && matrix.os == 'ubuntu-latest'
|
if: matrix.manim == 'manimgl' && matrix.os == 'ubuntu-latest'
|
||||||
run: xvfb-run -a -s "-screen 0 1400x900x24" manim-render -l example.py Example ThreeDExample ConvertExample
|
run: xvfb-run -a -s "-screen 0 1400x900x24" manim-render -l example.py Example ThreeDExample
|
||||||
- name: Build slides with manimgl on MacOS or Windows
|
- name: Build slides with manimgl on MacOS or Windows
|
||||||
if: matrix.manim == 'manimgl' && (matrix.os == 'macos-latest' || matrix.os == 'windows-latest')
|
if: matrix.manim == 'manimgl' && (matrix.os == 'macos-latest' || matrix.os == 'windows-latest')
|
||||||
run: manimgl -l example.py Example ThreeDExample ConvertExample
|
run: manimgl -l example.py Example ThreeDExample
|
||||||
- name: Test slides on Ubuntu
|
- name: Test slides on Ubuntu
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
run: xvfb-run -a -s "-screen 0 1400x900x24" manim-slides Example ThreeDExample ConvertExample --skip-all
|
run: xvfb-run -a -s "-screen 0 1400x900x24" manim-slides Example ThreeDExample --skip-all
|
||||||
- name: Test slides on MacOS or Windows
|
- name: Test slides on MacOS or Windows
|
||||||
if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest'
|
if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest'
|
||||||
run: manim-slides Example ThreeDExample ConvertExample --skip-all
|
run: manim-slides Example ThreeDExample --skip-all
|
||||||
|
- name: Test convert on Ubuntu
|
||||||
|
if: matrix.os == 'ubuntu-latest' && matrix.manim == 'manim'
|
||||||
|
run: manim-slides convert --to=html ConvertExample index.html
|
||||||
|
@ -43,6 +43,8 @@ class Example(Slide):
|
|||||||
|
|
||||||
|
|
||||||
class ConvertExample(Slide):
|
class ConvertExample(Slide):
|
||||||
|
"""WARNING: this example does not seem to work with ManimGL."""
|
||||||
|
|
||||||
def tinywait(self):
|
def tinywait(self):
|
||||||
self.wait(0.1)
|
self.wait(0.1)
|
||||||
|
|
||||||
|
@ -4,12 +4,12 @@ from enum import Enum
|
|||||||
from typing import Any, Callable, Dict, Generator, List, Type
|
from typing import Any, Callable, Dict, Generator, List, Type
|
||||||
|
|
||||||
import click
|
import click
|
||||||
|
import pkg_resources
|
||||||
from click import Context, Parameter
|
from click import Context, Parameter
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from .commons import folder_path_option, verbosity_option
|
from .commons import folder_path_option, verbosity_option
|
||||||
from .config import PresentationConfig
|
from .config import PresentationConfig
|
||||||
from .defaults import REVEALJS_TEMPLATE
|
|
||||||
from .present import get_scenes_presentation_config
|
from .present import get_scenes_presentation_config
|
||||||
|
|
||||||
|
|
||||||
@ -99,7 +99,14 @@ class RevealJS(Converter):
|
|||||||
else:
|
else:
|
||||||
yield f'<section data-background-video="{file}"></section>'
|
yield f'<section data-background-video="{file}"></section>'
|
||||||
|
|
||||||
|
def load_template(self) -> str:
|
||||||
|
"""Returns the RevealJS HTML template as a string."""
|
||||||
|
return pkg_resources.resource_string(
|
||||||
|
__name__, "data/revealjs_template.html"
|
||||||
|
).decode()
|
||||||
|
|
||||||
def convert_to(self, dest: str):
|
def convert_to(self, dest: str):
|
||||||
|
"""Converts this configuration into a RevealJS HTML presentation, saved to DEST."""
|
||||||
dirname = os.path.dirname(dest)
|
dirname = os.path.dirname(dest)
|
||||||
basename, ext = os.path.splitext(os.path.basename(dest))
|
basename, ext = os.path.splitext(os.path.basename(dest))
|
||||||
|
|
||||||
@ -117,7 +124,8 @@ class RevealJS(Converter):
|
|||||||
|
|
||||||
sections = "".join(self.get_sections_iter())
|
sections = "".join(self.get_sections_iter())
|
||||||
|
|
||||||
content = REVEALJS_TEMPLATE.format(sections=sections, **self.dict())
|
revealjs_template = self.load_template()
|
||||||
|
content = revealjs_template.format(sections=sections, **self.dict())
|
||||||
|
|
||||||
f.write(content)
|
f.write(content)
|
||||||
|
|
||||||
|
185
manim_slides/data/revealjs_template.html
Normal file
185
manim_slides/data/revealjs_template.html
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||||
|
|
||||||
|
<title>{title}</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/reveal.css">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/theme/{reveal_theme}.css">
|
||||||
|
|
||||||
|
<!-- Theme used for syntax highlighting of code -->
|
||||||
|
<!-- <link rel="stylesheet" href="lib/css/zenburn.css"> -->
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/zenburn.min.css">
|
||||||
|
|
||||||
|
<!-- Printing and PDF exports -->
|
||||||
|
<script>
|
||||||
|
var link = document.createElement('link');
|
||||||
|
link.rel = 'stylesheet';
|
||||||
|
link.type = 'text/css';
|
||||||
|
link.href = window.location.search.match(/print-pdf/gi) ? 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/print/pdf.css' : 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/print/paper.css';
|
||||||
|
document.getElementsByTagName('head')[0].appendChild(link);
|
||||||
|
</script>
|
||||||
|
<!-- <link rel="stylesheet" href="index.css"> -->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="reveal">
|
||||||
|
<div class="slides">
|
||||||
|
{sections}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--<script src="lib/js/head.min.js"></script>-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/headjs@1.0.3/dist/1.0.0/head.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/js/reveal.min.js"></script>
|
||||||
|
|
||||||
|
<!-- <script src="index.js"></script> -->
|
||||||
|
<script>
|
||||||
|
// More info about config & dependencies:
|
||||||
|
// - https://github.com/hakimel/reveal.js#configuration
|
||||||
|
// - https://github.com/hakimel/reveal.js#dependencies
|
||||||
|
Reveal.initialize({{
|
||||||
|
// Display controls in the bottom right corner
|
||||||
|
controls: {controls},
|
||||||
|
|
||||||
|
width: '{width}',
|
||||||
|
height: '{height}',
|
||||||
|
|
||||||
|
// Display a presentation progress bar
|
||||||
|
progress: {progress},
|
||||||
|
|
||||||
|
// Set default timing of 2 minutes per slide
|
||||||
|
defaultTiming: 120,
|
||||||
|
|
||||||
|
// Display the page number of the current slide
|
||||||
|
slideNumber: true,
|
||||||
|
|
||||||
|
// Push each slide change to the browser history
|
||||||
|
history: false,
|
||||||
|
|
||||||
|
// Enable keyboard shortcuts for navigation
|
||||||
|
keyboard: true,
|
||||||
|
|
||||||
|
// Enable the slide overview mode
|
||||||
|
overview: true,
|
||||||
|
|
||||||
|
// Vertical centering of slides
|
||||||
|
center: true,
|
||||||
|
|
||||||
|
// Enables touch navigation on devices with touch input
|
||||||
|
touch: true,
|
||||||
|
|
||||||
|
// Loop the presentation
|
||||||
|
loop: {loop},
|
||||||
|
|
||||||
|
// Change the presentation direction to be RTL
|
||||||
|
rtl: false,
|
||||||
|
|
||||||
|
// Randomizes the order of slides each time the presentation loads
|
||||||
|
shuffle: {shuffle},
|
||||||
|
|
||||||
|
// Turns fragments on and off globally
|
||||||
|
fragments: {fragments},
|
||||||
|
|
||||||
|
// Flags if the presentation is running in an embedded mode,
|
||||||
|
// i.e. contained within a limited portion of the screen
|
||||||
|
embedded: {embedded},
|
||||||
|
|
||||||
|
// Flags if we should show a help overlay when the questionmark
|
||||||
|
// key is pressed
|
||||||
|
help: true,
|
||||||
|
|
||||||
|
// Flags if speaker notes should be visible to all viewers
|
||||||
|
showNotes: false,
|
||||||
|
|
||||||
|
// Global override for autolaying embedded media (video/audio/iframe)
|
||||||
|
// - null: Media will only autoplay if data-autoplay is present
|
||||||
|
// - true: All media will autoplay, regardless of individual setting
|
||||||
|
// - false: No media will autoplay, regardless of individual setting
|
||||||
|
autoPlayMedia: null,
|
||||||
|
|
||||||
|
// Number of milliseconds between automatically proceeding to the
|
||||||
|
// next slide, disabled when set to 0, this value can be overwritten
|
||||||
|
// by using a data-autoslide attribute on your slides
|
||||||
|
autoSlide: 0,
|
||||||
|
|
||||||
|
// Stop auto-sliding after user input
|
||||||
|
autoSlideStoppable: true,
|
||||||
|
|
||||||
|
// Use this method for navigation when auto-sliding
|
||||||
|
autoSlideMethod: Reveal.navigateNext,
|
||||||
|
|
||||||
|
// Enable slide navigation via mouse wheel
|
||||||
|
mouseWheel: false,
|
||||||
|
|
||||||
|
// Hides the address bar on mobile devices
|
||||||
|
hideAddressBar: true,
|
||||||
|
|
||||||
|
// Opens links in an iframe preview overlay
|
||||||
|
previewLinks: true,
|
||||||
|
|
||||||
|
// Transition style
|
||||||
|
transition: 'none', // none/fade/slide/convex/concave/zoom
|
||||||
|
|
||||||
|
// Transition speed
|
||||||
|
transitionSpeed: 'default', // default/fast/slow
|
||||||
|
|
||||||
|
// Transition style for full page slide backgrounds
|
||||||
|
backgroundTransition: 'none', // none/fade/slide/convex/concave/zoom
|
||||||
|
|
||||||
|
// Number of slides away from the current that are visible
|
||||||
|
viewDistance: 3,
|
||||||
|
|
||||||
|
// Parallax background image
|
||||||
|
parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'"
|
||||||
|
|
||||||
|
// Parallax background size
|
||||||
|
parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px"
|
||||||
|
|
||||||
|
// Number of pixels to move the parallax background per slide
|
||||||
|
// - Calculated automatically unless specified
|
||||||
|
// - Set to 0 to disable movement along an axis
|
||||||
|
parallaxBackgroundHorizontal: null,
|
||||||
|
parallaxBackgroundVertical: null,
|
||||||
|
|
||||||
|
|
||||||
|
// The display mode that will be used to show slides
|
||||||
|
display: 'block',
|
||||||
|
|
||||||
|
/*
|
||||||
|
multiplex: {{
|
||||||
|
// Example values. To generate your own, see the socket.io server instructions.
|
||||||
|
secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
|
||||||
|
id: '1ea875674b17ca76', // Obtained from socket.io server
|
||||||
|
url: 'https://reveal-js-multiplex-ccjbegmaii.now.sh' // Location of socket.io server
|
||||||
|
}},
|
||||||
|
*/
|
||||||
|
|
||||||
|
dependencies: [
|
||||||
|
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/markdown/marked.js' }},
|
||||||
|
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/markdown/markdown.js' }},
|
||||||
|
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/notes/notes.js', async: true }},
|
||||||
|
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/highlight/highlight.js', async: true, callback: function () {{ hljs.initHighlightingOnLoad(); }} }},
|
||||||
|
//{{ src: '//cdn.socket.io/socket.io-1.3.5.js', async: true }},
|
||||||
|
//{{ src: 'plugin/multiplex/master.js', async: true }},
|
||||||
|
// and if you want speaker notes
|
||||||
|
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/notes-server/client.js', async: true }}
|
||||||
|
|
||||||
|
],
|
||||||
|
markdown: {{
|
||||||
|
// renderer: myrenderer,
|
||||||
|
smartypants: true
|
||||||
|
}}
|
||||||
|
}});
|
||||||
|
Reveal.configure({{
|
||||||
|
// PDF Configurations
|
||||||
|
pdfMaxPagesPerSlide: 1
|
||||||
|
|
||||||
|
}});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -1,190 +1,2 @@
|
|||||||
FOLDER_PATH: str = "./slides"
|
FOLDER_PATH: str = "./slides"
|
||||||
CONFIG_PATH: str = ".manim-slides.json"
|
CONFIG_PATH: str = ".manim-slides.json"
|
||||||
|
|
||||||
REVEALJS_TEMPLATE: str = """
|
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
||||||
|
|
||||||
<title>{title}</title>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/reveal.css">
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/theme/{reveal_theme}.css">
|
|
||||||
|
|
||||||
<!-- Theme used for syntax highlighting of code -->
|
|
||||||
<!-- <link rel="stylesheet" href="lib/css/zenburn.css"> -->
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/zenburn.min.css">
|
|
||||||
|
|
||||||
<!-- Printing and PDF exports -->
|
|
||||||
<script>
|
|
||||||
var link = document.createElement('link');
|
|
||||||
link.rel = 'stylesheet';
|
|
||||||
link.type = 'text/css';
|
|
||||||
link.href = window.location.search.match(/print-pdf/gi) ? 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/print/pdf.css' : 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/css/print/paper.css';
|
|
||||||
document.getElementsByTagName('head')[0].appendChild(link);
|
|
||||||
</script>
|
|
||||||
<!-- <link rel="stylesheet" href="index.css"> -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="reveal">
|
|
||||||
<div class="slides">
|
|
||||||
{sections}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--<script src="lib/js/head.min.js"></script>-->
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/headjs@1.0.3/dist/1.0.0/head.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/js/reveal.min.js"></script>
|
|
||||||
|
|
||||||
<!-- <script src="index.js"></script> -->
|
|
||||||
<script>
|
|
||||||
// More info about config & dependencies:
|
|
||||||
// - https://github.com/hakimel/reveal.js#configuration
|
|
||||||
// - https://github.com/hakimel/reveal.js#dependencies
|
|
||||||
Reveal.initialize({{
|
|
||||||
// Display controls in the bottom right corner
|
|
||||||
controls: {controls},
|
|
||||||
|
|
||||||
width: '{width}',
|
|
||||||
height: '{height}',
|
|
||||||
|
|
||||||
// Display a presentation progress bar
|
|
||||||
progress: {progress},
|
|
||||||
|
|
||||||
// Set default timing of 2 minutes per slide
|
|
||||||
defaultTiming: 120,
|
|
||||||
|
|
||||||
// Display the page number of the current slide
|
|
||||||
slideNumber: true,
|
|
||||||
|
|
||||||
// Push each slide change to the browser history
|
|
||||||
history: false,
|
|
||||||
|
|
||||||
// Enable keyboard shortcuts for navigation
|
|
||||||
keyboard: true,
|
|
||||||
|
|
||||||
// Enable the slide overview mode
|
|
||||||
overview: true,
|
|
||||||
|
|
||||||
// Vertical centering of slides
|
|
||||||
center: true,
|
|
||||||
|
|
||||||
// Enables touch navigation on devices with touch input
|
|
||||||
touch: true,
|
|
||||||
|
|
||||||
// Loop the presentation
|
|
||||||
loop: {loop},
|
|
||||||
|
|
||||||
// Change the presentation direction to be RTL
|
|
||||||
rtl: false,
|
|
||||||
|
|
||||||
// Randomizes the order of slides each time the presentation loads
|
|
||||||
shuffle: {shuffle},
|
|
||||||
|
|
||||||
// Turns fragments on and off globally
|
|
||||||
fragments: {fragments},
|
|
||||||
|
|
||||||
// Flags if the presentation is running in an embedded mode,
|
|
||||||
// i.e. contained within a limited portion of the screen
|
|
||||||
embedded: {embedded},
|
|
||||||
|
|
||||||
// Flags if we should show a help overlay when the questionmark
|
|
||||||
// key is pressed
|
|
||||||
help: true,
|
|
||||||
|
|
||||||
// Flags if speaker notes should be visible to all viewers
|
|
||||||
showNotes: false,
|
|
||||||
|
|
||||||
// Global override for autolaying embedded media (video/audio/iframe)
|
|
||||||
// - null: Media will only autoplay if data-autoplay is present
|
|
||||||
// - true: All media will autoplay, regardless of individual setting
|
|
||||||
// - false: No media will autoplay, regardless of individual setting
|
|
||||||
autoPlayMedia: null,
|
|
||||||
|
|
||||||
// Number of milliseconds between automatically proceeding to the
|
|
||||||
// next slide, disabled when set to 0, this value can be overwritten
|
|
||||||
// by using a data-autoslide attribute on your slides
|
|
||||||
autoSlide: 0,
|
|
||||||
|
|
||||||
// Stop auto-sliding after user input
|
|
||||||
autoSlideStoppable: true,
|
|
||||||
|
|
||||||
// Use this method for navigation when auto-sliding
|
|
||||||
autoSlideMethod: Reveal.navigateNext,
|
|
||||||
|
|
||||||
// Enable slide navigation via mouse wheel
|
|
||||||
mouseWheel: false,
|
|
||||||
|
|
||||||
// Hides the address bar on mobile devices
|
|
||||||
hideAddressBar: true,
|
|
||||||
|
|
||||||
// Opens links in an iframe preview overlay
|
|
||||||
previewLinks: true,
|
|
||||||
|
|
||||||
// Transition style
|
|
||||||
transition: 'none', // none/fade/slide/convex/concave/zoom
|
|
||||||
|
|
||||||
// Transition speed
|
|
||||||
transitionSpeed: 'default', // default/fast/slow
|
|
||||||
|
|
||||||
// Transition style for full page slide backgrounds
|
|
||||||
backgroundTransition: 'none', // none/fade/slide/convex/concave/zoom
|
|
||||||
|
|
||||||
// Number of slides away from the current that are visible
|
|
||||||
viewDistance: 3,
|
|
||||||
|
|
||||||
// Parallax background image
|
|
||||||
parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'"
|
|
||||||
|
|
||||||
// Parallax background size
|
|
||||||
parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px"
|
|
||||||
|
|
||||||
// Number of pixels to move the parallax background per slide
|
|
||||||
// - Calculated automatically unless specified
|
|
||||||
// - Set to 0 to disable movement along an axis
|
|
||||||
parallaxBackgroundHorizontal: null,
|
|
||||||
parallaxBackgroundVertical: null,
|
|
||||||
|
|
||||||
|
|
||||||
// The display mode that will be used to show slides
|
|
||||||
display: 'block',
|
|
||||||
|
|
||||||
/*
|
|
||||||
multiplex: {{
|
|
||||||
// Example values. To generate your own, see the socket.io server instructions.
|
|
||||||
secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
|
|
||||||
id: '1ea875674b17ca76', // Obtained from socket.io server
|
|
||||||
url: 'https://reveal-js-multiplex-ccjbegmaii.now.sh' // Location of socket.io server
|
|
||||||
}},
|
|
||||||
*/
|
|
||||||
|
|
||||||
dependencies: [
|
|
||||||
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/markdown/marked.js' }},
|
|
||||||
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/markdown/markdown.js' }},
|
|
||||||
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/notes/notes.js', async: true }},
|
|
||||||
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/highlight/highlight.js', async: true, callback: function () {{ hljs.initHighlightingOnLoad(); }} }},
|
|
||||||
//{{ src: '//cdn.socket.io/socket.io-1.3.5.js', async: true }},
|
|
||||||
//{{ src: 'plugin/multiplex/master.js', async: true }},
|
|
||||||
// and if you want speaker notes
|
|
||||||
{{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@{reveal_version}/plugin/notes-server/client.js', async: true }}
|
|
||||||
|
|
||||||
],
|
|
||||||
markdown: {{
|
|
||||||
// renderer: myrenderer,
|
|
||||||
smartypants: true
|
|
||||||
}}
|
|
||||||
}});
|
|
||||||
Reveal.configure({{
|
|
||||||
// PDF Configurations
|
|
||||||
pdfMaxPagesPerSlide: 1
|
|
||||||
|
|
||||||
}});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
"""
|
|
||||||
|
@ -3,7 +3,7 @@ import platform
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from enum import IntEnum, auto, unique
|
from enum import IntEnum, auto, unique
|
||||||
from typing import Dict, List, Optional, Tuple
|
from typing import List, Optional, Tuple
|
||||||
|
|
||||||
import click
|
import click
|
||||||
import cv2
|
import cv2
|
||||||
@ -16,7 +16,7 @@ from PySide6.QtWidgets import QApplication, QGridLayout, QLabel, QWidget
|
|||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from .commons import config_path_option, verbosity_option
|
from .commons import config_path_option, verbosity_option
|
||||||
from .config import DEFAULT_CONFIG, Config, PresentationConfig, SlideConfig, SlideType
|
from .config import DEFAULT_CONFIG, Config, PresentationConfig, SlideConfig
|
||||||
from .defaults import FOLDER_PATH
|
from .defaults import FOLDER_PATH
|
||||||
from .manim import logger
|
from .manim import logger
|
||||||
from .resources import * # noqa: F401, F403
|
from .resources import * # noqa: F401, F403
|
||||||
|
1
setup.py
1
setup.py
@ -53,4 +53,5 @@ setuptools.setup(
|
|||||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
],
|
],
|
||||||
|
package_data={"": ["data/*"]},
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user