1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
|
:title: Slideshow Tutorial
:author: Lennart Regebro
:description: The Hovercraft! tutorial.
:keywords: presentation, restructuredtext, impress.js, tutorial
:css: tutorial.css
This slide show is a sort of tutorial of how to use Hovercraft! to make
presentations. It will show the most important features of Hovercraft! with
explanations.
Hopefully you ended up here by the link from the official documentation at
https://hovercraft.readthedocs.org/ . If not, you probably want to go there
and read through it first.
This tutorial is meant to be read as source code, not in any HTML form, so if
you can see this text (it won't be visible in the final presentation) and you
aren't seeing the source code, you are doing it wrong. It's going to be
confusing and not very useful. Again, go to the official docs. There are
links to the source code in the Examples section.
You can render this presentation to HTML with the command::
hovercraft positions.rst outdir
And then view the outdir/index.html file to see how it turned out.
**Now then, on to the tutorial part!**
The first thing to note is the special syntax for information about the
presentation that you see above. This is in reStructuredText called "fields"
and it's used all the time in Hovercraft! to change attributes and set data
on the presentation, on slides and on images. The order of the fields is not
important, but you can only have one of each field.
The fields above are meta-data about the presentation, except for the
:css:-field. This meta data is only useful if you plan to publish the
presentation by putting the HTML online. If you are only going to show this
presentation yourself in a meeting you can skip all of it.
The title set is the title that is going to be shown in the title bar of the
browser. reStructuredText also has a separate syntax for titles that is also
supported by Hovercraft::
.. title:: Slideshow Tutorial
However that requires an empty line after it, and it looks better to use the
same syntax for all metadata.
The :css: field will add a custom CSS-file to this presentation. This is
something you almost always want to do, as you otherwise have no control over
how the presentation will look. You can also specify different media for
the CSS, for example "screen,projection"::
:css-screen,projection: hovercraft.css
This way you can have different CSS for print and for display. You can only
specify one CSS-file per field, however. If you want to include more you
need to use the @import directive in CSS.
Once you have added metadata and CSS, it's time to start on the slides.
You separate slides with a line that consists of four or more dashes. The
first slide will start at the first such line, or at the first heading. Since
none of the text so far has been a heading, it means that the first slide has
not yet started. As a result, all this text will be ignored in the output.
So lets start the first slide by having a line with four dashes. Since the
first slide starts with a heading, that line is strictly speaking not needed,
but it's good to be explicit.
----
This is a first slide
=====================
Restructured text takes any line that is underlined with punctuation and
makes it into a heading. Each type of underlining will be made into a different
level of heading, but it is not the type that is important, but rather the
order of which each type will be enountered.
So in this presentation, lines underlined with equal (=) characters will be
made into a first-level (H1) heading.
----
First header
============
You can choose other punctuation characters as your level 1 heading if you like,
but this is the most common. Any if these character works::
= - ` : ' " ~ ^ _ * + # < > .
Second header
-------------
Third header
............
The drawback with reStructuredText is that you can't skip levels. You can't
go directly from level 1 to level 3 without having a level 2 in between.
If you do you get an error::
Title level inconsistent
----
Other formatting
================
All the normal reStructuredText functions are supported in Hovercraft!
- Such as bulletlists, which start with a dash (-) or an asterisk (*).
You can have many lines of text in one bullet if you indent the
following lines.
- And you can have many levels of bullets.
- Like this.
- There is *Emphasis* and **strong emphasis**, rendered as <em> and <strong>.
----
More formatting
===============
#. Numbered lists are of course also supported.
#. They are automatically numbered.
#. But only for single-level lists and single rows of text.
#. ``inline literals``, rendered as <tt> and usually shown with a monospace font, which is good for source code.
#. Hyperlinks, like Python_
.. _Python: http://www.python.org
----
Images
======
You can insert an image with the .. image:: directive:
.. image:: images/hovercraft_logo.png
And you can optionally set width and height:
.. image:: images/hovercraft_logo.png
:width: 50px
:height: 130px
Some people like to have slideshows containing only illustrative images. This
works fine with Hovercraft! as well, as you can see on the next slide.
----
.. image:: images/hovercraft_logo.png
----
Slides can have presenter notes!
================================
This is the killer-feature of Hovercraft! as very few other tools like this
support a presenter console. You add presenter notes in the slide like this:
.. note::
And then you indent the text afterwards. You can have a lot of formatting
in the presenter notes, like *emphasis* and **strong** emphasis.
- Even bullet lists!
- Which can be handy!
But you can't have any headings.
----
Source code
===========
You can also have text that is mono spaced, for source code and similar.
There are several syntaxes for that. For code that is a part of a sentence
you use the inline syntax with ``double backticks`` we saw earlier.
If you want a whole block of preformatted text you can use double colons::
And then you
need to indent the block
of text that
should be preformatted
You can even have the double colons on a line by themselves:
::
And this text will
now be
rendered as
preformatted text
----
Syntax highlighting
===================
But the more interesting syntax for preformatted text is the .. code::
directive. This enables you to syntax highlight the code.
.. code:: python
def day_of_year(month, day):
return (month - 1) * 30 + day_of_month
def day_of_week(day):
return ((day - 1) % 10) + 1
def weekno(month, day):
return ((day_of_year(month, day) - 1) // 10) + 1
----
More code features
==================
The syntax highlighting is done via docutils by a module called Pygments_
which support all popular languages, and a lot of unpopular ones as well.
The coloring is done by CSS, if you want to change it, copy the CSS in
the highlight.css file and override it in your custom CSS.
.. _Pygments: http://pygments.org/
----
Testing the code
================
If you are including Python-code, then Manuel_ 1.7.0 and later can test the
code for you. This enables you to have code in your presentation and make
sure it works.
To do this properly you sometimes want setup and teardown code, code that
should be executed as a part of the test, but not shown in the presentation.
To do that, you can simply set a class on the code block.
.. code:: python
:class: hidden
from datetime import datetime
Add the hidden class in your css:
.. code:: css
pre.hidden {
display: none;
}
----
And your visible code will now be runnable with Manuel:
.. code:: python
>>> datetime(2013, 2, 19, 12)
datetime.datetime(2013, 2, 19, 12, 0)
.. _Manuel: https://pypi.python.org/pypi/manuel
----
That's all folks!
=================
That finishes the basic tutorial for Hovercraft! Next you probably want to
take a look at the positioning tutorial, so you can use the pan, rotate and
zoom functionality.
|