hovercraft 2.7
Makes impress.js presentations from reStructuredText
License: MIT
Requires Python: >= 3.5
Keywords: presentations,restructuredtext

Hovercraft!
===========

*The merge of convenience and cool!*

Hovercraft! is a tool to make impress.js_ presentations from
reStructuredText. For a quick explanation, see the demo_.

Features
--------

* 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!

* Support for showing mathematical formulas.

* Styling is easy with CSS.

* 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.

Installation
------------

Hovercraft requires Python 3 and can be installed like any Python package.

The easiest way is to install pip_, and then run::

    $ pip3 install hovercraft

Juan Bondi has made videos of how to install:

* Installation on Ubuntu and Debian based computers: https://www.youtube.com/watch?v=tHSJLF9OnKQ

* Installation on Windows: https://www.youtube.com/watch?v=I63I8Az24d8

Hovercraft is untested on Windows, but there is no reason it shouldn't work, at least in theory.


.. _impress.js: http://github.com/bartaz/impress.js
.. _demo: http://regebro.github.com/hovercraft
.. _readthedocs.org: https://hovercraft.readthedocs.io/
.. _pip: http://www.pip-installer.org/en/latest/

Contributors
------------

Hovercraft! was written by Lennart Regebro <regebro@gmail.com>, and is licensed
with an MIT license, 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]

* Carlos Cámara [ccamara]

* Ramiro Morales [ramiro]

* Johannes Wünsch [PostPollux]

* Mark Kohler [mkohler]

* Brian Murray [murraybd]

* Maxime Weyl [MaximeWeyl]

* Bart Kummel [bartkummel]

* Baptiste Mispelon [bmispelon]

* Martín Gaitán [mgaitan]

* Eugene Yunak [yunake]

* Nejc Zupan [zupo]

* Graham Williamson [00willo]

* FredInChina [ReblochonMasque]

* Dan Jacka [danjacka]

* Juan Biondi [yeyeto2788]

.. _impress.js: http://github.com/bartaz/impress.js

Changes
=======

2.7 (2020-02-08)
----------------

- Added the pre-check for file or folder existence when serving or
  creating the presentation.

- Juan Bondi made videos of the installation.


2.7beta1 (2019-11-06)
---------------------

This release moves Hovercraft! over to impress.js 1.0.0. This version of
impress.js has many new features and a new plugin system, which has plenty of
benefits, especially since some features of Hovercraft!, primarily
impressConsole.js, now are plugins to impress.js, so that's less
maintenance burden on me.

The most obvious changes from the previous version of Hovercraft! are:

 - The ``--skip-help`` argument, and ``:skip-help:`` control now disables
   the help popup altogether. This is because impress.js currently has no
   way to stop the help from displaying on load except disabling the help
   completely. This may change in the future.

- Also switched the default MathJax to 2.7.5, a minor update.
  impress.js MathJax extension is simply just Mathjax, there is no additional
  integration, so Hovercraft! doesn't change how Mathjax is integrated.

- Hovecraft! now supports the new impress.js "substep" plugin, so that
  you can show paragraphs lists item by item (see documentation).

Other changes are:

- You can now include audio and video by including the HTML5 <video> and
  <audio> tags in ..raw: html sections.

- Dropped support for Python 3.5, added support for 3.8.

- Many, many documentation fixes and improvements.


2.6 (2018-10-04)
----------------

- 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 directives. [tonysyu]


2.5 (2017-12-10)
----------------

- 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].


2.4 (2017-07-18)
----------------

- 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


2.3 (2017-04-12)
----------------

- 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]


2.2 (2016-10-15)
----------------

- #98: Presentation not update when using gedit


2.1 (2016-02-27)
----------------

- #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.


2.0 (2015-06-14)
----------------

- Better support for :class:. [fahhem]

- Now supports data-perspective. [fahhem]

- Fixed typos in template.py. [fahhem, ggtools]


2.0b1 (2014-11-27)
------------------

- 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.


1.1 (2013-03-15)
----------------

- 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.0 (2013-02-22)
----------------

- #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.


1.0b2 (2013-02-13)
------------------

- 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/


1.0b1 (2013-02-07)
------------------

- Initial release.