-
-### Relative positioning
-
-All `data-rel-x`/`y`/`z` is used world coordinate by default. So the value should be alternated according to the rotation state of previous slides.
-
-To easy relative positioning, the `data-rel-position` attribute is introduced.
-
-`data-rel-position` has a default value of "absolute", which works like this attribute is not introduced.
-
-When `data-rel-position="relative"`, everything changed. The rotation of previous is no need to be considered, you can set all the `data-rel-` attributes as if the previous has no rotation. This plugin will calculate the acual position according to the position and rotation of the previous slide and the relative settings. This make it possible to split a presentation into parts, construct each parts standalone without consider the final position, and then assemble them together.
-
-For example, if you want the slide slided in from the right hand side, all you need is `data-rel-x="1000"`, no matter the rotation of the previous slide. If the previous slide has `data-rotate-z="90"`, the actual attribute of this slide will work like `data-rel-y="1000"`.
-
-Not only relative positions, the relative rotations can be used while `data-rel-position="relative"`.
-
-For example, `data-rel-rotate-y="45"` will make the slide has an angle of 45 degree to the previous slide. It make it easy to build a circle and do other complicated positioning.
-
-If not set, the `data-rel-position` attribute will be inherited from previous slide. So we only need to set it at the first slide, then all done.
-
-To avoid the boring need to set most `data-rel-*` to zero, but set only one or two ones, `data-rel-reset` attribute can be used:
-
-- `data-rel-reset` equals to: `data-rel-x="0" data-rel-y="0" data-rel-z="0" data-rel-rotate-x="0" data-rel-rotate-y="0" data-rel-rotate-z="0"`
-- `data-rel-reset="all"` works like `data-rel-reset`, in additions `data-rotate-x="0" data-rotate-y="0" data-rotate-z="0"`
-
-When `data-rel-position="relative"` and `data-rel-to` is specified, `data-rotate-*` and `data-rel-*` will be inherited from specified slide too.
-
-**IMPORTANT: Incompatible change**
-
-Enabling / adding this plugin has a small incompatible side effect on default values.
-
-Prior to this plugin, a missing data-x/y/z attribute would be assigned the default value of 0.
-But when using a version of impress.js with this plugin enabled, a missing data-x/y/z attribute
-will inherit the value from the previous step. (The first step will inherit the default value of 0.)
-
-For example, if you have an old presentation with the following 3 steps, they would be positioned
-differently when using a version of impress.js that includes this plugin:
-
-
-
-
-
-To get the same rendering now, you need to add an explicit `data-z="0"` to the second step:
-
-
-
-
-
-Note that the latter code will render correctly also in old versions of impress.js.
-
-If you have an old presentation that doesn't use relative positioning, and for some reason you
-cannot or don't want to add the explicit 0 values where needed, your last resort is to simply
-remove the `rel.js` plugin completely. You can either:
-
-* Remove `rel.js` from [/build.js](../../../build.js) and recompile `impress.js` with: `npm build`
-* Just open [/js/impress.js] in an editor and delete the `rel.js` code.
-* Or, just uncomment the following single line, which is the last line of the plugin:
-
- impress.addPreInitPlugin( rel );
-
-
-**About Pre-Init Plugins**
-
-This plugin is a *pre-init plugin*. It is called synchronously from impress.js
-core at the beginning of `impress().init()`. This allows it to process its own
-data attributes first, and possibly alter the data-x, data-y and data-z attributes
-that will then be processed by `impress().init()`.
-
-(Another name for this kind of plugin might be called a *filter plugin*, but
-*pre-init plugin* is more generic, as a plugin might do whatever it wants in
-the pre-init stage.)
-
-
-***Author***
-
-Henrik Ingo (@henrikingo), 2016
-
-
-## Resize
-*This documentation here was not authored by the creator of the plugin*
-
-This plugin resizes the presentation after a window resize. It does not offer any programmatic way of interaction, as this is not needed. It runs automatically in the background.
-
-
-## Skip
-Example:
-
-
-
-
-The skip plugin is a pre-stepleave plugin. It is executed before
-`impress:stepleave` event. If the next step also has `class="skip"`
-set, it will set the next step to the one after that.
-
-***Author***
-
-Copyright 2016 Henrik Ingo (@henrikingo)
-
-
-## Stop
-Example:
-
-
-
-
-The stop plugin is a pre-stepleave plugin. It is executed before
-`impress:stepleave` event. If the current slide has `class="stop"`
-set, it will disable the next() command by setting the next slide to the current
-slide.
-
-***Author***
-
-Copyright 2016 Henrik Ingo (@henrikingo)
-
-## Substep
-Reveal each substep (such as a bullet point) of the step separately. Just like in PowerPoint!
-
-If the current step contains html elements with `class="substep"` then this plugin will prevent a
-`prev()` / `next()` call to leave the slide, and instead reveal the next substep (for `next()`) or
-alternatively hide one (for `prev()`). Only once all substeps are shown, will a call to `next()`
-actually move to the next step, and only when all are hidden will a call to `prev()` move to the
-previous one.
-
-By default, this plugin reveals substeps in the order in which they appear in the HTML. If you
-would like to reveal them in a different order, you can supply an integer to `data-substep-order`.
-If you do so, this plugin will reveal the substeps in ascending order; any substeps without a
-specified `data-substep-order` will be revealed after all substeps with a specified order have
-been revealed.
-
-Calls to `goto()` will be ignored by this plugin, i.e. `goto()` will transition to whichever step is
-the target.
-
-In practice what happens is that when each substep is stepped through via `next()` calls, a
-`class="substep-visible"` class is added to the element. It is up to the presentation author to
-use the appropriate CSS to make the substeps hidden and visible.
-
-Example:
-
-
-
-
-
Fruits
-
Orange
-
Apple
-
-
-Classes:
-
-`substep-active` - The most recent substep in the current step
-
-`substep-visible` - The most recent and all previous substeps in the current step
-
-***Author:***
-Copyright 2017 Henrik Ingo (@henrikingo)
-
-
-## Toolbar
-This plugin provides a generic graphical toolbar. Other plugins that
-want to expose a button or other widget, can add those to this toolbar.
-
-Using a single consolidated toolbar for all GUI widgets makes it easier
-to position and style the toolbar rather than having to do that for lots
-of different divs.
-
-To add/activate the toolbar in your presentation, add this div:
-
-
-
-Styling the toolbar is left to presentation author. Here's an example CSS:
-
- .impress-enabled div#impress-toolbar {
- position: fixed;
- right: 1px;
- bottom: 1px;
- opacity: 0.6;
- }
- .impress-enabled div#impress-toolbar > span {
- margin-right: 10px;
- }
-
-The [mouse-timeout](../mouse-timeout/README.md) plugin can be leveraged to hide
-the toolbar from sight, and only make it visible when mouse is moved.
-
- body.impress-mouse-timeout div#impress-toolbar {
- display: none;
- }
-
-If you're writing a plugin and would like to add a widget to the toolbar, see
-[the top of the source file for further instructions](toolbar.js).
-
-
-***Author***
-
-Henrik Ingo (@henrikingo), 2016
-
-
-## Touch
-*This documentation here was not authored by the creator of the plugin*
-
-This plugin handles touch input (of mobile devices). You cannot programmatically interact with it. It runs in the background.
-
-
-# Extra plugins
-## Extras Plugin
-The Extras plugin will initialize the optional addon plugins from
-[extras/](/extras/) directory, if they were loaded.
-
-Generally, for an extras plugin to have been loaded, 2 things must have happened:
-
-1. The extras plugins must be present in extras/ directory, for example after
- running `git submodule update`
-2. One or more extras plugins are added to the impress.js presentation (the HTML
- file) by the author using a regular `