~ubuntu-branches/ubuntu/hardy/python-docutils/hardy

« back to all changes in this revision

Viewing changes to docs/user/slide-shows.txt

  • Committer: Bazaar Package Importer
  • Author(s): martin f. krafft
  • Date: 2006-07-10 11:45:05 UTC
  • mfrom: (2.1.4 edgy)
  • Revision ID: james.westby@ubuntu.com-20060710114505-otkhqcslevewxmz5
Tags: 0.4-3
Added build dependency on python-central (closes: #377580).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. include:: <s5defs.txt>
 
2
 
 
3
=================================
 
4
 Easy Slide Shows With reST & S5
 
5
=================================
 
6
 
 
7
:Authors: David Goodger & Chris Liechti
 
8
:Date:    $Date: 2005-12-21 03:01:15 +0100 (Wed, 21 Dec 2005) $
 
9
 
 
10
.. This document has been placed in the public domain.
 
11
 
 
12
.. container:: handout
 
13
 
 
14
   How to create quick, good-looking presentation slide shows with
 
15
   Docutils_/reStructuredText_ and S5_.
 
16
 
 
17
   This document serves both as a user manual and as a usage example
 
18
   of the s5_html.py writer and the rst2s5.py front end.
 
19
 
 
20
   To view this document as a slide show see
 
21
   http://docutils.sf.net/docs/user/slide-shows.s5.html (or `your
 
22
   local copy <slide-shows.s5.html>`__).
 
23
 
 
24
.. contents::
 
25
   :class: handout
 
26
 
 
27
.. class:: tiny
 
28
 
 
29
* S5 themes are designed for full-screen display areas with a 4:3
 
30
  aspect ratio.  If the slide text doesn't fit in your browser window,
 
31
  try decreasing the text size.
 
32
 
 
33
* Use the space bar to advance, Page Up/Down & arrow keys to navigate.
 
34
 
 
35
* Best viewed in Firefox_, Safari, and Konqueror.  Click the "|mode|"
 
36
  button to switch between presentation & handout/outline modes.  Hit
 
37
  the "C" key to display the navigation controls, or mouse over the
 
38
  lower right-hand corner.
 
39
 
 
40
* Functionality is limited in Opera.  Switch to full-screen mode (F11
 
41
  key) to activate Opera Show.
 
42
 
 
43
* S5 works in Internet Explorer, but it may look ugly.
 
44
 
 
45
.. container:: handout
 
46
 
 
47
   The first slide of a presentation consists of all visible text up
 
48
   to the first section title.  The document title is also added to
 
49
   the footer of all slides.
 
50
 
 
51
   The "footer" directive is used to specify part of the slide footer
 
52
   text.  It is currently limited to one short line (one paragraph).
 
53
 
 
54
   There is no support for the "header" directive in the themes
 
55
   included with Docutils.
 
56
 
 
57
.. _Docutils: http://docutils.sourceforge.net/
 
58
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
 
59
.. _S5: http://meyerweb.com/eric/tools/s5/
 
60
.. _Firefox: http://www.mozilla.com/firefox/
 
61
.. |bullet| unicode:: U+02022
 
62
.. |mode| unicode:: U+00D8 .. capital o with stroke
 
63
 
 
64
.. footer:: Location |bullet| Date
 
65
 
 
66
 
 
67
Introduction
 
68
============
 
69
 
 
70
.. class:: handout
 
71
 
 
72
   ``rst2s5.py`` is a Docutils_ front end that outputs HTML for use
 
73
   with S5_, a "Simple Standards-based Slide Show System" by Eric
 
74
   Meyer.
 
75
 
 
76
.. topic:: Installation
 
77
   :class: handout
 
78
 
 
79
   Prerequisites: Python and the Docutils_ package have to be
 
80
   installed.  See the `Docutils README`__ file for installation
 
81
   instructions.
 
82
 
 
83
   __ http://docutils.sourceforge.net/README.html
 
84
 
 
85
* reStructuredText
 
86
 
 
87
  .. class:: handout
 
88
 
 
89
  Uses normal reStructuredText as input.
 
90
 
 
91
* One section per slide
 
92
 
 
93
  .. class:: handout
 
94
 
 
95
  Each first-level section is converted into a single slide.
 
96
 
 
97
* XHTML output
 
98
 
 
99
  .. container:: handout
 
100
 
 
101
     Presentations can be viewed using most modern graphical web
 
102
     browsers.  The browser must support CSS, JavaScript, and XHTML.
 
103
     S5 even works with IE!
 
104
 
 
105
     S5 was designed to add the functionality of the `Opera Show`_
 
106
     standard (without Opera Show's limitations) to non-Opera
 
107
     browsers.  Unfortunately, most of S5's CSS and JavaScript
 
108
     extensions don't function in the Opera browser.
 
109
 
 
110
  .. _Opera Show: http://www.opera.com/support/tutorials/operashow/
 
111
 
 
112
* Themes
 
113
 
 
114
  .. class:: handout
 
115
 
 
116
  A variety of themes are available.  See `Example Themes`_, below.
 
117
 
 
118
* ``rst2s5.py``
 
119
 
 
120
  .. class:: handout
 
121
 
 
122
  The front-end tool to generate S5 slide shows.
 
123
 
 
124
.. topic:: Keyboard Controls
 
125
   :class: handout
 
126
 
 
127
   The following apply in any supporting browser besides Opera, which
 
128
   uses the default Opera Show controls instead.
 
129
 
 
130
   .. list-table::
 
131
      :header-rows: 1
 
132
 
 
133
      * - Action
 
134
        - Key(s)
 
135
      * - Go to the next slide
 
136
        - * [Space bar]
 
137
          * [Return]
 
138
          * [Enter]
 
139
          * [Right arrow]
 
140
          * [Down arrow]
 
141
          * [Page down]
 
142
          * Click the left mouse button outside of the control area,
 
143
            Flash object, or movie
 
144
      * - Go to the previous slide
 
145
        - * [Left arrow]
 
146
          * [Up arrow]
 
147
          * [Page up]
 
148
      * - Go to the title (first) slide
 
149
        - [Home]
 
150
      * - Go to the last slide
 
151
        - [End]
 
152
      * - Jump directly to a slide
 
153
        - Type the slide number, then hit [Return] or [Enter]
 
154
      * - Skip forward *n* slides
 
155
        - Type the number of slides to skip, then hit any "go to next"
 
156
          key (except [Return] or [Enter])
 
157
      * - Skip backward *n* slides
 
158
        - Type the number of slides to skip, then hit any "go to
 
159
          previous" key
 
160
      * - Switch between slideshow and outline view
 
161
        - * [T]
 
162
          * Click the |mode| button
 
163
      * - Show/hide slide controls
 
164
        - * [C]
 
165
          * Move the mouse pointer over the control area
 
166
 
 
167
   Further details of the S5 user interface can be found at `Eric
 
168
   Meyer's S5 page`__.
 
169
 
 
170
   __ S5_
 
171
 
 
172
 
 
173
Features (1)
 
174
============
 
175
 
 
176
.. container:: handout
 
177
 
 
178
   The S5/HTML Writer supports all the standard Docutils HTML
 
179
   features.  S5 has been released to the Public Domain.
 
180
 
 
181
S5-specific features:
 
182
 
 
183
.. class:: incremental
 
184
 
 
185
* The document title is duplicated on each slide in the S5 footer.
 
186
 
 
187
* The ``footer`` directive may be used to define additional text in
 
188
  the S5 footer.
 
189
 
 
190
  .. container:: handout
 
191
 
 
192
     But it is limited to one line of text.
 
193
 
 
194
     This is useful for information such as the date of the
 
195
     presentation and/or the location.  The field in the footer is
 
196
     left blank if no ``footer`` directive is used.
 
197
 
 
198
     Example::
 
199
 
 
200
         .. footer:: Location - Date
 
201
 
 
202
     There is also a progress indicator (slide counter) in the footer
 
203
     that can be enabled.  It's disabled by default.
 
204
 
 
205
* Incremental display.
 
206
 
 
207
  .. class:: handout
 
208
 
 
209
  An "incremental" class can be assigned to lists and other elements
 
210
  to get one-item-at-a-time behavior (like this list).  Incremental
 
211
  display does not work in the Opera browser.
 
212
 
 
213
* Text auto-scaling.
 
214
 
 
215
  .. class:: handout
 
216
 
 
217
  The text size adjusts relative to the size of your browser window
 
218
  automatically.  You may need to reload the document after resizing
 
219
  the window.  The browser and platform affect the font used; be sure
 
220
  to test the slide show on the presentation system.
 
221
 
 
222
 
 
223
Features (2): Handouts
 
224
======================
 
225
 
 
226
.. container:: handout
 
227
 
 
228
   The contents of any element with a "class" attribute value of
 
229
   "handout" are hidden in the slide presentation, and are only
 
230
   visible when the presentation is printed, or viewed in outline
 
231
   mode.  "Handout"-class elements can appear anywhere in the text, as
 
232
   often as needed.
 
233
 
 
234
   This means that the slides and extra handout material can be
 
235
   combined in one document.  The handout can be printed directly from
 
236
   the browser, and it will contain more than just silly framed
 
237
   slides.  This can be used to provide more detailed information, or
 
238
   for speaker's notes.
 
239
 
 
240
.. class:: incremental
 
241
 
 
242
* Use the "class" directive::
 
243
 
 
244
      .. class:: handout
 
245
 
 
246
  .. container:: handout
 
247
 
 
248
     The ``.. class:: handout`` directive can be used to tag
 
249
     individual paragraphs and other elements.  The "class" directive
 
250
     applies to the first element immediately following::
 
251
 
 
252
         .. class:: handout
 
253
 
 
254
         This paragraph will get a
 
255
         ``class="handout"`` attribute.
 
256
 
 
257
         This paragraph will not be affected.
 
258
 
 
259
     It also applies to multiple elements in the directive content::
 
260
 
 
261
         .. class:: handout
 
262
 
 
263
            These paragraphs are the content
 
264
            of the "class" directive.  And as such...
 
265
 
 
266
            Both paragraphs will *individually* receive
 
267
            ``class="handout"`` attributes.
 
268
 
 
269
* Use the "container" directive::
 
270
 
 
271
      .. container:: handout
 
272
 
 
273
  .. container:: handout
 
274
 
 
275
     Arbitrary handout blocks can be created using the ``container``
 
276
     directive.  The content is treated as one.
 
277
 
 
278
* Use the "class" option of directives that support it::
 
279
 
 
280
      .. topic:: Extra Material For Handouts
 
281
         :class: handout
 
282
 
 
283
.. container:: handout
 
284
 
 
285
   The following directives support "class" options:
 
286
 
 
287
   * all admonition directives ("admonition", "note", "hint", etc.)
 
288
   * "image" & "figure"
 
289
   * "topic"
 
290
   * "sidebar"
 
291
   * "line-block"
 
292
   * "parsed-literal"
 
293
   * "rubric"
 
294
   * "compound"
 
295
   * "table", "csv-table", & "list-table"
 
296
   * "target-notes" (more about that below)
 
297
   * "role" (pre-defined; more below)
 
298
 
 
299
   Handout contents are also visible on the screen if the S5 view mode
 
300
   is toggled from "slide show" to "outline" mode.
 
301
 
 
302
 
 
303
Caveats
 
304
=======
 
305
 
 
306
.. class:: incremental
 
307
 
 
308
1. Some Docutils features are not supported by some themes.
 
309
 
 
310
   .. container:: handout
 
311
 
 
312
      For example, header rendering is not supported by the themes
 
313
      supplied with Docutils.
 
314
 
 
315
      The "header" directive is used to set header text.  S5
 
316
      automatically inserts section/slide titles into the "header"
 
317
      area of a slide.  If both Docutils headers and S5 headers (slide
 
318
      titles) exist simultaneously, they interfere with each other.
 
319
 
 
320
2. Care must be taken with the "contents" directive.
 
321
 
 
322
   .. container:: handout
 
323
 
 
324
      The ``--no-toc-backlinks`` option is the default for the S5/HTML
 
325
      writer (``toc_backlinks=0`` setting).  Other values for this
 
326
      setting will change the CSS class of headings such that they
 
327
      won't show up correctly in the slide show.
 
328
 
 
329
      Use the ``:class: handout`` option on the "contents" directive
 
330
      to limit the table of contents to the handout/outline mode
 
331
      only::
 
332
 
 
333
          .. contents::
 
334
             :class: handout
 
335
 
 
336
 
 
337
.. class:: incremental
 
338
 
 
339
3. Subsections ...
 
340
------------------
 
341
 
 
342
... may be used, sparingly.
 
343
 
 
344
.. container:: handout
 
345
 
 
346
   Only first-level sections become slides.  Not many levels of
 
347
   subsections can fit on a slide.
 
348
 
 
349
   Subsections (of any level) work normally in handouts though.  Add
 
350
   "``.. class:: handout``" before a subsection (or sub-subsection, or
 
351
   ...), and the entire subsection will only appear in the handout.
 
352
 
 
353
 
 
354
Generating a Slide Show (1)
 
355
===========================
 
356
 
 
357
.. class:: incremental
 
358
 
 
359
1. Open a console (terminal, command shell) and go to the folder
 
360
   containing your file, ``slides.txt``.
 
361
 
 
362
2. Run the command::
 
363
 
 
364
       rst2s5.py slides.txt slides.html
 
365
 
 
366
3. Specify an S5 theme with the ``--theme`` option.
 
367
 
 
368
   .. class:: handout
 
369
 
 
370
   Docutils will copy the S5 theme files into a ``ui/<theme>`` folder
 
371
   beside the output HTML file.  A slide show can also link to an
 
372
   existing theme using the ``--theme-url`` option.
 
373
 
 
374
 
 
375
Generating a Slide Show (2)
 
376
===========================
 
377
 
 
378
.. class:: incremental
 
379
 
 
380
4. Include a copy of any linked stylesheet.
 
381
 
 
382
   .. class:: handout
 
383
 
 
384
   The default Docutils stylesheet, ``html4css1.css``, will normally
 
385
   be embedded in the output HTML.  If you choose to link to a
 
386
   stylesheet instead of embedding, you must include a copy (suggested
 
387
   location: in the ``ui/`` directory).
 
388
 
 
389
5. Open ``slides.html`` in a web browser.
 
390
 
 
391
6. Expand the browser window to full-screen mode, and speak.
 
392
 
 
393
   .. class:: handout
 
394
 
 
395
   The `Web Developer`__ extension for Firefox is very useful.  With
 
396
   it, you can resize your browser window to the exact dimensions of
 
397
   the projector you'll be using, so you can test beforehand.  There
 
398
   are many other useful features as well.
 
399
 
 
400
   __ http://chrispederick.com/work/webdeveloper/
 
401
 
 
402
7. Profit!
 
403
 
 
404
 
 
405
Examples (1)
 
406
============
 
407
 
 
408
.. sidebar:: Hint
 
409
 
 
410
   Admonitions, tables, sidebars, and other elements can be used in
 
411
   on-screen presentations in handouts.  Images too!
 
412
 
 
413
   .. image:: images/happy_monkey.png
 
414
       :alt: sample image
 
415
 
 
416
=====  =====  ======
 
417
  A      B    A or B
 
418
=====  =====  ======
 
419
False  False  False
 
420
True   False  True
 
421
False  True   True
 
422
True   True   True
 
423
=====  =====  ======
 
424
 
 
425
 
 
426
Examples (2): Incremental Text
 
427
==============================
 
428
 
 
429
.. class:: incremental
 
430
 
 
431
   Paragraphs can be displayed one at a time...
 
432
 
 
433
   .. container::
 
434
 
 
435
      ... or a bunch at a time.
 
436
 
 
437
      This second paragraph is displayed together with the previous
 
438
      one by grouping them with the "container" directive.
 
439
 
 
440
`We can also display` `one` `word` `at` `a` `time,`
 
441
`or a phrase` `at a time,`
 
442
`or even` `o`\ `n`\ `e` `l`\ `e`\ `t`\ `t`\ `e`\ `r` `at a time!`
 
443
 
 
444
`(But the markup ain't pretty.)`
 
445
 
 
446
 
 
447
Examples (3): Incr. Graphics
 
448
============================
 
449
 
 
450
Let's play... Rock, Scissors, Paper
 
451
 
 
452
.. container:: animation
 
453
 
 
454
   .. image:: images/rsp-empty.png
 
455
      :class: hidden slide-display
 
456
 
 
457
   .. class:: incremental hidden slide-display
 
458
 
 
459
      .. image:: images/rsp-objects.png
 
460
      .. image:: images/rsp-cuts.png
 
461
      .. image:: images/rsp-covers.png
 
462
      .. image:: images/rsp-breaks.png
 
463
 
 
464
   .. image:: images/rsp-all.png
 
465
      :class: incremental
 
466
 
 
467
 
 
468
Themes
 
469
======
 
470
 
 
471
.. class:: incremental
 
472
 
 
473
* Several themes are available, and they're easy to adapt.
 
474
 
 
475
  .. container:: handout
 
476
 
 
477
     Themes from the `S5 tutorial`__ can be used.  These themes are in
 
478
     the public domain and may be redistributed freely.
 
479
 
 
480
     __ http://meyerweb.com/eric/tools/s5/s5blank.zip
 
481
 
 
482
     Sites with other S5 themes:
 
483
 
 
484
     * http://meyerweb.com/eric/tools/s5/themes/
 
485
     * http://mozilla.wikicities.com/wiki/Firefox_S5:Designs
 
486
     * http://lachy.id.au/dev/mozilla/firefox/s5/
 
487
 
 
488
     S5 is becoming more popular every day.  Do a web search for "S5
 
489
     theme" and you're bound to find plenty of choices.
 
490
 
 
491
* "``--theme``" option.
 
492
 
 
493
  .. container:: handout
 
494
 
 
495
     The theme can be specified with the "``--theme``" command-line
 
496
     option.
 
497
 
 
498
     Example::
 
499
 
 
500
         rst2s5 --theme big-black slides.txt slides.html
 
501
 
 
502
     The default theme is "default".
 
503
 
 
504
* "``theme``" setting.
 
505
 
 
506
  .. class:: handout
 
507
 
 
508
  You can set the theme with the "``theme``" configuration file
 
509
  setting.
 
510
 
 
511
* Copied to ``./ui/<theme>/``.
 
512
 
 
513
  .. class:: handout
 
514
 
 
515
  Themes are copied into a ``ui/<theme>`` folder inside the folder
 
516
  containing the presentation.
 
517
 
 
518
* Link with "``--theme-url``" option.
 
519
 
 
520
  .. class:: handout
 
521
 
 
522
  Link to a theme on the same or another web site, using the
 
523
  "``--theme-url``" option or "``theme_url``" configuration file
 
524
  setting.
 
525
 
 
526
 
 
527
Example Themes
 
528
==============
 
529
 
 
530
.. class:: handout
 
531
 
 
532
   The default theme, "default", is a simplified version of S5's
 
533
   default theme.  It accommodates up to 13 lines of text.
 
534
 
 
535
.. class:: center
 
536
 
 
537
   "default"
 
538
 
 
539
   .. image:: images/default.png
 
540
      :align: center
 
541
 
 
542
 
 
543
Example Themes: Small Text
 
544
==========================
 
545
 
 
546
.. class:: handout
 
547
 
 
548
   The "small-white" and "small-black" themes are simplifications of
 
549
   the default theme (**small** black text on a **white** background,
 
550
   and **small** black text on a **white** background, respectively).
 
551
   They each accommodate up to 15 lines of text.
 
552
 
 
553
.. list-table::
 
554
   :class: borderless
 
555
 
 
556
   * - "small-white"
 
557
 
 
558
       .. image:: images/small-white.png
 
559
 
 
560
     - "small-black"
 
561
 
 
562
       .. image:: images/small-black.png
 
563
 
 
564
 
 
565
Example Themes: Large Text
 
566
==========================
 
567
 
 
568
.. class:: handout
 
569
 
 
570
   The "big-white" and "big-black" themes feature very large, bold
 
571
   text, with no footers.  Only five short lines fit in a slide.
 
572
 
 
573
.. list-table::
 
574
   :class: borderless
 
575
 
 
576
   * - "big-white"
 
577
 
 
578
       .. image:: images/big-white.png
 
579
 
 
580
     - "big-black"
 
581
 
 
582
       .. image:: images/big-black.png
 
583
 
 
584
 
 
585
Example Themes: Medium Text
 
586
===========================
 
587
 
 
588
.. class:: handout
 
589
 
 
590
   The "medium-white" and "medium-black" themes feature medium-sized
 
591
   text.  Up to 8 lines of text are accommodated.
 
592
 
 
593
.. list-table::
 
594
   :class: borderless
 
595
 
 
596
   * - "medium-white"
 
597
 
 
598
       .. image:: images/medium-white.png
 
599
 
 
600
     - "medium-black"
 
601
 
 
602
       .. image:: images/medium-black.png
 
603
 
 
604
 
 
605
S5 Theme Files
 
606
==============
 
607
 
 
608
An S5 theme consists of a directory containing several files --
 
609
stylesheets, JavaScript, and graphics:
 
610
 
 
611
.. image:: images/s5-files.png
 
612
   :align: center
 
613
 
 
614
.. container:: handout
 
615
 
 
616
   The generated HTML contains the entire slide show text.  It also
 
617
   contains links to the following files:
 
618
 
 
619
   * slides.css simply contains import links to:
 
620
 
 
621
     - s5-core.css: Default styles critical to the proper functioning
 
622
       of the slide show; don't touch this!
 
623
 
 
624
     - framing.css: Sets the basic layout of slide components (header,
 
625
       footer, controls, etc.  This file is the often edited.
 
626
 
 
627
     - pretty.css: Presentation styles that give the slide show a
 
628
       unique look and feel.  This is the file that you're most likely
 
629
       to edit for a custom theme.  You can make a whole new theme
 
630
       just by editing this file, and not touching the others.
 
631
 
 
632
   * outline.css: Styles for outline mode.
 
633
 
 
634
   * print.css: Styles for printing; hides most layout elements, and
 
635
     may display others.
 
636
 
 
637
   * opera.css: Styles necessary for the proper functioning of S5 in
 
638
     Opera Show.
 
639
 
 
640
   * slides.js: the JavaScript that drives the dynamic side of the
 
641
     slide show (actions and navigation controls).  It automatically
 
642
     IDs the slides when the document loads, builds the navigation
 
643
     menu, handles the hiding and showing of slides, and so on.  The
 
644
     code also manages the fallback to Opera Show if you're using
 
645
     the Opera web browser.
 
646
 
 
647
     Two files are included to support PNG transparency (alpha
 
648
     channels) in Internet Explorer:
 
649
 
 
650
     - iepngfix.htc
 
651
     - blank.gif
 
652
 
 
653
 
 
654
Making a Custom Theme
 
655
=====================
 
656
 
 
657
.. class:: incremental
 
658
 
 
659
1. Run "``rst2s5.py --theme <base-theme> <doc>.txt <doc>.html``".
 
660
 
 
661
   .. class:: handout
 
662
 
 
663
   This initializes the ``ui`` directory with the base theme files.
 
664
 
 
665
2. Copy ``ui/<base-theme>`` to ``ui/<new-theme>``.
 
666
 
 
667
3. Edit the styles.
 
668
 
 
669
   .. class:: handout
 
670
 
 
671
   Start with ``pretty.css``; edit ``framing.css`` if you need to make
 
672
   layout changes.
 
673
 
 
674
4. Run "``rst2s5.py --theme <new-theme> <doc>.txt <doc>.html``".
 
675
 
 
676
   .. class:: handout
 
677
 
 
678
   Open your ``<doc>.html`` in a browser to test the new theme.
 
679
 
 
680
5. Rinse & repeat.
 
681
 
 
682
   .. class:: handout
 
683
 
 
684
   Repeat from step 3 until you're satisfied.
 
685
 
 
686
.. TODO: What to do next:
 
687
 
 
688
   * add a ``__base__`` file
 
689
   * create a personal reusable theme (plugin)
 
690
   * submit the new theme to Docutils
 
691
 
 
692
  ``docutils/writers/s5_html/themes/<theme>``
 
693
 
 
694
.. container:: handout
 
695
 
 
696
   Resources:
 
697
 
 
698
   * W3C's `Learning CSS <http://www.w3.org/Style/CSS/learning>`__
 
699
 
 
700
   * `Creating An S5 Theme <http://home.cogeco.ca/~ve3ll/s5themes.htm>`__
 
701
 
 
702
   * A short tutorial on how to create themes (in German):
 
703
     `Eigenes Theme erstellen <http://yatil.de/s5/dokumentation/9/>`__
 
704
 
 
705
 
 
706
Classes: Incremental (1)
 
707
========================
 
708
 
 
709
.. class:: handout
 
710
 
 
711
   Several "class" attribute values have built-in support in the
 
712
   themes supplied with Docutils.
 
713
 
 
714
.. class:: incremental
 
715
 
 
716
   As described earlier,
 
717
 
 
718
   * ``.. class:: incremental``
 
719
 
 
720
   * ``.. container:: incremental``
 
721
 
 
722
   * ::
 
723
 
 
724
         .. sidebar:: title
 
725
            :class: incremental
 
726
 
 
727
 
 
728
Classes: Incremental (2)
 
729
========================
 
730
 
 
731
The "incremental" interpreted text role is also supported:
 
732
 
 
733
.. class:: incremental
 
734
 
 
735
   ::
 
736
 
 
737
       :incremental:`This will appear first,` `and
 
738
       this will appear second.`:incremental:
 
739
 
 
740
   Requires "``.. include:: <s5defs.txt>``".
 
741
 
 
742
.. container:: handout
 
743
 
 
744
   As you can see, this markup is not very convenient.
 
745
 
 
746
.. class:: incremental
 
747
 
 
748
   | But ``s5defs.txt`` includes this useful definition:
 
749
   | "``.. default-role:: incremental``".  So:
 
750
 
 
751
   ::
 
752
 
 
753
       `This` `is` `all` `we` `need`
 
754
 
 
755
`This` `is` `all` `we` `need` `to mark up incremental text.`
 
756
 
 
757
 
 
758
Classes: Incremental (3)
 
759
========================
 
760
 
 
761
.. class:: small
 
762
 
 
763
::
 
764
 
 
765
    .. container:: animation
 
766
 
 
767
       .. image:: images/empty.png
 
768
          :class: hidden slide-display
 
769
 
 
770
       .. class:: incremental hidden slide-display
 
771
 
 
772
          .. image:: images/1.png
 
773
          .. image:: images/2.png
 
774
 
 
775
       .. image:: images/3.png
 
776
          :class: incremental
 
777
 
 
778
.. container:: handout
 
779
 
 
780
   This is how the example works.
 
781
 
 
782
   The animation effects are caused by placing successive images at
 
783
   the same location, laying each image over the last.  For best
 
784
   results, all images should be the same size, and the positions of
 
785
   image elements should be consistent.  Use image transparency (alpha
 
786
   channels) to get overlay effects.
 
787
 
 
788
   Absolute positioning is used, which means that the images take up
 
789
   no space in the flow.  If you want text to follow the images, you
 
790
   have to specify the total size of the container via a style.
 
791
   Otherwise, the images and any following text will overlap.
 
792
 
 
793
   These class values do the work:
 
794
 
 
795
   animation
 
796
       This wraps the container with styles that position the images
 
797
       absolutely, overlaying them over each other.  Only useful on a
 
798
       container.
 
799
 
 
800
   hidden
 
801
       Unless overridden (by "slide-display", for example), these
 
802
       elements will not be displayed.  Only the last image will be
 
803
       displayed in handout mode, when print, or when processed to
 
804
       ordinary HTML, because it does *not* carry a "hidden" class.
 
805
 
 
806
   slide-display
 
807
       In conjunction with "hidden", these elements will only appear
 
808
       on the slide, preventing clutter in the handout.
 
809
 
 
810
   incremental
 
811
       The second and subsequent images will appear one at a time.
 
812
       The first image will already be present when the slide is
 
813
       displayed, because it does *not* carry an "incremental" class.
 
814
 
 
815
 
 
816
Classes: Text Size
 
817
==================
 
818
 
 
819
.. class:: incremental
 
820
 
 
821
   * :tiny:`tiny` (class & role name: "tiny", e.g. "``:tiny:`text```")
 
822
   * :small:`small` ("small")
 
823
   * normal (unstyled)
 
824
   * :big:`big` ("big")
 
825
   * :huge:`huge` ("huge")
 
826
 
 
827
   Requires "``.. include:: <s5defs.txt>``".
 
828
 
 
829
 
 
830
Classes: Alignment
 
831
==================
 
832
 
 
833
.. class:: incremental
 
834
 
 
835
   .. class:: left
 
836
 
 
837
   Left (class name: "left")
 
838
 
 
839
   .. class:: center
 
840
 
 
841
   Center ("center" & "centre")
 
842
 
 
843
   .. class:: right
 
844
 
 
845
   Right ("right")
 
846
 
 
847
.. class:: handout
 
848
 
 
849
   These classes apply to block-level elements only.  They cannot be
 
850
   used for inline text (i.e., they're not interpreted text roles).
 
851
 
 
852
.. class:: incremental
 
853
 
 
854
   Example::
 
855
 
 
856
       .. class:: center
 
857
 
 
858
       Text to be centered.
 
859
 
 
860
 
 
861
Classes: Text Colours
 
862
=====================
 
863
 
 
864
:black:`black` [black], :gray:`gray`, :silver:`silver`, :white:`white`
 
865
[white], :maroon:`maroon`, :red:`red`, :magenta:`magenta`,
 
866
:fuchsia:`fuchsia`, :pink:`pink`, :orange:`orange`, :yellow:`yellow`,
 
867
:lime:`lime`, :green:`green`, :olive:`olive`, :teal:`teal`,
 
868
:cyan:`cyan`, :aqua:`aqua`, :blue:`blue`, :navy:`navy`,
 
869
:purple:`purple`
 
870
 
 
871
The class names and role names are the same as the colour names.  For
 
872
example, "``:orange:`text```" produces ":orange:`text`".
 
873
 
 
874
.. class:: incremental
 
875
 
 
876
Requires "``.. include:: <s5defs.txt>``".
 
877
 
 
878
 
 
879
Classes: Borderless Tables
 
880
==========================
 
881
 
 
882
.. class:: handout
 
883
 
 
884
   Here's an ordinary, unstyled table:
 
885
 
 
886
.. class:: incremental
 
887
 
 
888
   =========  =======
 
889
   Sometimes  borders
 
890
   ---------  -------
 
891
   are        useful.
 
892
   =========  =======
 
893
 
 
894
   And after applying "``.. class:: borderless``":
 
895
 
 
896
   .. class:: borderless
 
897
 
 
898
   =======  ==========  =======
 
899
   But      sometimes,  borders
 
900
   -------  ----------  -------
 
901
   are      **not**     wanted.
 
902
   =======  ==========  =======
 
903
 
 
904
 
 
905
Classes: Print-Only
 
906
===================
 
907
 
 
908
.. class:: handout
 
909
 
 
910
   Elements with ``class="print"`` attributes display their contents
 
911
   when printed, overriding ``class="hidden"``.
 
912
 
 
913
.. class:: incremental
 
914
 
 
915
   Example: the "target-notes" directive::
 
916
 
 
917
       .. topic:: Links
 
918
          :class: hidden print
 
919
 
 
920
          .. target-notes::
 
921
             :class: hidden print
 
922
 
 
923
.. container:: handout
 
924
 
 
925
   One good example, used in this document, is the "target-notes"
 
926
   directive.  For each external target (hyperlink) in the text, this
 
927
   directive generates a footnote containing the visible URL as
 
928
   content.  Footnote references are placed after each hyperlink
 
929
   reference.
 
930
 
 
931
   The "topic" directive is given a "class" attribute with values
 
932
   "hidden" and "print", so the entire topic will only be displayed
 
933
   when printed.  The "target-notes" directive also assigns a "class"
 
934
   attributes with values "hidden" and "print" to each of the footnote
 
935
   references it inserts throughout the text; they will only show up
 
936
   when printed.
 
937
 
 
938
.. class:: incremental
 
939
 
 
940
   Other uses may require "``.. include:: <s5defs.txt>``".
 
941
 
 
942
 
 
943
Useful Extensions For Firefox
 
944
=============================
 
945
 
 
946
* `Autohide`__
 
947
 
 
948
  .. class:: handout
 
949
 
 
950
  Automatically hides toolbars in full-screen mode.
 
951
 
 
952
  __ http://www.krickelkrackel.de/autohide/autohide.htm
 
953
 
 
954
* `Web Developer`__
 
955
 
 
956
  .. class:: handout
 
957
 
 
958
  Adds a context submenu and a toolbar with a lot of useful
 
959
  functionality, including the viewing and live editing of
 
960
  stylesheets, and sizing the browser window.
 
961
 
 
962
  __ http://chrispederick.com/work/webdeveloper/
 
963
 
 
964
 
 
965
To Do
 
966
=====
 
967
 
 
968
.. class:: incremental
 
969
 
 
970
   * Multi-display support:
 
971
 
 
972
     - speaker's notes on the laptop screen
 
973
     - slides on the projector
 
974
     - two views stay in sync
 
975
     - presentation controlled from either display
 
976
 
 
977
   * Add timeout to incremental style.
 
978
 
 
979
     .. class:: handout
 
980
 
 
981
     I.e., incremental-specific style should go away (revert to
 
982
     normal) after a certain interval.
 
983
 
 
984
   These will require some serious JavaScript-fu!
 
985
 
 
986
 
 
987
That's All, Folks!
 
988
==================
 
989
 
 
990
.. class:: huge
 
991
 
 
992
   Further information:
 
993
   http://docutils.sf.net
 
994
 
 
995
   Docutils users' mailing list:
 
996
   docutils-users@lists.sf.net
 
997
 
 
998
   `Any questions?`
 
999
 
 
1000
 
 
1001
.. topic:: Links
 
1002
   :class: hidden print
 
1003
 
 
1004
   .. target-notes:: :class: hidden print