Changeset 27:3e2691696828
- Timestamp:
- 02/19/07 10:28:59 (21 months ago)
- Author:
- Tarek Ziad?? <tarek@…>
- Message:
-
new skin
- Location:
- PyCon07
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r26
|
r27
|
|
| 77 | 77 | |
| 78 | 78 | - Project developers, to... |
| 79 | | - build a shared knowledge |
| 80 | | - improve code quality |
| | 79 | |
| | 80 | - build a shared knowledge |
| | 81 | - improve code quality |
| | 82 | |
| 81 | 83 | - Community, to... |
| 82 | | - facilitate participation (e.g. non developers) |
| 83 | | - facilitate adoption and comprehension |
| | 84 | |
| | 85 | - facilitate participation (e.g. non developers) |
| | 86 | - facilitate adoption and comprehension |
| 84 | 87 | |
| 85 | 88 | Part 1 |
| … |
… |
|
| 117 | 120 | ========================== |
| 118 | 121 | |
| 119 | | -> let's do exercise #1 and #2 |
| | 122 | |smile| let's do exercise #1 and #2 |
| 120 | 123 | |
| 121 | 124 | Mastering reSTructuredText |
| … |
… |
|
| 141 | 144 | Writing should be done in two stages (Elbow, 1980): |
| 142 | 145 | |
| 143 | | - a free writing where ideas are written on the paper no matter the shape |
| 144 | | - a review stage where things are shaped |
| | 146 | - a free writing where ideas are written on the paper no matter the shape. |
| | 147 | - a review stage where things are structured and reviewed. |
| 145 | 148 | |
| 146 | 149 | Each stage should take 50% of the time. |
| | 150 | |
| | 151 | |important| Split you writing time in two phase |
| | 152 | |
| 147 | 153 | |
| 148 | 154 | Targeted readership |
| 149 | 155 | =================== |
| 150 | 156 | |
| 151 | | Focus on your target when you write a document (RÃŒping, 2003). Assume their |
| 152 | | background knowledge to restrict the scope of the documentation |
| | 157 | Focus on your target when you write a document (RÃŒping, 2003). |
| | 158 | |
| | 159 | Assume their background knowledge to restrict the scope of the documentation. |
| | 160 | |
| | 161 | |important| A *prerequest* section can help a lot. |
| 153 | 162 | |
| 154 | 163 | Focused information |
| 155 | 164 | =================== |
| 156 | 165 | |
| 157 | | A document is about a clear focus. A precise title for each section and |
| 158 | | the document itself, and a summary can help. |
| | 166 | A document is about a clear focus. |
| | 167 | |
| | 168 | A precise title for each section and the document itself, and a summary |
| | 169 | can help. |
| | 170 | |
| | 171 | |important| If you cannot easily name the document or one of its section, |
| | 172 | there's a problem |
| 159 | 173 | |
| 160 | 174 | Realistic examples |
| … |
… |
|
| 162 | 176 | |
| 163 | 177 | Drop the *foo* and *bar* habits. Examples must be real-life examples, and |
| 164 | | usable as-is. |
| | 178 | usable as-is. |
| | 179 | |
| | 180 | Neh:: |
| | 181 | |
| | 182 | >>> from package import graph |
| | 183 | >>> foo = grahp.calculateSquare(1, 1, 1, 1) |
| | 184 | >>> bar = stuff.renderSquare(foo) |
| | 185 | |
| | 186 | Better:: |
| | 187 | |
| | 188 | >>> from package import stuff |
| | 189 | >>> square = stuff.calculateSquare(1, 7, 1, 10) |
| | 190 | >>> square_view = stuff.renderSquare(square) |
| 165 | 191 | |
| 166 | 192 | "Light but sufficient" approach |
| … |
… |
|
| 168 | 194 | |
| 169 | 195 | A working software is more important than the best documentation in the world |
| 170 | | (Ambler, 2002). *Quality over Quantity* is the best rule. |
| | 196 | (Ambler, 2002). |
| | 197 | |
| | 198 | *Quality over Quantity* is the best rule. |
| | 199 | |
| | 200 | |important| Spending too much time to find something in the documentation is a |
| | 201 | bad sign. |
| | 202 | |
| | 203 | |important| Think documents like code: always limit the size of sections, and |
| | 204 | documents: modularized documentation is the key. |
| 171 | 205 | |
| 172 | 206 | Structured documents |
| … |
… |
|
| 180 | 214 | - references |
| 181 | 215 | - glossary |
| 182 | | - tables |
| 183 | | - diagrams |
| | 216 | - tables and diagrams |
| | 217 | |
| | 218 | |important| Never write a document that doesn't have a template |
| 184 | 219 | |
| 185 | 220 | Writing techniques and tips |
| 186 | 221 | =========================== |
| 187 | 222 | |
| 188 | | Distribution of tipsheet, let's do exercise #3 |
| 189 | | |
| | 223 | Distribution of tipsheet, let's do exercise #3, and apply the laws |smile| |
| | 224 | |
| | 225 | Team writing |
| | 226 | ============ |
| | 227 | |
| | 228 | Pair-writing ensures: |
| | 229 | |
| | 230 | - understandable documents |
| | 231 | - increased and homogeneous quality |
| | 232 | |
| | 233 | |important| The best pair is made with the end-user |
| | 234 | |
| | 235 | |important| Each document should have a champion, though. |
| 190 | 236 | |
| 191 | 237 | XXX |
| | 238 | |
| 192 | 239 | Using documents for TDD |
| 193 | 240 | ======================= |
| … |
… |
|
| 201 | 248 | |
| 202 | 249 | |
| 203 | | |
| | 250 | .. |smile| image:: media/smile.png |
| | 251 | .. |important| image:: media/important.png |
| | 252 | |
-
|
r25
|
r27
|
|
| | 1 | /* This file has been placed in the public domain. */ |
| 1 | 2 | /* The following styles size, place, and layer the slide components. |
| 2 | 3 | Edit these if you want to change the overall slide layout. |
| 3 | 4 | The commented lines can be uncommented (and modified, if necessary) |
| 4 | | to help you with the rearrangement process. */ |
| | 5 | to help you with the rearrangement process. */ |
| 5 | 6 | |
| 6 | 7 | /* target = 1024x768 */ |
| 7 | 8 | |
| 8 | 9 | div#header, div#footer, .slide {width: 100%; top: 0; left: 0;} |
| 9 | | div#header {top: 0; height: 3em; z-index: 1;} |
| | 10 | div#header {position: fixed; top: 0; height: 3em; z-index: 1;} |
| 10 | 11 | div#footer {top: auto; bottom: 0; height: 2.5em; z-index: 5;} |
| 11 | | .slide {top: 0; width: 92%; padding: 3.5em 4% 4%; z-index: 2; list-style: none;} |
| | 12 | .slide {top: 0; width: 92%; padding: 2.5em 4% 4%; z-index: 2;} |
| 12 | 13 | div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;} |
| 13 | 14 | div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; |
| 14 | 15 | margin: 0;} |
| 15 | | #currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; z-index: 10;} |
| | 16 | #currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; |
| | 17 | z-index: 10;} |
| 16 | 18 | html>body #currentSlide {position: fixed;} |
| 17 | 19 | |
-
|
r25
|
r27
|
|
| | 1 | /* This file has been placed in the public domain. */ |
| 1 | 2 | /* DO NOT CHANGE THESE unless you really want to break Opera Show */ |
| 2 | 3 | .slide { |
-
|
r25
|
r27
|
|
| 1 | | /* don't change this unless you want the layout stuff to show up in the outline view! */ |
| | 1 | /* This file has been placed in the public domain. */ |
| | 2 | /* Don't change this unless you want the layout stuff to show up in the |
| | 3 | outline view! */ |
| 2 | 4 | |
| 3 | 5 | .layout div, #footer *, #controlForm * {display: none;} |
| … |
… |
|
| 10 | 12 | |
| 11 | 13 | #slide0 h1, #slide0 h2, #slide0 h3, #slide0 h4 {border: none; margin: 0;} |
| 12 | | #slide0 h1 {padding-top: 1.5em;} |
| 13 | | .slide h1 {margin: 1.5em 0 0; padding-top: 0.25em; |
| 14 | | border-top: 1px solid #888; border-bottom: 1px solid #AAA;} |
| 15 | 14 | #toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;} |
| | 15 | |
| | 16 | .outline {display: inline ! important;} |
-
|
r25
|
r27
|
|
| | 1 | /* This file has been placed in the public domain. */ |
| 1 | 2 | /* Following are the presentation styles -- edit away! */ |
| 2 | 3 | |
| 3 | | body {background: #FFF url(bodybg.gif) -16px 0 no-repeat; color: #000; font-size: 2em;} |
| | 4 | html, body {margin: 0; padding: 0;} |
| | 5 | body { |
| | 6 | background: white; |
| | 7 | color: black; |
| | 8 | background: white url(gray-python-half-head.png) right 0 no-repeat; |
| | 9 | } |
| | 10 | /* Replace the background style above with the style below (and again for |
| | 11 | div#header) for a graphic: */ |
| | 12 | /* background: white url(bodybg.gif) -16px 0 no-repeat; */ |
| 4 | 13 | :link, :visited {text-decoration: none; color: #00C;} |
| 5 | 14 | #controls :active {color: #88A !important;} |
| 6 | 15 | #controls :focus {outline: 1px dotted #227;} |
| 7 | 16 | h1, h2, h3, h4 {font-size: 100%; margin: 0; padding: 0; font-weight: inherit;} |
| 8 | | ul, pre {margin: 0; line-height: 1em;} |
| 9 | | html, body {margin: 0; padding: 0;} |
| 10 | 17 | |
| 11 | | blockquote, q {font-style: italic;} |
| 12 | | blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;} |
| | 18 | blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em;} |
| 13 | 19 | blockquote p {margin: 0;} |
| 14 | | blockquote i {font-style: normal;} |
| 15 | | blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;} |
| 16 | | blockquote b i {font-style: italic;} |
| 17 | 20 | |
| 18 | 21 | kbd {font-weight: bold; font-size: 1em;} |
| 19 | 22 | sup {font-size: smaller; line-height: 1px;} |
| 20 | 23 | |
| 21 | | .slide code {padding: 2px 0.25em; font-weight: bold; color: #533;} |
| 22 | | .slide code.bad, code del {color: red;} |
| 23 | | .slide code.old {color: silver;} |
| 24 | | .slide pre {padding: 0; margin: 0.25em 0 0.5em 0.5em; color: #533; font-size: 90%;} |
| 25 | | .slide pre code {display: block;} |
| 26 | | .slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;} |
| 27 | | .slide li {margin-top: 0.75em; margin-right: 0;} |
| 28 | | .slide ul ul {line-height: 1;} |
| 29 | | .slide ul ul li {margin: .2em; font-size: 85%; list-style: square;} |
| | 24 | .slide pre {padding: 0; margin-left: 0; margin-right: 0; font-size: 90%;} |
| | 25 | .slide ul li {font-size: 110%; padding: 0.2em;} |
| | 26 | .slide ul ul li {list-style: square; font-size: 100%} |
| 30 | 27 | .slide img.leader {display: block; margin: 0 auto;} |
| | 28 | .slide tt {font-size: 90%;} |
| 31 | 29 | |
| 32 | | div#header, div#footer {background: #005; color: #AAB; |
| 33 | | font-family: Verdana, Helvetica, sans-serif;} |
| 34 | | div#header {background: #005 url(bodybg.gif) -16px 0 no-repeat; |
| 35 | | line-height: 1px;} |
| | 30 | div#header, div#footer {color: #AAB; font-family: sans-serif;} |
| | 31 | div#header {background: #000 url(afpy.png) 20px center no-repeat} |
| | 32 | div#footer {background: #000} |
| | 33 | /* background: #005 url(bodybg.gif) -16px 0 no-repeat; */ |
| 36 | 34 | div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0;} |
| 37 | | #footer h1, #footer h2 {display: block; padding: 0 1em;} |
| 38 | | #footer h2 {font-style: italic;} |
| | 35 | #footer h1 {display: block; padding: 0 1em;} |
| | 36 | #footer h2 {display: block; padding: 0.8em 1em 0;} |
| 39 | 37 | |
| 40 | | div.long {font-size: 0.75em;} |
| 41 | | .slide h1 {position: absolute; top: 0.7em; left: 87px; z-index: 1; |
| 42 | | margin: 0; padding: 0.3em 0 0 50px; white-space: nowrap; |
| 43 | | font: bold 150%/1em Helvetica, sans-serif; text-transform: capitalize; |
| 44 | | color: #DDE; background: #005;} |
| 45 | | .slide h3 {font-size: 130%;} |
| | 38 | .slide {font-size: 1.2em;} |
| | 39 | .slide h1 {position: absolute; top: 0.45em; z-index: 1; |
| | 40 | margin: 0; padding-left: 80px; white-space: nowrap; |
| | 41 | font: bold 150% sans-serif; color: #DDE;} |
| | 42 | .slide h2 {font: bold 120%/1em sans-serif; padding-top: 0.5em;} |
| | 43 | .slide h3 {font: bold 100% sans-serif; padding-top: 0.5em;} |
| 46 | 44 | h1 abbr {font-variant: small-caps;} |
| 47 | 45 | |
| 48 | 46 | div#controls {position: absolute; left: 50%; bottom: 0; |
| 49 | | width: 50%; |
| 50 | | text-align: right; font: bold 0.9em Verdana, Helvetica, sans-serif;} |
| 51 | | html>body div#controls {position: fixed; padding: 0 0 1em 0; |
| 52 | | top: auto;} |
| | 47 | width: 50%; text-align: right; font: bold 0.9em sans-serif;} |
| | 48 | html>body div#controls {position: fixed; padding: 0 0 1em 0; top: auto;} |
| 53 | 49 | div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; |
| 54 | 50 | margin: 0; padding: 0;} |
| 55 | | #controls #navLinks a {padding: 0; margin: 0 0.5em; |
| 56 | | background: #005; border: none; color: #779; |
| 57 | | cursor: pointer;} |
| | 51 | #controls #navLinks a {padding: 0; margin: 0 0.5em; |
| | 52 | border: none; color: #779; cursor: pointer;} |
| 58 | 53 | #controls #navList {height: 1em;} |
| 59 | | #controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #DDD; color: #227;} |
| | 54 | #controls #navList #jumplist {position: absolute; bottom: 0; right: 0; |
| | 55 | background: #DDD; color: #227;} |
| 60 | 56 | |
| 61 | | #currentSlide {text-align: center; font-size: 0.5em; color: #449;} |
| | 57 | #currentSlide {text-align: center; font-size: 0.5em; color: #449; |
| | 58 | font-family: sans-serif; font-weight: bold;} |
| 62 | 59 | |
| 63 | | #slide0 {padding-top: 3.5em; font-size: 90%;} |
| 64 | | #slide0 h1 {position: static; margin: 1em 0 0; padding: 0; |
| 65 | | font: bold 2em Helvetica, sans-serif; white-space: normal; |
| 66 | | color: #000; background: transparent;} |
| 67 | | #slide0 h2 {font: bold italic 1em Helvetica, sans-serif; margin: 0.25em;} |
| | 60 | #slide0 {padding-top: 1.5em} |
| | 61 | #slide0 h1 {position: static; margin: 1em 0 0; padding: 0; color: #000; |
| | 62 | font: bold 2em sans-serif; white-space: normal; background: transparent;} |
| | 63 | #slide0 h2 {font: bold italic 1em sans-serif; margin: 0.25em;} |
| 68 | 64 | #slide0 h3 {margin-top: 1.5em; font-size: 1.5em;} |
| 69 | 65 | #slide0 h4 {margin-top: 0; font-size: 1em;} |
| … |
… |
|
| 71 | 67 | ul.urls {list-style: none; display: inline; margin: 0;} |
| 72 | 68 | .urls li {display: inline; margin: 0;} |
| 73 | | .note {display: none;} |
| 74 | 69 | .external {border-bottom: 1px dotted gray;} |
| 75 | 70 | html>body .external {border-bottom: none;} |
| 76 | 71 | .external:after {content: " \274F"; font-size: smaller; color: #77B;} |
| 77 | 72 | |
| 78 | | .incremental, .incremental *, .incremental *:after {color: #DDE; visibility: visible;} |
| | 73 | .incremental, .incremental *, .incremental *:after {visibility: visible; |
| | 74 | color: white; border: 0;} |
| 79 | 75 | img.incremental {visibility: hidden;} |
| 80 | | .slide .current {color: #B02;} |
| | 76 | .slide .current {color: #606;} |
| 81 | 77 | |
| | 78 | .slide-display {display: inline ! important;} |
| 82 | 79 | |
| 83 | | /* diagnostics |
| | 80 | .huge {font-family: sans-serif; font-weight: bold; font-size: 150%;} |
| | 81 | .big {font-family: sans-serif; font-weight: bold; font-size: 120%;} |
| | 82 | .small {font-size: 75%;} |
| | 83 | .tiny {font-size: 50%;} |
| | 84 | .huge tt, .big tt, .small tt, .tiny tt {font-size: 115%;} |
| | 85 | .huge pre, .big pre, .small pre, .tiny pre {font-size: 115%;} |
| 84 | 86 | |
| | 87 | .maroon {color: maroon;} |
| | 88 | .red {color: red;} |
| | 89 | .magenta {color: magenta;} |
| | 90 | .fuchsia {color: fuchsia;} |
| | 91 | .pink {color: #FAA;} |
| | 92 | .orange {color: orange;} |
| | 93 | .yellow {color: yellow;} |
| | 94 | .lime {color: lime;} |
| | 95 | .green {color: green;} |
| | 96 | .olive {color: olive;} |
| | 97 | .teal {color: teal;} |
| | 98 | .cyan {color: cyan;} |
| | 99 | .aqua {color: aqua;} |
| | 100 | .blue {color: blue;} |
| | 101 | .navy {color: navy;} |
| | 102 | .purple {color: purple;} |
| | 103 | .black {color: black;} |
| | 104 | .gray {color: gray;} |
| | 105 | .silver {color: silver;} |
| | 106 | .white {color: white;} |
| | 107 | |
| | 108 | .left {text-align: left ! important;} |
| | 109 | .center {text-align: center ! important;} |
| | 110 | .right {text-align: right ! important;} |
| | 111 | |
| | 112 | .animation {position: relative; margin: 1em 0; padding: 0;} |
| | 113 | .animation img {position: absolute;} |
| | 114 | |
| | 115 | /* Docutils-specific overrides */ |
| | 116 | |
| | 117 | .slide table.docinfo {margin: 1em 0 0.5em 2em;} |
| | 118 | |
| | 119 | pre.literal-block, pre.doctest-block {background-color: transparent;} |
| | 120 | |
| | 121 | tt.docutils {background-color: transparent;} |
| | 122 | |
| | 123 | /* diagnostics */ |
| | 124 | /* |
| 85 | 125 | li:after {content: " [" attr(class) "]"; color: #F88;} |
| 86 | | */ |
| | 126 | div:before {content: "[" attr(class) "]"; color: #F88;} |
| | 127 | */ |
-
|
r25
|
r27
|
|
| 1 | | /* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */ |
| | 1 | /* This file has been placed in the public domain. */ |
| | 2 | /* The following rule is necessary to have all slides appear in print! |
| | 3 | DO NOT REMOVE IT! */ |
| 2 | 4 | .slide, ul {page-break-inside: avoid; visibility: visible !important;} |
| 3 | 5 | h1 {page-break-after: avoid;} |
| … |
… |
|
| 11 | 13 | #slide0 {margin-bottom: 3em;} |
| 12 | 14 | |
| 13 | | h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;} |
| 14 | | .extra {background: transparent !important;} |
| 15 | | div.extra, pre.extra, .example {font-size: 10pt; color: #333;} |
| 16 | | ul.extra a {font-weight: bold;} |
| 17 | | p.example {display: none;} |
| 18 | | |
| 19 | 15 | #header {display: none;} |
| 20 | | #footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;} |
| | 16 | #footer h1 {margin: 0; border-bottom: 1px solid; color: gray; |
| | 17 | font-style: italic;} |
| 21 | 18 | #footer h2, #controls {display: none;} |
| 22 | 19 | |
| 23 | | /* The following rule keeps the layout stuff out of print. Remove at your own risk! */ |
| | 20 | .print {display: inline ! important;} |
| | 21 | |
| | 22 | /* The following rule keeps the layout stuff out of print. |
| | 23 | Remove at your own risk! */ |
| 24 | 24 | .layout, .layout * {display: none !important;} |
-
|
r25
|
r27
|
|
| 1 | | /* Do not edit or override these styles! The system will likely break if you do. */ |
| | 1 | /* This file has been placed in the public domain. */ |
| | 2 | /* Do not edit or override these styles! |
| | 3 | The system will likely break if you do. */ |
| 2 | 4 | |
| 3 | 5 | div#header, div#footer, div#controls, .slide {position: absolute;} |
-
|
r25
|
r27
|
|
| 1 | | @import url(s5-core.css); /* required to make the slide show run at all */ |
| 2 | | @import url(framing.css); /* sets basic placement and size of slide components */ |
| 3 | | @import url(pretty.css); /* stuff that makes the slides look better than blah */ |
| | 1 | /* This file has been placed in the public domain. */ |
| | 2 | |
| | 3 | /* required to make the slide show run at all */ |
| | 4 | @import url(s5-core.css); |
| | 5 | |
| | 6 | /* sets basic placement and size of slide components */ |
| | 7 | @import url(framing.css); |
| | 8 | |
| | 9 | /* styles that make the slides look good */ |
| | 10 | @import url(pretty.css); |
-
|
r25
|
r27
|
|
| 1 | 1 | // S5 v1.1 slides.js -- released into the Public Domain |
| | 2 | // Modified for Docutils (http://docutils.sf.net) by David Goodger |
| 2 | 3 | // |
| 3 | | // Please see http://www.meyerweb.com/eric/tools/s5/credits.html for information |
| 4 | | // about all the wonderful and talented contributors to this code! |
| | 4 | // Please see http://www.meyerweb.com/eric/tools/s5/credits.html for |
| | 5 | // information about all the wonderful and talented contributors to this code! |
| 5 | 6 | |
| 6 | 7 | var undef; |
| … |
… |
|
| 8 | 9 | var snum = 0; |
| 9 | 10 | var smax = 1; |
| | 11 | var slideIDs = new Array(); |
| 10 | 12 | var incpos = 0; |
| 11 | 13 | var number = undef; |
| … |
… |
|
| 81 | 83 | |
| 82 | 84 | var did = 'slide' + n.toString(); |
| 83 | | obj.setAttribute('id',did); |
| | 85 | if (obj.getAttribute('id')) { |
| | 86 | slideIDs[n] = obj.getAttribute('id'); |
| | 87 | } |
| | 88 | else { |
| | 89 | obj.setAttribute('id',did); |
| | 90 | slideIDs[n] = did; |
| | 91 | } |
| 84 | 92 | if (isOp) continue; |
| 85 | 93 | |
| … |
… |
|
| 102 | 110 | function currentSlide() { |
| 103 | 111 | var cs; |
| | 112 | var footer_nodes; |
| | 113 | var vis = 'visible'; |
| 104 | 114 | if (document.getElementById) { |
| 105 | 115 | cs = document.getElementById('currentSlide'); |
| | 116 | footer_nodes = document.getElementById('footer').childNodes; |
| 106 | 117 | } else { |
| 107 | 118 | cs = document.currentSlide; |
| | 119 | footer = document.footer.childNodes; |
| 108 | 120 | } |
| 109 | 121 | cs.innerHTML = '<span id="csHere">' + snum + '<\/span> ' + |
| … |
… |
|
| 111 | 123 | '<span id="csTotal">' + (smax-1) + '<\/span>'; |
| 112 | 124 | if (snum == 0) { |
| 113 | | cs.style.visibility = 'hidden'; |
| 114 | | } else { |
| 115 | | cs.style.visibility = 'visible'; |
| 116 | | } |
| | 125 | vis = 'hidden'; |
| | 126 | } |
| | 127 | cs.style.visibility = vis; |
| | 128 | for (var i = 0; i < footer_nodes.length; i++) { |
| | 129 | if (footer_nodes[i].nodeType == 1) { |
| | 130 | footer_nodes[i].style.visibility = vis; |
| | 131 | } |
| | 132 | } |
| 117 | 133 | } |
| 118 | 134 | |
| … |
… |
|
| 120 | 136 | if (document.getElementById('slideProj').disabled || step == 0) return; |
| 121 | 137 | var jl = document.getElementById('jumplist'); |
| 122 | | var cid = 'slide' + snum; |
| | 138 | var cid = slideIDs[snum]; |
| 123 | 139 | var ce = document.getElementById(cid); |
| 124 | 140 | if (incrementals[snum].length > 0) { |
| … |
… |
|
| 135 | 151 | } else |
| 136 | 152 | snum = parseInt(jl.value); |
| 137 | | var nid = 'slide' + snum; |
| | 153 | var nid = slideIDs[snum]; |
| 138 | 154 | var ne = document.getElementById(nid); |
| 139 | 155 | if (!ne) { |
| 140 | | ne = document.getElementById('slide0'); |
| | 156 | ne = document.getElementById(slideIDs[0]); |
| 141 | 157 | snum = 0; |
| 142 | 158 | } |
| … |
… |
|
| 290 | 306 | e = window.event; |
| 291 | 307 | } else target = e.target; |
| 292 | | if (target.getAttribute('href') != null || hasValue(target.rel, 'external') || isParentOrSelf(target, 'controls') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object')) return true; |
| | 308 | if (target.href != null || hasValue(target.rel, 'external') || isParentOrSelf(target, 'controls') || isParentOrSelf(target,'embed') || isParentOrSelf(target, 'object')) return true; |
| 293 | 309 | if (!e.which || e.which == 1) { |
| 294 | 310 | if (!incrementals[snum] || incpos >= incrementals[snum].length) { |
| … |
… |
|
| 301 | 317 | |
| 302 | 318 | function findSlide(hash) { |
| 303 | | var target = null; |
| 304 | | var slides = GetElementsWithClassName('*','slide'); |
| 305 | | for (var i = 0; i < slides.length; i++) { |
| 306 | | var targetSlide = slides[i]; |
| 307 | | if ( (targetSlide.name && targetSlide.name == hash) |
| 308 | | || (targetSlide.id && targetSlide.id == hash) ) { |
| 309 | | target = targetSlide; |
| 310 | | break; |
| 311 | | } |
| 312 | | } |
| 313 | | while(target != null && target.nodeName != 'BODY') { |
| 314 | | if (hasClass(target, 'slide')) { |
| 315 | | return parseInt(target.id.slice(5)); |
| 316 | | } |
| 317 | | target = target.parentNode; |
| | 319 | var target = document.getElementById(hash); |
| | 320 | &n |