-
Notifications
You must be signed in to change notification settings - Fork 5
/
xoxo-structure-ref.html
346 lines (254 loc) · 16.7 KB
/
xoxo-structure-ref.html
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
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>S5 1.1 Reference (XOXO Version)</title>
<link rel="stylesheet" type="text/css" href="s5.css" media="screen">
<link rel="stylesheet" type="text/css" href="s5ref.css" media="screen">
</head>
<body id="www-meyerweb-com" class="tools">
<h2>S5 1.1 Reference (XOXO Version)</h2>
<p>
This document provides a full reference to the S5 presentation file format based on the <a href="http://microformats.org/wiki/xoxo">XOXO microformat</a>. The following conventions are used:
</p>
<ul>
<li>Content <span class="required">styled in this manner</span> indicates something that is required by the S5 1.1 format.</li>
<li>Content <span class="recommended">styled in this manner</span> indicates something that is recommended in the S5 1.1 format.</li>
<li>Content <span class="optional">styled in this manner</span> indicates something that is optional in the S5 1.1 format.</li>
<li>Content <span class="generated">styled in this manner</span> indicates something that is generated by the S5 1.1 JavaScript. These are not provided in the code listings.</li>
</ul>
<p>
A complete example file can be found at the end of this document.
</p>
<h3>Document Skeleton</h3>
<pre>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> </head>
<body>
<div class="layout"> </div>
<ol class="presentation xoxo"> </ol>
</body>
</html>
</pre>
<p>
This is the basic top-level skeleton for an article file. Most of these top-level elements all have descendent elements, which are explained by the rest of this document.
</p>
<dl>
<dt class="required"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></dt>
<dd>The document type used for S5 slide shows. XHTML 1.0 Strict was chosen to allow compatibility with OSF 1.0.</dd>
<dt class="required"><html xmlns="http://www.w3.org/1999/xhtml"> </html></dt>
<dd>The root element of the document, which contains pretty much everything else. Required by the DOCTYPE.</dd>
<dt class="required"><head> </head></dt>
<dd>This element contains the header information for the presentation, such as title of the presentation, metadata about the presentation's author, links to style sheets and scripts, and so on.</dd>
<dt class="required"><body> </body></dt>
<dd>The actual body of the presentation, containing all of the content and components that will be displayed to the viewer. Not required by the DOCTYPE, but required for S5 compliance.</dd>
<dt class="required"><div class="layout"> </div></dt>
<dd>This element contains all of the bits of layout that appear on every slide, including the header and footer and the navigation controls.</dd>
<dt class="required"><ol class="presentation xoxo"> </ol></dt>
<dd>A container for all of the individual slides.</dd>
</dl>
<h3><code>head</code> — The Document's Metadata</h3>
<pre>
<head>
<title><i>[slide show title]</i></title>
<meta name="version" content="S5 1.1" />
<span class="optional"><meta name="generator" content="<i>[generating program]</i>" />
<meta name="presdate" content="<i>[presentation date]</i>" />
<meta name="author" content="<i>[author's name]</i>" />
<meta name="company" content="<i>[author's employer]</i>" />
<meta http-equiv="Content-Type" content="<i>[content-type]</i>" />
<meta name="defaultView" content="<i>[value]</i>" />
<meta name="controlVis" content="<i>[value]</i>" /></span>
<link rel="stylesheet" href="v11b1/slides.css" type="text/css" media="projection" id="slideProj" />
<link rel="stylesheet" href="v11b1/outline.css" type="text/css" media="screen" id="outlineStyle" />
<link rel="stylesheet" href="v11b1/print.css" type="text/css" media="print" id="slidePrint" />
<link rel="stylesheet" href="v11b1/opera.css" type="text/css" media="projection" id="operaFix" />
<script src="ui/slides.js" type="text/javascript"></script>
</head>
</pre>
<p>
intro
</p>
<dl>
<dt class="required"><title><i>[slide show title]</i></title></dt>
<dd>Contains the title of the presentation.</dd>
<dt class="required"><meta name="version" content="S5 1.1" /></dt>
<dd>Provides the exact markup format being used for the presentation file. Copied from OSF 1.0.</dd>
<dt class="optional"><meta name="generator" content="<i>[generating program]</i>" /></dt>
<dd>Indicates the tool that was used to create the presentation file. If a tool was used, this element is <strong>required</strong>. If the presentation was authored by hand, the value can be set to the author's name or the text editor they used; otherwise, the element can be omitted. Copied from OSF 1.0.</dd>
<dt class="optional"><meta name="presdate" content="<i>[presentation date]</i>" /></dt>
<dd>The date on which the presentation was (or is to be) delivered. Copied from OSF 1.0.</dd>
<dt class="optional"><meta name="author" content="<i>[author's name]</i>" /></dt>
<dd>The name of the presentation's primary author. There is currently no ability to designate secondary authors. Copied from OSF 1.0.</dd>
<dt class="optional"><meta name="company" content="<i>[author's employer]</i>" /></dt>
<dd>The company for which the primary presenter works. This could be more broadly construed to be the author's primary affiliation, whether or not it is a corporate entity. Copied from OSF 1.0.</dd>
<dt class="optional"><meta http-equiv="Content-Type" content="<i>[content-type]</i>" /></dt>
<dd>Indicates the presentation file's content type. One possible value is <code>application/xhtml+xml;charset=utf-8</code>.</dd>
<dt class="optional"><meta name="defaultView" content="<i>[value]</i>" /></dt>
<dd>Sets the initial view for the presentation using one of two values: <code>slideshow</code> and <code>outline</code>. The default value is <code>slideshow</code>.</dd>
<dt class="optional"><meta name="controlVis" content="<i>[value]</i>" /></dt>
<dd>Sets the default presentation of the controls to be either <code>visible</code> or <code>hidden</code>. The default value is <code>visible</code>.</dd>
<dt class="required"><link rel="stylesheet" href="ui/slides.css" type="text/css" media="projection" id="slideProj" /></dt>
<dd>This links to the CSS that drives the visual presentation of the slide show. The referenced file consists of three <code>@import</code> directives that point to still other style sheets; see the <a href="filemap.html">file map</a> for more details.</dd>
<dt class="required"><link rel="stylesheet" href="ui/outline.css" type="text/css" media="print" id="outlineStyle" /></dt>
<dd>This links to the style sheet used to present the outline view of the slide show.</dd>
<dt class="required"><link rel="stylesheet" href="ui/print.css" type="text/css" media="print" id="slidePrint" /></dt>
<dd>This links to the print-medium style sheet, which contains directives that format the presentation for printing.</dd>
<dt class="required"><link rel="stylesheet" href="ui/opera.css" type="text/css" media="projection" id="operaFix" /></dt>
<dd>This links to the style sheet that allows Opera to run the slide show through Opera Show.</dd>
<dt class="required"><script src="ui/slides.js" type="text/javascript"></script></dt>
<dd>This references the JavaScript file that make the slide show work.</dd>
</dl>
<h3>Layout Information</h3>
<pre>
<div class="layout">
<div id="controls"></div>
<div id="currentSlide"></div>
<div id="header"><i>[any header content]</i></div>
<div id="footer"><i>[any footer content]</i></div>
<span class="optional"><div class="topleft"><i>[top left layout bit]</i></div>
<div class="topright"><i>[top right layout bit]</i></div>
<div class="bottomleft"><i>[bottom left layout bit]</i></div>
<div class="bottomright"><i>[bottom right layout bit]</i></div></span>
</div>
</pre>
<dl>
<dt class="required"><div id="controls"></div></dt>
<dd>
This is the structural hook into which the slide navigation controls are filled in by the JavaScript. This includes the popup navigation menu, the forward/backward links, and the "style toggle" link. If no controls are desired, leave the markup in place and suppress its display via CSS, although doing so is <strong>strongly</strong> discouraged. It is strongly recommended that this element be left unfilled, since any content in the XHTML file will be overwritten by the JavaScript.
The markup generated by the JavaScript includes a few elements:
<dl>
<dt class="generated"><form id="controlForm"> </form></dt>
<dd>
This element encloses all the of the slide controls. Within it are two <tt>div</tt> elements, each of which contains the actual controls.
<dl>
<dt class="generated"><div id="navLinks"> </div></dt>
<dd>
<dl>
<dt class="generated"><a id="toggle">&#216;</a></dt>
<dd>The link used to switch the slide styles off and on.</dd>
<dt class="generated"><a id="prev">&laquo;</a></dt>
<dd>The link used to move to the previous slide.</dd>
<dt class="generated"><a id="next">&raquo;</a></dt>
<dd>The link used to move to the next slide.</dd>
</dl>
</dd>
<dt class="generated"><div id="navList"> </div></dt>
<dd>
<dl>
<dt class="generated"><select id="jumplist"></select></dt>
<dd>The foundation of the slide navigation list. The JavaScript generates a number of <tt>option</tt> elements within this <tt>select</tt>.</dd>
</dl>
</dd>
</dl>
</dd>
<dt class="required"><div id="currentSlide"></div></dt>
<dd>This is the structural hook into which the current progress indicator (e.g., "5 / 21") is filled in by the JavaScript. If no progress information is desired, leave the markup in place and suppress its display via CSS. It is strongly recommended that this element be left unfilled, since any content in the XHTML file will be overwritten by the JavaScript.
The markup generated by the JavaScript includes three elements:
<dl>
<dt class="generated"><span id="csHere"><i>[current slide number]</i></span></dt>
<dd>The number of the slide currently being displayed.</dd>
<dt class="generated"><span id="csSep"><i>/</i></span></dt>
<dd>The separator character between the current slide number and the total slides number; the character currently is a forward slash. A future version of S5 may allow this to be changed by a means other than editing the JavaScript file.</dd>
<dt class="generated"><span id="csTotal"><i>[total slides]</i></span></dt>
<dd>The total number of slides in the slide show. This count does not include the first slide in the presentation, which is numbered zero.</dd>
</dl>
</dd>
<dt class="required"><div id="header"><i>[any header content]</i></div></dt>
<dd>Any header content or effects are placed inside this element. Even if the header has no content, it should remain as an unfilled element.</dd>
<dt class="required"><div id="footer"> </div></dt>
<dd>
Any footer content or visual effects are placed inside this element.
</dd>
</dl></dd>
<dt class="optional"><div class="topleft"><i>[top left layout bit]</i></div>
<div class="topright"><i>[top right layout bit]</i></div>
<div class="bottomleft"><i>[bottom left layout bit]</i></div>
<div class="bottomright"><i>[bottom right layout bit]</i></div></dt>
<dd>These elements have a <tt>class</tt> attribute containing a value indicating their layout position, such as <code><div class="topleft"></code>. They may also be given an optional <tt>id</tt> attribute that refers to the relevant <tt>meta</tt> element, so editors can determine what information was positioned and use this to their advantage in the editing UI. Copied from OSF 1.0.</dd>
</dl>
<h3>The Slides</h3>
<pre>
<ol class="presentation xoxo">
<li class="slide">
<span class="recommended"><h1><i>[slide title]</i></h1></span>
<span class="optional"><div class="slidecontent"></span>
<i>[slide content]</i>
<span class="optional"></div></span>
<span class="optional"><div class="handout">
<i>[extra content not displayed in slide show]</i>
</div></span>
</li>
</ol>
</pre>
<dl>
<dt class="required"><li class="slide"> </li></dt>
<dd>
The presentation section of the file contains one or more slides, each one a list item. The contents of each slide are obviously up to the author of the presentation. This element contains a number of descendants.
<dl>
<dt class="recommended"><h1><i>[slide title]</i></h1></dt>
<dd>The contents of this element give the title of the individual slide. These contents are collected by the JavaScript and used to build the slide show's navigation menu. If the slide is untitled, it is recommended that an unfilled <tt>h1</tt> element be left in place.</dd>
<dt class="optional"><div class="slidecontent"> </div></dt>
<dd>The contents of the slide can optionally be wrapped in this <tt>div</tt>, although a slide can have content without having it placed inside this <tt>div</tt>. Note that while use of this element is optional, having actual content for a slide is highly recommended. The content of the slide can be any valid XHTML markup and content. A common slide would contain an unordered list of five or so talking points.</dd>
<dt class="optional"><div class="handout"> </div></dt>
<dd>This is used to enclose any extra information that should be included in the printed version of the presentation, but should not appear in the slide show. The contents can be any valid XHTML markup and content, and there is no restriction on length. As an example, a presentation on CSS might place examples of CSS techniques in one of these <tt>handout</tt> sections.</dd>
</dl>
</dd>
</dl>
<h3>Complete Example</h3>
<pre>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><i>[slide show title]</i></title>
<meta name="version" content="S5 1.1" />
<span class="optional"><meta name="generator" content="<i>[generating program]</i>" />
<meta name="presdate" content="<i>[presentation date]</i>" />
<meta name="author" content="<i>[author's name]</i>" />
<meta name="company" content="<i>[author's employer]</i>" />
<meta http-equiv="Content-Type" content="<i>[content-type]</i>" />
<meta name="defaultView" content="<i>[value]</i>" />
<meta name="controlVis" content="<i>[value]</i>" /></span>
<link rel="stylesheet" href="v11b1/slides.css" type="text/css" media="projection" id="slideProj" />
<link rel="stylesheet" href="v11b1/outline.css" type="text/css" media="screen" id="outlineStyle" />
<link rel="stylesheet" href="v11b1/print.css" type="text/css" media="print" id="slidePrint" />
<link rel="stylesheet" href="v11b1/opera.css" type="text/css" media="projection" id="operaFix" />
<script src="ui/slides.js" type="text/javascript"></script>
</head>
<body>
<div class="layout">
<div id="controls"></div>
<div id="currentSlide"></div>
<div id="header"><i>[any header content]</i></div>
<div id="footer"><i>[any footer content]</i></div>
<span class="optional"><div class="topleft"><i>[top left layout bit]</i></div>
<div class="topright"><i>[top right layout bit]</i></div>
<div class="bottomleft"><i>[bottom left layout bit]</i></div>
<div class="bottomright"><i>[bottom right layout bit]</i></div></span>
</div>
<ol class="presentation xoxo">
<li class="slide">
<span class="optional"><h1><i>[slide show title]</i></h1>
<h2><i>[slide show subtitle]</i></h2>
<h3><i>[author's name]</i></h3>
<h4><i>[author's employer]</i></h4></span>
</li>
<li class="slide">
<span class="recommended"><h1><i>[slide title]</i></h1></span>
<span class="optional"><div class="slidecontent"></span>
<i>[slide content]</i>
<span class="optional"></div></span>
<span class="optional"><div class="handout">
<i>[extra content not displayed in slide show]</i>
</div></span>
</li>
</ol>
</body>
</html>
</pre>
</body>
</html>