<svg width="60px" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="butt" stroke-linejoin="round" stroke-width="7.071067811865476">
<path d="M22.5 7.5L10 20L20 30L30 20L40 30L27.5 42.5" stroke="teal"/>
<path d="M7.5 27.5L22.5 42.5" stroke="crimson"/>
<path d="M32.5 32.5L20 20L30 10L42.5 22.5" stroke="red"/>
</svg>
# IPySlides
Create interactive slides programatically in [Jupyter](https://jupyter.org/)/[Voila](https://voila.readthedocs.io/en/stable/) with all kind of rich content.
- Launch Example Notebook [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/massgh/ipyslides/HEAD?labpath=demo.ipynb)
- See [PDF-Slides](Slides.pdf)
![Overview](slide.png)
---
# Changelog
You can see upto date documentation via `ipyslides.Slides().docs()`, so no additional changelog is created.
---
# Install
```shell
> pip install ipyslides
> pip install ipyslides[extra]
```
For development install, clone this repository and then
```shell
> cd ipyslides
> pip install -e .
```
---
# How to Use
In Jupyter Notebook:
```python
import ipyslides as isd
slides = isd.Slides()
```
---
# Creating Slides
Please look at two presentations provided with `Slides.docs()`, `Slides.demo()` to see how slides are created. Moreover instruction in settings panel are at your finger tips.
---
# Content Types to Embed
You can embed anything that you can include in Jupyter notebook like ipywidgets, HTML, PDF, Videos etc.,including jupyter notebook itself!
- IPython Display Objects, see `IPython` module.
- Plots and Other Data Types (matplotlib, plotly etc.)
- Jupyter Interactive Widgets (ipywidgets, bqplot ect.)
- Custom and Third Party Objects( which are not implemented in this library)
- You can display with `display` command or library's specific display method.
- You can serialize custom objects to HTML using `Slides.serializer` API.
- You can extend markdown syntax using `Slides.extender` API. See some good extensions to add from [PyMdown](https://facelessuser.github.io/pymdown-extensions/).
---
# HTML/PDF Slides
- Use `slides.export_html` to build static slides that you can print as well.
- Content variety for export is limited. Widgets can not be exported unless an alternative representation is given by `Slides.alt` which also works to provide alternative export representation of any object.
- Any object including widget can be replaced for export using ` Slides.alt ` function which lets you paste a screenshot of that object or it's alternative html representation at runtime or export time.
- Paper width for printing is 10 inch (254mm) and height is determined by aspect ratio of slides.
- Use `Save as PDF` in browser to make links work in ouput PDF.
---
# Speaker Notes
- You can turn on speaker notes with a `Show Notes` check in setting panel. See module `Slides.notes` for details or see examples in `Slides.demo()`.
> Notes is an experimantal feature, so use at your own risk. Avoid if you can.
---
# Caveats!
- Since Markdown is parsed using python (and we do not run notebook from outside e.g. with nbconvert), markdown cells are of no use. A better alternative is linking a markodwn file using `Slides.sync_with_file` and slides auto update when you save your edits. You can still write markdown in code cell with slide magic `%%slide number -m` to add to slides.
- Slide number is necessary to be tracked by user in notebook, because cells are not linked to each other and multiple runs of a cell can lead to adding many slides with same content. To minimize this difficulty, use `-1` in place of a slide number to add numbering automatically in Jupyter Notebook and python file! Other cell code is preserved. You may need to rerun cell if creating slides in a for loop.
---
# Acknowledgements
- Slides application is based on [ipywidgets](https://github.com/jupyter-widgets/ipywidgets).
- Rich display mechanism, and collection of cell output to slides heavily rely on [IPython](https://github.com/ipython/ipython).
- [Python-Markdown](https://python-markdown.github.io/) is extensily used for content and extended where needed.
Raw data
{
"_id": null,
"home_page": "https://github.com/massgh/ipyslides",
"name": "ipyslides",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Jupyter, Widgets, IPython",
"author": "Abdul Saboor",
"author_email": "mass_qau@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/95/d9/3ec9323cbf1eab334170cef7f7bac0952174d604ab0819d52a47f2965296/ipyslides-4.8.7.tar.gz",
"platform": null,
"description": "\r\n<svg width=\"60px\" viewBox=\"0 0 50 50\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"butt\" stroke-linejoin=\"round\" stroke-width=\"7.071067811865476\">\r\n <path d=\"M22.5 7.5L10 20L20 30L30 20L40 30L27.5 42.5\" stroke=\"teal\"/>\r\n <path d=\"M7.5 27.5L22.5 42.5\" stroke=\"crimson\"/>\r\n <path d=\"M32.5 32.5L20 20L30 10L42.5 22.5\" stroke=\"red\"/>\r\n</svg>\r\n\r\n# IPySlides\r\n\r\nCreate interactive slides programatically in [Jupyter](https://jupyter.org/)/[Voila](https://voila.readthedocs.io/en/stable/) with all kind of rich content. \r\n\r\n- Launch Example Notebook [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/massgh/ipyslides/HEAD?labpath=demo.ipynb)\r\n- See [PDF-Slides](Slides.pdf)\r\n![Overview](slide.png)\r\n\r\n---\r\n# Changelog\r\nYou can see upto date documentation via `ipyslides.Slides().docs()`, so no additional changelog is created.\r\n\r\n---\r\n# Install\r\n```shell\r\n> pip install ipyslides\r\n> pip install ipyslides[extra]\r\n```\r\nFor development install, clone this repository and then\r\n```shell\r\n> cd ipyslides\r\n> pip install -e .\r\n```\r\n\r\n---\r\n# How to Use\r\nIn Jupyter Notebook:\r\n```python\r\nimport ipyslides as isd\r\nslides = isd.Slides()\r\n```\r\n---\r\n\r\n# Creating Slides\r\nPlease look at two presentations provided with `Slides.docs()`, `Slides.demo()` to see how slides are created. Moreover instruction in settings panel are at your finger tips.\r\n\r\n\r\n---\r\n# Content Types to Embed\r\nYou can embed anything that you can include in Jupyter notebook like ipywidgets, HTML, PDF, Videos etc.,including jupyter notebook itself! \r\n\r\n- IPython Display Objects, see `IPython` module.\r\n- Plots and Other Data Types (matplotlib, plotly etc.)\r\n- Jupyter Interactive Widgets (ipywidgets, bqplot ect.)\r\n- Custom and Third Party Objects( which are not implemented in this library)\r\n - You can display with `display` command or library's specific display method.\r\n - You can serialize custom objects to HTML using `Slides.serializer` API.\r\n- You can extend markdown syntax using `Slides.extender` API. See some good extensions to add from [PyMdown](https://facelessuser.github.io/pymdown-extensions/).\r\n\r\n\r\n---\r\n# HTML/PDF Slides\r\n- Use `slides.export_html` to build static slides that you can print as well.\r\n- Content variety for export is limited. Widgets can not be exported unless an alternative representation is given by `Slides.alt` which also works to provide alternative export representation of any object.\r\n- Any object including widget can be replaced for export using ` Slides.alt ` function which lets you paste a screenshot of that object or it's alternative html representation at runtime or export time.\r\n- Paper width for printing is 10 inch (254mm) and height is determined by aspect ratio of slides.\r\n- Use `Save as PDF` in browser to make links work in ouput PDF.\r\n\r\n---\r\n# Speaker Notes\r\n- You can turn on speaker notes with a `Show Notes` check in setting panel. See module `Slides.notes` for details or see examples in `Slides.demo()`. \r\n\r\n> Notes is an experimantal feature, so use at your own risk. Avoid if you can.\r\n\r\n---\r\n# Caveats!\r\n- Since Markdown is parsed using python (and we do not run notebook from outside e.g. with nbconvert), markdown cells are of no use. A better alternative is linking a markodwn file using `Slides.sync_with_file` and slides auto update when you save your edits. You can still write markdown in code cell with slide magic `%%slide number -m` to add to slides. \r\n- Slide number is necessary to be tracked by user in notebook, because cells are not linked to each other and multiple runs of a cell can lead to adding many slides with same content. To minimize this difficulty, use `-1` in place of a slide number to add numbering automatically in Jupyter Notebook and python file! Other cell code is preserved. You may need to rerun cell if creating slides in a for loop.\r\n\r\n---\r\n\r\n# Acknowledgements\r\n- Slides application is based on [ipywidgets](https://github.com/jupyter-widgets/ipywidgets).\r\n- Rich display mechanism, and collection of cell output to slides heavily rely on [IPython](https://github.com/ipython/ipython).\r\n- [Python-Markdown](https://python-markdown.github.io/) is extensily used for content and extended where needed.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Live rich content slides in jupyter notebook",
"version": "4.8.7",
"project_urls": {
"Bug Tracker": "https://github.com/massgh/ipyslides/issues",
"Homepage": "https://github.com/massgh/ipyslides"
},
"split_keywords": [
"jupyter",
" widgets",
" ipython"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "55dbbc6b868bbe34d910af6f4533d624864d609826358409f5540f59fc7c2f86",
"md5": "b9c2b9fd883ec1b56c71498ae0a6df9a",
"sha256": "f7aceaeb31c5bc2d194f7b2c53576399b6adde29c13f4d267f1345ec3cc274e2"
},
"downloads": -1,
"filename": "ipyslides-4.8.7-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b9c2b9fd883ec1b56c71498ae0a6df9a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 133526,
"upload_time": "2024-09-13T02:06:41",
"upload_time_iso_8601": "2024-09-13T02:06:41.964525Z",
"url": "https://files.pythonhosted.org/packages/55/db/bc6b868bbe34d910af6f4533d624864d609826358409f5540f59fc7c2f86/ipyslides-4.8.7-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "95d93ec9323cbf1eab334170cef7f7bac0952174d604ab0819d52a47f2965296",
"md5": "4fde1fd2510160d94fe95fe7f43932e5",
"sha256": "ebb646896f0a6d03113e6dc9d2207c92933e5ea35b19096f6628ea16cd3913b4"
},
"downloads": -1,
"filename": "ipyslides-4.8.7.tar.gz",
"has_sig": false,
"md5_digest": "4fde1fd2510160d94fe95fe7f43932e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 118889,
"upload_time": "2024-09-13T02:06:44",
"upload_time_iso_8601": "2024-09-13T02:06:44.368562Z",
"url": "https://files.pythonhosted.org/packages/95/d9/3ec9323cbf1eab334170cef7f7bac0952174d604ab0819d52a47f2965296/ipyslides-4.8.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-13 02:06:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "massgh",
"github_project": "ipyslides",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "anywidget",
"specs": [
[
"==",
"0.9.13"
]
]
},
{
"name": "tldraw",
"specs": [
[
"==",
"2.2.4"
]
]
},
{
"name": "ipython",
"specs": [
[
">=",
"8.7"
]
]
},
{
"name": "jupyterlab",
"specs": [
[
">=",
"3.5.2"
]
]
},
{
"name": "markdown",
"specs": []
},
{
"name": "altair",
"specs": []
},
{
"name": "ipywidgets",
"specs": [
[
">=",
"8.0.4"
]
]
},
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "voila",
"specs": [
[
">=",
"0.4.0"
]
]
},
{
"name": "markdown-customblocks",
"specs": []
},
{
"name": "pillow",
"specs": [
[
">=",
"9.3.0"
]
]
}
],
"lcname": "ipyslides"
}