Makes impress.js presentations from reStructuredText
The merge of convenience and cool!
- Write your presentations in a text markup language. No slow, limiting GUI, no annoying HTML!
- Pan, rotate and zoom in 3D, with automatic repositioning of slides!
- A presenter console with notes and slide previews!
- The slide show generated is in HTML, so you only need a web browser to show it.
- Easy sharing, as it can be put up on a website for anyone to see!
Full documentation is available at readthedocs.org, and also in the documentation subdirectory.
Hovercraft requires Python 3.4 or later, and can be installed like any Python package. The easiest way is to install pip, and then run:
$ pip3 install hovercraft
Hovercraft is untested on Windows, but there is no reason it shouldn’t work, at least in theory.
Hovercraft! was written by Lennart Regebro <email@example.com>, and is licensed as CC-0, except for the following:
- reST.xsl is (c) Michael Alyn Miller <malyn@strangeGizmo.com> and published under a BSD-style license included in reST.xsl itself.
- impress.js is (c) Bartek Szopka (@bartaz) released under MIT and GPL licenses. See the impress.js page for more information.
Other contributors (see CHANGES.txt for details):
- Carl Meyer [carljm]
- Chris Withers [cjw296]
- Fahrzin Hemmati [fahhem]
- Christophe Labouisse [ggtools]
- Paul Schoenfelder [bitwalker]
- Bernhard Weitzhofer [b6d]
- Russ Ferriday [topiaruss]
- Henrik Blidh [hbldh]
- Ian Castleden [arabidopsis]
- Mario Bodemann [mariobodemann]
- Jürgen Hermann [jhermann]
- Adam Johnson [adamchainz]
- Frederik Möllers [frederikmoellers]
- David Baum [naraesk]
- Keith Maxwell [maxwell-k]
- Tony S Yu [tonysyu]
- The ReStructuredText directive “figure” now is translated into the HTML5 tag “figure”, with the caption becoming a figcaption tag.
- Restored the warning that you need Python 3.5 or higher when trying to install with Python 2.
- Simplify in-process execution of Hovercraft! [tonysyu]
- Document how to make custom directorves. [tonysyu]
- Hovercraft! now displays the version number when called with -v or –version.
- New version of impressConsole that includes styling of the previews and a goto command <G>.
- :css-console: and :css-preview: added to style the console and add extra styles in the previews.
auto-console: and -a had stopped working [maxwell-k].
- Option to display slide numbers [frederikmoellers]
- #51: Positioning relative to other slide [naraesk]
- Removed the code that uses pkg_util to access included templates. We don’t support installing Hovercraft! as a ZIP file anyway, so it only complicates things for no good reason.
- Support for .. header:: and .. footer:: that can be used for static content.
- Dropped support for Python 3.3 and 3.4, because I now use recursive glob.
- Templates can now have a resource-directories statements, to specify extra directories of resources. This can be used in templates for JS libraries, like MathJax.
- The MathJax argument can now be a local copy.
- Switched the default MathJax URL to https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1
- Better implementation of #98
- #72: Support for adding additional JS files [hbldh]
- Upgraded impress.js to 0.6.0
- Support for mathematical formulas with Mathjax [arabidopsis]
- Default template use UTF-8 [mariobodemann]
- Added support for Python 3.6
- readthedocs moved domain [adamchainz]
- #98: Presentation not update when using gedit
- #87: Support multiple :css: statements. [bitwalker]
- #86, #88: In-template resources failed for external templates.
- #89: The file monitoring could make the CPU go to 100%. [b6d]
- #81: positions.rst example was out of date.
- Dropped Python 3.2 support, because docutils doesn’t seem to work on Python 3.2 any longer. With docutils 0.9 it probably still works.
- Updated tests to work with newer Pygments.
- #96: Relative paths was not working.
- #91: When modifying included files the presentation was not updated.
- Better support for :class:. [fahhem]
- Now supports data-perspective. [fahhem]
- Fixed typos in template.py. [fahhem, ggtools]
- IMPORTANT! The positioning has been reimplemented. The most important change is that there is no longer any calculation of relative movement when you use absolute coordinates. Therefore, if you use absolute coordinates on some slides and then have no coordinates on other slides, your positioning may no longer be correct with version 2.0.
- IMPORTANT! Moved the “note” XML transformation into the templates, as this is an impress.js feature, and other libraries, such as Reveal.js, will render it differently. If you make your own templates, you need to update them accordingly!
- Relative coordinates (starting with r) are now supported for all positioning, attributes including rotation and scaling.
- Now includes a server-mode, that will serve the presentation via http and also re-generate the presentation if the source-files change.
- Images can now also have a :class: attribute.
- Added support for multiple levels of slides. This is to make it able to support for example Reveal.js through external templates.
- ReST comments are no longer rendered to HTML. [carljm]
- Fixed a bug in the path handling for CSS resources. [carljm]
- Various fixes and improvements in ReST handling. [cjw296]
- #1, #2: Add key-binding to pop up the help, a parameter and a presentation field setting to not show the help at load.
- Added documentation for #8: Naming steps.
- #7: You can now define CSS-files to be included with a :css:-field in the presentation.
- #3: You can now leave out the presenter notes from the output with the parameter -n or –skip-notes
- Added a “simple” template that has no presenter console.
- Updated to impress-console 1.1, fixing a Firefox bug.
- Added support for more HTML metadata.
- Finished documentation and examples.
- Added syntax highlighting support.
- #9: All positioning variables except data-x and data-y are now “sticky” so
- they will keep their previous value if not defined.
- Documentation on https://hovercraft.readthedocs.io/
- Initial release.