Commit 4f3a614a51eb9164b45cc257a1cdf2667d1b6fa7
1 parent
ee7faa1aad
Exists in
master
Premier essai de template Wize S5
Showing 13 changed files with 919 additions and 1 deletions Side-by-side Diff
- templates/html/Wize_S5.html
- templates/html/Wize_S5/ui/default/blank.gif
- templates/html/Wize_S5/ui/default/bodybg.gif
- templates/html/Wize_S5/ui/default/framing.css
- templates/html/Wize_S5/ui/default/iepngfix.htc
- templates/html/Wize_S5/ui/default/opera.css
- templates/html/Wize_S5/ui/default/outline.css
- templates/html/Wize_S5/ui/default/pretty.css
- templates/html/Wize_S5/ui/default/print.css
- templates/html/Wize_S5/ui/default/s5-core.css
- templates/html/Wize_S5/ui/default/slides.css
- templates/html/Wize_S5/ui/default/slides.js
- wize.rb
templates/html/Wize_S5.html
1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | |
2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
3 | + | |
4 | +<html xmlns="http://www.w3.org/1999/xhtml"> | |
5 | + | |
6 | +<head> | |
7 | +<title>[% title %]</title> | |
8 | +<!-- metadata --> | |
9 | +<meta name="generator" content="[% generator.name %]" /> | |
10 | +<meta charset="utf-8"/> | |
11 | +<meta name="version" content="S5 1.1" /> | |
12 | +<meta name="presdate" content="" /> | |
13 | +<meta name="author" content="" /> | |
14 | +<meta name="company" content="" /> | |
15 | +<!-- configuration parameters --> | |
16 | +<meta name="defaultView" content="slideshow" /> | |
17 | +<meta name="controlVis" content="hidden" /> | |
18 | +<!-- style sheet links --> | |
19 | +<link rel="stylesheet" | |
20 | + href="[% resource('common-spec/zim-variables.css') %]" > | |
21 | + | |
22 | +<link rel="stylesheet" href="[% resource('ui/default/slides.css') %]" type="text/css" media="projection" id="slideProj" /> | |
23 | +<link rel="stylesheet" href="[% resource('ui/default/outline.css') %]" type="text/css" media="screen" id="outlineStyle" /> | |
24 | +<link rel="stylesheet" href="[% resource('ui/default/print.css') %]" type="text/css" media="print" id="slidePrint" /> | |
25 | +<link rel="stylesheet" href="[% resource('ui/default/opera.css') %]" type="text/css" media="projection" id="operaFix" /> | |
26 | + | |
27 | + <link rel="stylesheet" | |
28 | + href="[% resource('common/zim-style.css') %]" > | |
29 | + <link rel="stylesheet" | |
30 | + href="[% resource('common/zim-table-style.css') %]" > | |
31 | + <link rel="stylesheet" | |
32 | + href="[% resource('common/zim-special.css') %]" > | |
33 | + <link rel="stylesheet" | |
34 | + href="[% resource('common/zim-hljs.css') %]" > | |
35 | + <link rel="stylesheet" | |
36 | + href="[% resource('common-spec/zim-pres-override.css') %]" > | |
37 | + | |
38 | + <link rel="stylesheet" | |
39 | + href="[% resource('common/hljs/styles/sunburst.css') %]" > | |
40 | + | |
41 | + <!-- hljs --> | |
42 | + <script src="[% resource('common/hljs/highlight.pack.js') %]"></script> | |
43 | + | |
44 | + <script src="[% resource('common/wizefunc.js') %]"></script> | |
45 | + | |
46 | +<!-- S5 JS --> | |
47 | +<script src="[% resource('ui/default/slides.js') %]" type="text/javascript"></script> | |
48 | + <style type='text/css'> | |
49 | + * { font-family: sans-serif } | |
50 | + img { | |
51 | + display: block; | |
52 | + margin-left: auto; | |
53 | + margin-right: auto; | |
54 | + } | |
55 | + tt { | |
56 | + font-size: inherit; | |
57 | + } | |
58 | + | |
59 | + td, th { | |
60 | + font-size:80%; | |
61 | + } | |
62 | + | |
63 | + code { | |
64 | + font-size:80%; | |
65 | + } | |
66 | + body { | |
67 | + background: var(--main-pres-background-color); | |
68 | + background-image: url('[% resource("common-spec/fond-pres.jpg") %]'); | |
69 | + background-repeat: var(--main-pres-background-repeat); | |
70 | + background-size: var(--main-pres-background-size); | |
71 | + } | |
72 | + | |
73 | +</style> | |
74 | +</head> | |
75 | +<body> | |
76 | + | |
77 | +<div class="layout"> | |
78 | +<div id="controls"><!-- DO NOT EDIT --></div> | |
79 | +<div id="currentSlide"><!-- DO NOT EDIT --></div> | |
80 | +<div id="header"> | |
81 | +<div id="logoDivId" style="position: absolute; right: 1em;"> | |
82 | +<img id="logoImgId" src='[% resource("common-spec/logo-pres.png") %]' alt=' '> | |
83 | +</div> | |
84 | +</div> | |
85 | +<div id="footer"> | |
86 | +<h2 id="footinfo1"></h2> | |
87 | +<h2 id="footinfo2"></h2> | |
88 | +</div> | |
89 | + | |
90 | +</div> | |
91 | + | |
92 | +<div class="presentation"> | |
93 | + | |
94 | +[% options.empty_lines = "remove" %] | |
95 | + | |
96 | +[% FOR page IN pages %] | |
97 | +[% FOR section IN page.headings(1) %] | |
98 | +<div class="slide"> | |
99 | +[% section.content %] | |
100 | +</div> | |
101 | +[% END %] | |
102 | +[% END %] | |
103 | + | |
104 | +</div> | |
105 | +<script src="[% resource('common/go-hljs.js') %]"></script> | |
106 | +<script>tagToInfo();</script> | |
107 | + | |
108 | +</body> | |
109 | +</html> |
templates/html/Wize_S5/ui/default/blank.gif
49 Bytes
templates/html/Wize_S5/ui/default/bodybg.gif
9.88 KB
templates/html/Wize_S5/ui/default/framing.css
1 | +/* The following styles size, place, and layer the slide components. | |
2 | + Edit these if you want to change the overall slide layout. | |
3 | + The commented lines can be uncommented (and modified, if necessary) | |
4 | + to help you with the rearrangement process. */ | |
5 | + | |
6 | +/* target = 1024x768 */ | |
7 | + | |
8 | +div#header, div#footer, .slide {width: 100%; top: 0; left: 0;} | |
9 | +div#header {top: 0; height: 3em; z-index: 1;} | |
10 | +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 | +div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;} | |
13 | +div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; | |
14 | + margin: 0;} | |
15 | +#currentSlide {position: absolute; width: 10%; left: 45%; bottom: 1em; z-index: 10;} | |
16 | +html>body #currentSlide {position: fixed;} | |
17 | + | |
18 | +/* | |
19 | +div#header {background: #FCC;} | |
20 | +div#footer {background: #CCF;} | |
21 | +div#controls {background: #BBD;} | |
22 | +div#currentSlide {background: #FFC;} | |
23 | +*/ |
templates/html/Wize_S5/ui/default/iepngfix.htc
1 | +<public:component> | |
2 | +<public:attach event="onpropertychange" onevent="doFix()" /> | |
3 | + | |
4 | +<script> | |
5 | + | |
6 | +// IE5.5+ PNG Alpha Fix v1.0 by Angus Turnbull http://www.twinhelix.com | |
7 | +// Free usage permitted as long as this notice remains intact. | |
8 | + | |
9 | +// This must be a path to a blank image. That's all the configuration you need here. | |
10 | +var blankImg = 'ui/default/blank.gif'; | |
11 | + | |
12 | +var f = 'DXImageTransform.Microsoft.AlphaImageLoader'; | |
13 | + | |
14 | +function filt(s, m) { | |
15 | + if (filters[f]) { | |
16 | + filters[f].enabled = s ? true : false; | |
17 | + if (s) with (filters[f]) { src = s; sizingMethod = m } | |
18 | + } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")'; | |
19 | +} | |
20 | + | |
21 | +function doFix() { | |
22 | + if ((parseFloat(navigator.userAgent.match(/MSIE (\S+)/)[1]) < 5.5) || | |
23 | + (event && !/(background|src)/.test(event.propertyName))) return; | |
24 | + | |
25 | + if (tagName == 'IMG') { | |
26 | + if ((/\.png$/i).test(src)) { | |
27 | + filt(src, 'image'); // was 'scale' | |
28 | + src = blankImg; | |
29 | + } else if (src.indexOf(blankImg) < 0) filt(); | |
30 | + } else if (style.backgroundImage) { | |
31 | + if (style.backgroundImage.match(/^url[("']+(.*\.png)[)"']+$/i)) { | |
32 | + var s = RegExp.$1; | |
33 | + style.backgroundImage = ''; | |
34 | + filt(s, 'crop'); | |
35 | + } else filt(); | |
36 | + } | |
37 | +} | |
38 | + | |
39 | +doFix(); | |
40 | + | |
41 | +</script> | |
42 | +</public:component> |
templates/html/Wize_S5/ui/default/opera.css
templates/html/Wize_S5/ui/default/outline.css
1 | +/* don't change this unless you want the layout stuff to show up in the outline view! */ | |
2 | + | |
3 | +.layout div, #footer *, #controlForm * {display: none;} | |
4 | +#footer, #controls, #controlForm, #navLinks, #toggle { | |
5 | + display: block; visibility: visible; margin: 0; padding: 0;} | |
6 | +#toggle {float: right; padding: 0.5em;} | |
7 | +html>body #toggle {position: fixed; top: 0; right: 0;} | |
8 | + | |
9 | +/* making the outline look pretty-ish */ | |
10 | + | |
11 | +#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 | +#toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;} |
templates/html/Wize_S5/ui/default/pretty.css
1 | +/* Following are the presentation styles -- edit away! */ | |
2 | + | |
3 | +/* body {background: #FFF url(bodybg.gif) -16px 0 no-repeat; color: #000; font-size: 2em;} */ | |
4 | +body {background: #FFF;} | |
5 | + | |
6 | +:link, :visited {text-decoration: none; color: #00C;} | |
7 | +#controls :active {color: #88A !important;} | |
8 | +#controls :focus {outline: 1px dotted #227;} | |
9 | + | |
10 | +/* h1, h2, h3, h4 {font-size: 100%; margin: 0; padding: 0; font-weight: inherit;} */ | |
11 | + | |
12 | +/* ul, pre {margin: 0; line-height: 1em;} */ | |
13 | + | |
14 | +ul, pre {margin: 0;} | |
15 | + | |
16 | +html, body {margin: 0; padding: 0;} | |
17 | + | |
18 | +blockquote, q {font-style: italic;} | |
19 | +blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;} | |
20 | +blockquote p {margin: 0;} | |
21 | +blockquote i {font-style: normal;} | |
22 | +blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;} | |
23 | +blockquote b i {font-style: italic;} | |
24 | + | |
25 | +kbd {font-weight: bold; font-size: 1em;} | |
26 | +sup {font-size: smaller; line-height: 1px;} | |
27 | + | |
28 | +/*.slide code {padding: 2px 0.25em; font-weight: bold; color: #533;}*/ | |
29 | + | |
30 | + | |
31 | +.slide code.bad, code del {color: red;} | |
32 | +.slide code.old {color: silver;} | |
33 | + | |
34 | +/* .slide pre {padding: 0; margin: 0.25em 0 0.5em 0.5em; color: #533; font-size: 90%;} */ | |
35 | +.slide pre { | |
36 | + padding: 0.2em; | |
37 | + margin: 0.25em 0 0.5em 0.5em; | |
38 | + color: var(--main-pre-color); | |
39 | + font-size: 90%; | |
40 | + } | |
41 | + | |
42 | +.slide pre code {display: block;} | |
43 | +.slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;} | |
44 | +.slide li {margin-top: 0.75em; margin-right: 0;} | |
45 | +.slide ul ul {line-height: 1;} | |
46 | +.slide ul ul li {margin: .2em; font-size: 85%; list-style: square;} | |
47 | +.slide img.leader {display: block; margin: 0 auto;} | |
48 | + | |
49 | +/*div#header, div#footer {background:var(--main-pres-banner-background); color: #AAB; | |
50 | + font-family: Verdana, Helvetica, sans-serif;}*/ | |
51 | + | |
52 | +div#header, div#footer {background:var(--main-pres-banner-background); color: #AAB;} | |
53 | + | |
54 | + | |
55 | +/* div#header {background: #005 url(bodybg.gif) -16px 0 no-repeat; | |
56 | + line-height: 1px;} */ | |
57 | + | |
58 | + | |
59 | +div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0;} | |
60 | + | |
61 | +#footer h1, #footer h2 {display: block; padding: 0 1em;} | |
62 | + | |
63 | +/* #footer h2 {font-style: italic;} */ | |
64 | +#footer h2 {font-style: italic; margin-top:-0.2em;} | |
65 | + | |
66 | +div.long {font-size: 0.75em;} | |
67 | + | |
68 | +/* .slide h1 {position: absolute; top: 0.7em; left: 87px; z-index: 1; | |
69 | + margin: 0; padding: 0.3em 0 0 50px; white-space: nowrap; | |
70 | + font: bold 150%/1em Helvetica, sans-serif; text-transform: capitalize; | |
71 | + color: #DDE; background: #005;} */ | |
72 | + | |
73 | +.slide h1 { position: absolute; | |
74 | + top: 0.2em; | |
75 | + /*left: 87px;*/ | |
76 | + z-index: 1; | |
77 | + margin: 0; | |
78 | + /*padding: 0.3em 0 0 50px;*/ | |
79 | + white-space: nowrap; | |
80 | + /*font: bold 150%/1em Helvetica, sans-serif;*/ | |
81 | + text-transform: capitalize; | |
82 | + color: var(--main-pres-banner-foreground); | |
83 | + text-decoration: none; | |
84 | + } | |
85 | + | |
86 | + | |
87 | +/* .slide h3 {font-size: 130%;} */ | |
88 | + | |
89 | +h1 abbr {font-variant: small-caps;} | |
90 | + | |
91 | +/*div#controls {position: absolute; left: 50%; bottom: 0; | |
92 | + width: 50%; | |
93 | + text-align: right; font: bold 0.9em Verdana, Helvetica, sans-serif;}*/ | |
94 | + | |
95 | +div#controls {position: absolute; left: 50%; bottom: 0; | |
96 | + width: 50%; | |
97 | + text-align: right; font: bold 0.9em;} | |
98 | + | |
99 | + | |
100 | +html>body div#controls {position: fixed; padding: 0 0 1em 0; | |
101 | + top: auto;} | |
102 | +div#controls form {position: absolute; bottom: 0; right: 0; width: 100%; | |
103 | + margin: 0; padding: 0;} | |
104 | +#controls #navLinks a {padding: 0; margin: 0 0.5em; | |
105 | + background: transparent; border: none; color: var(--main-pres-banner-foreground); | |
106 | + cursor: pointer;} | |
107 | +#controls #navList {height: 1em;} | |
108 | +#controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #DDD; color: #227;} | |
109 | + | |
110 | + | |
111 | + | |
112 | +/* #currentSlide {text-align: center; font-size: 0.5em; color: #449;} */ | |
113 | + | |
114 | +#currentSlide {text-align: center; font-size: 0.5em; color: var(--main-pres-banner-foreground);} | |
115 | + | |
116 | +#slide0 {padding-top: 3.5em; font-size: 90%;} | |
117 | + | |
118 | +/*#slide0 h1 {position: static; margin: 1em 0 0; padding: 0; | |
119 | + font: bold 2em Helvetica, sans-serif; white-space: normal; | |
120 | + color: #000; background: transparent;}*/ | |
121 | + | |
122 | +/*#slide0 h1 {position: static; margin: 1em 0 0; padding: 0; | |
123 | + font: bold 2em Helvetica, sans-serif; white-space: normal; | |
124 | + color: var(--main-header-color); background: transparent;}*/ | |
125 | + | |
126 | +#slide0 h1 {position: static; margin: 1em 0 0; padding: 0; | |
127 | + font: bold 2em; white-space: normal; | |
128 | + color: var(--main-header-color); background: transparent;} | |
129 | + | |
130 | + | |
131 | + | |
132 | +/*#slide0 h2 {font: bold italic 1em Helvetica, sans-serif; margin: 0.25em;}*/ | |
133 | +#slide0 h2 {font: bold italic 1em; margin: 0.25em;} | |
134 | + | |
135 | +#slide0 h3 {margin-top: 1.5em; font-size: 1.5em;} | |
136 | +#slide0 h4 {margin-top: 0; font-size: 1em;} | |
137 | + | |
138 | +ul.urls {list-style: none; display: inline; margin: 0;} | |
139 | +.urls li {display: inline; margin: 0;} | |
140 | +.note {display: none;} | |
141 | +.external {border-bottom: 1px dotted gray;} | |
142 | +html>body .external {border-bottom: none;} | |
143 | +.external:after {content: " \274F"; font-size: smaller; color: #77B;} | |
144 | + | |
145 | +.incremental, .incremental *, .incremental *:after {color: #DDE; visibility: visible;} | |
146 | +img.incremental {visibility: hidden;} | |
147 | +.slide .current {color: #B02;} | |
148 | + | |
149 | + | |
150 | +/* diagnostics | |
151 | + | |
152 | +li:after {content: " [" attr(class) "]"; color: #F88;} | |
153 | + */ |
templates/html/Wize_S5/ui/default/print.css
1 | +/* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */ .slide, ul {page-break-inside: avoid; visibility: visible !important;} h1 {page-break-after: avoid;} body {font-size: 12pt; background: white;} * {color: black;} #slide0 h1 {font-size: 200%; border: none; margin: 0.5em 0 0.25em;} #slide0 h3 {margin: 0; padding: 0;} #slide0 h4 {margin: 0 0 0.5em; padding: 0;} #slide0 {margin-bottom: 3em;} h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;} .extra {background: transparent !important;} div.extra, pre.extra, .example {font-size: 10pt; color: #333;} ul.extra a {font-weight: bold;} p.example {display: none;} #header {display: none;} #footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;} #footer h2, #controls {display: none;} /* The following rule keeps the layout stuff out of print. Remove at your own risk! */ .layout, .layout * {display: none !important;} |
templates/html/Wize_S5/ui/default/s5-core.css
1 | +/* Do not edit or override these styles! The system will likely break if you do. */ | |
2 | + | |
3 | +div#header, div#footer, div#controls, .slide {position: absolute;} | |
4 | +html>body div#header, html>body div#footer, | |
5 | + html>body div#controls, html>body .slide {position: fixed;} | |
6 | +.handout {display: none;} | |
7 | +.layout {display: block;} | |
8 | +.slide, .hideme, .incremental {visibility: hidden;} | |
9 | +#slide0 {visibility: visible;} |
templates/html/Wize_S5/ui/default/slides.css
templates/html/Wize_S5/ui/default/slides.js
1 | +// S5 v1.1 slides.js -- released into the Public Domain | |
2 | +// | |
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! | |
5 | + | |
6 | +var undef; | |
7 | +var slideCSS = ''; | |
8 | +var snum = 0; | |
9 | +var smax = 1; | |
10 | +var incpos = 0; | |
11 | +var number = undef; | |
12 | +var s5mode = true; | |
13 | +var defaultView = 'slideshow'; | |
14 | +var controlVis = 'visible'; | |
15 | + | |
16 | +var isIE = navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('Opera') < 1 ? 1 : 0; | |
17 | +var isOp = navigator.userAgent.indexOf('Opera') > -1 ? 1 : 0; | |
18 | +var isGe = navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('Safari') < 1 ? 1 : 0; | |
19 | + | |
20 | +function hasClass(object, className) { | |
21 | + if (!object.className) return false; | |
22 | + return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1); | |
23 | +} | |
24 | + | |
25 | +function hasValue(object, value) { | |
26 | + if (!object) return false; | |
27 | + return (object.search('(^|\\s)' + value + '(\\s|$)') != -1); | |
28 | +} | |
29 | + | |
30 | +function removeClass(object,className) { | |
31 | + if (!object) return; | |
32 | + object.className = object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'), RegExp.$1+RegExp.$2); | |
33 | +} | |
34 | + | |
35 | +function addClass(object,className) { | |
36 | + if (!object || hasClass(object, className)) return; | |
37 | + if (object.className) { | |
38 | + object.className += ' '+className; | |
39 | + } else { | |
40 | + object.className = className; | |
41 | + } | |
42 | +} | |
43 | + | |
44 | +function GetElementsWithClassName(elementName,className) { | |
45 | + var allElements = document.getElementsByTagName(elementName); | |
46 | + var elemColl = new Array(); | |
47 | + for (var i = 0; i< allElements.length; i++) { | |
48 | + if (hasClass(allElements[i], className)) { | |
49 | + elemColl[elemColl.length] = allElements[i]; | |
50 | + } | |
51 | + } | |
52 | + return elemColl; | |
53 | +} | |
54 | + | |
55 | +function isParentOrSelf(element, id) { | |
56 | + if (element == null || element.nodeName=='BODY') return false; | |
57 | + else if (element.id == id) return true; | |
58 | + else return isParentOrSelf(element.parentNode, id); | |
59 | +} | |
60 | + | |
61 | +function nodeValue(node) { | |
62 | + var result = ""; | |
63 | + if (node.nodeType == 1) { | |
64 | + var children = node.childNodes; | |
65 | + for (var i = 0; i < children.length; ++i) { | |
66 | + result += nodeValue(children[i]); | |
67 | + } | |
68 | + } | |
69 | + else if (node.nodeType == 3) { | |
70 | + result = node.nodeValue; | |
71 | + } | |
72 | + return(result); | |
73 | +} | |
74 | + | |
75 | +function slideLabel() { | |
76 | + var slideColl = GetElementsWithClassName('*','slide'); | |
77 | + var list = document.getElementById('jumplist'); | |
78 | + smax = slideColl.length; | |
79 | + for (var n = 0; n < smax; n++) { | |
80 | + var obj = slideColl[n]; | |
81 | + | |
82 | + var did = 'slide' + n.toString(); | |
83 | + obj.setAttribute('id',did); | |
84 | + if (isOp) continue; | |
85 | + | |
86 | + var otext = ''; | |
87 | + var menu = obj.firstChild; | |
88 | + if (!menu) continue; // to cope with empty slides | |
89 | + while (menu && menu.nodeType == 3) { | |
90 | + menu = menu.nextSibling; | |
91 | + } | |
92 | + if (!menu) continue; // to cope with slides with only text nodes | |
93 | + | |
94 | + var menunodes = menu.childNodes; | |
95 | + for (var o = 0; o < menunodes.length; o++) { | |
96 | + otext += nodeValue(menunodes[o]); | |
97 | + } | |
98 | + list.options[list.length] = new Option(n + ' : ' + otext, n); | |
99 | + } | |
100 | +} | |
101 | + | |
102 | +function currentSlide() { | |
103 | + var cs; | |
104 | + if (document.getElementById) { | |
105 | + cs = document.getElementById('currentSlide'); | |
106 | + } else { | |
107 | + cs = document.currentSlide; | |
108 | + } | |
109 | + cs.innerHTML = '<span id="csHere">' + snum + '<\/span> ' + | |
110 | + '<span id="csSep">\/<\/span> ' + | |
111 | + '<span id="csTotal">' + (smax-1) + '<\/span>'; | |
112 | + if (snum == 0) { | |
113 | + cs.style.visibility = 'hidden'; | |
114 | + } else { | |
115 | + cs.style.visibility = 'visible'; | |
116 | + } | |
117 | +} | |
118 | + | |
119 | +function go(step) { | |
120 | + if (document.getElementById('slideProj').disabled || step == 0) return; | |
121 | + var jl = document.getElementById('jumplist'); | |
122 | + var cid = 'slide' + snum; | |
123 | + var ce = document.getElementById(cid); | |
124 | + if (incrementals[snum].length > 0) { | |
125 | + for (var i = 0; i < incrementals[snum].length; i++) { | |
126 | + removeClass(incrementals[snum][i], 'current'); | |
127 | + removeClass(incrementals[snum][i], 'incremental'); | |
128 | + } | |
129 | + } | |
130 | + if (step != 'j') { | |
131 | + snum += step; | |
132 | + lmax = smax - 1; | |
133 | + if (snum > lmax) snum = lmax; | |
134 | + if (snum < 0) snum = 0; | |
135 | + } else | |
136 | + snum = parseInt(jl.value); | |
137 | + var nid = 'slide' + snum; | |
138 | + var ne = document.getElementById(nid); | |
139 | + if (!ne) { | |
140 | + ne = document.getElementById('slide0'); | |
141 | + snum = 0; | |
142 | + } | |
143 | + if (step < 0) {incpos = incrementals[snum].length} else {incpos = 0;} | |
144 | + if (incrementals[snum].length > 0 && incpos == 0) { | |
145 | + for (var i = 0; i < incrementals[snum].length; i++) { | |
146 | + if (hasClass(incrementals[snum][i], 'current')) | |
147 | + incpos = i + 1; | |
148 | + else | |
149 | + addClass(incrementals[snum][i], 'incremental'); | |
150 | + } | |
151 | + } | |
152 | + if (incrementals[snum].length > 0 && incpos > 0) | |
153 | + addClass(incrementals[snum][incpos - 1], 'current'); | |
154 | + ce.style.visibility = 'hidden'; | |
155 | + ne.style.visibility = 'visible'; | |
156 | + jl.selectedIndex = snum; | |
157 | + currentSlide(); | |
158 | + number = 0; | |
159 | +} | |
160 | + | |
161 | +function goTo(target) { | |
162 | + if (target >= smax || target == snum) return; | |
163 | + go(target - snum); | |
164 | +} | |
165 | + | |
166 | +function subgo(step) { | |
167 | + if (step > 0) { | |
168 | + removeClass(incrementals[snum][incpos - 1],'current'); | |
169 | + removeClass(incrementals[snum][incpos], 'incremental'); | |
170 | + addClass(incrementals[snum][incpos],'current'); | |
171 | + incpos++; | |
172 | + } else { | |
173 | + incpos--; | |
174 | + removeClass(incrementals[snum][incpos],'current'); | |
175 | + addClass(incrementals[snum][incpos], 'incremental'); | |
176 | + addClass(incrementals[snum][incpos - 1],'current'); | |
177 | + } | |
178 | +} | |
179 | + | |
180 | +function toggle() { | |
181 | + var slideColl = GetElementsWithClassName('*','slide'); | |
182 | + var slides = document.getElementById('slideProj'); | |
183 | + var outline = document.getElementById('outlineStyle'); | |
184 | + if (!slides.disabled) { | |
185 | + slides.disabled = true; | |
186 | + outline.disabled = false; | |
187 | + s5mode = false; | |
188 | + fontSize('1em'); | |
189 | + for (var n = 0; n < smax; n++) { | |
190 | + var slide = slideColl[n]; | |
191 | + slide.style.visibility = 'visible'; | |
192 | + } | |
193 | + } else { | |
194 | + slides.disabled = false; | |
195 | + outline.disabled = true; | |
196 | + s5mode = true; | |
197 | + fontScale(); | |
198 | + for (var n = 0; n < smax; n++) { | |
199 | + var slide = slideColl[n]; | |
200 | + slide.style.visibility = 'hidden'; | |
201 | + } | |
202 | + slideColl[snum].style.visibility = 'visible'; | |
203 | + } | |
204 | +} | |
205 | + | |
206 | +function showHide(action) { | |
207 | + var obj = GetElementsWithClassName('*','hideme')[0]; | |
208 | + switch (action) { | |
209 | + case 's': obj.style.visibility = 'visible'; break; | |
210 | + case 'h': obj.style.visibility = 'hidden'; break; | |
211 | + case 'k': | |
212 | + if (obj.style.visibility != 'visible') { | |
213 | + obj.style.visibility = 'visible'; | |
214 | + } else { | |
215 | + obj.style.visibility = 'hidden'; | |
216 | + } | |
217 | + break; | |
218 | + } | |
219 | +} | |
220 | + | |
221 | +// 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/) | |
222 | +function keys(key) { | |
223 | + if (!key) { | |
224 | + key = event; | |
225 | + key.which = key.keyCode; | |
226 | + } | |
227 | + if (key.which == 84) { | |
228 | + toggle(); | |
229 | + return; | |
230 | + } | |
231 | + if (s5mode) { | |
232 | + switch (key.which) { | |
233 | + case 10: // return | |
234 | + case 13: // enter | |
235 | + if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return; | |
236 | + if (key.target && isParentOrSelf(key.target, 'controls')) return; | |
237 | + if(number != undef) { | |
238 | + goTo(number); | |
239 | + break; | |
240 | + } | |
241 | + case 32: // spacebar | |
242 | + case 34: // page down | |
243 | + case 39: // rightkey | |
244 | + case 40: // downkey | |
245 | + if(number != undef) { | |
246 | + go(number); | |
247 | + } else if (!incrementals[snum] || incpos >= incrementals[snum].length) { | |
248 | + go(1); | |
249 | + } else { | |
250 | + subgo(1); | |
251 | + } | |
252 | + break; | |
253 | + case 33: // page up | |
254 | + case 37: // leftkey | |
255 | + case 38: // upkey | |
256 | + if(number != undef) { | |
257 | + go(-1 * number); | |
258 | + } else if (!incrementals[snum] || incpos <= 0) { | |
259 | + go(-1); | |
260 | + } else { | |
261 | + subgo(-1); | |
262 | + } | |
263 | + break; | |
264 | + case 36: // home | |
265 | + goTo(0); | |
266 | + break; | |
267 | + case 35: // end | |
268 | + goTo(smax-1); | |
269 | + break; | |
270 | + case 67: // c | |
271 | + showHide('k'); | |
272 | + break; | |
273 | + } | |
274 | + if (key.which < 48 || key.which > 57) { | |
275 | + number = undef; | |
276 | + } else { | |
277 | + if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return; | |
278 | + if (key.target && isParentOrSelf(key.target, 'controls')) return; | |
279 | + number = (((number != undef) ? number : 0) * 10) + (key.which - 48); | |
280 | + } | |
281 | + } | |
282 | + return false; | |
283 | +} | |
284 | + | |
285 | +function clicker(e) { | |
286 | + number = undef; | |
287 | + var target; | |
288 | + if (window.event) { | |
289 | + target = window.event.srcElement; | |
290 | + e = window.event; | |
291 | + } 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; | |
293 | + if (!e.which || e.which == 1) { | |
294 | + if (!incrementals[snum] || incpos >= incrementals[snum].length) { | |
295 | + go(1); | |
296 | + } else { | |
297 | + subgo(1); | |
298 | + } | |
299 | + } | |
300 | +} | |
301 | + | |
302 | +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; | |
318 | + } | |
319 | + return null; | |
320 | +} | |
321 | + | |
322 | +function slideJump() { | |
323 | + if (window.location.hash == null) return; | |
324 | + var sregex = /^#slide(\d+)$/; | |
325 | + var matches = sregex.exec(window.location.hash); | |
326 | + var dest = null; | |
327 | + if (matches != null) { | |
328 | + dest = parseInt(matches[1]); | |
329 | + } else { | |
330 | + dest = findSlide(window.location.hash.slice(1)); | |
331 | + } | |
332 | + if (dest != null) | |
333 | + go(dest - snum); | |
334 | +} | |
335 | + | |
336 | +function fixLinks() { | |
337 | + var thisUri = window.location.href; | |
338 | + thisUri = thisUri.slice(0, thisUri.length - window.location.hash.length); | |
339 | + var aelements = document.getElementsByTagName('A'); | |
340 | + for (var i = 0; i < aelements.length; i++) { | |
341 | + var a = aelements[i].href; | |
342 | + var slideID = a.match('\#slide[0-9]{1,2}'); | |
343 | + if ((slideID) && (slideID[0].slice(0,1) == '#')) { | |
344 | + var dest = findSlide(slideID[0].slice(1)); | |
345 | + if (dest != null) { | |
346 | + if (aelements[i].addEventListener) { | |
347 | + aelements[i].addEventListener("click", new Function("e", | |
348 | + "if (document.getElementById('slideProj').disabled) return;" + | |
349 | + "go("+dest+" - snum); " + | |
350 | + "if (e.preventDefault) e.preventDefault();"), true); | |
351 | + } else if (aelements[i].attachEvent) { | |
352 | + aelements[i].attachEvent("onclick", new Function("", | |
353 | + "if (document.getElementById('slideProj').disabled) return;" + | |
354 | + "go("+dest+" - snum); " + | |
355 | + "event.returnValue = false;")); | |
356 | + } | |
357 | + } | |
358 | + } | |
359 | + } | |
360 | +} | |
361 | + | |
362 | +function externalLinks() { | |
363 | + if (!document.getElementsByTagName) return; | |
364 | + var anchors = document.getElementsByTagName('a'); | |
365 | + for (var i=0; i<anchors.length; i++) { | |
366 | + var anchor = anchors[i]; | |
367 | + if (anchor.getAttribute('href') && hasValue(anchor.rel, 'external')) { | |
368 | + anchor.target = '_blank'; | |
369 | + addClass(anchor,'external'); | |
370 | + } | |
371 | + } | |
372 | +} | |
373 | + | |
374 | +function createControls() { | |
375 | + var controlsDiv = document.getElementById("controls"); | |
376 | + if (!controlsDiv) return; | |
377 | + var hider = ' onmouseover="showHide(\'s\');" onmouseout="showHide(\'h\');"'; | |
378 | + var hideDiv, hideList = ''; | |
379 | + if (controlVis == 'hidden') { | |
380 | + hideDiv = hider; | |
381 | + } else { | |
382 | + hideList = hider; | |
383 | + } | |
384 | + controlsDiv.innerHTML = '<form action="#" id="controlForm"' + hideDiv + '>' + | |
385 | + '<div id="navLinks">' + | |
386 | + '<a accesskey="t" id="toggle" href="javascript:toggle();">Ø<\/a>' + | |
387 | + '<a accesskey="z" id="prev" href="javascript:go(-1);">«<\/a>' + | |
388 | + '<a accesskey="x" id="next" href="javascript:go(1);">»<\/a>' + | |
389 | + '<div id="navList"' + hideList + '><select id="jumplist" onchange="go(\'j\');"><\/select><\/div>' + | |
390 | + '<\/div><\/form>'; | |
391 | + if (controlVis == 'hidden') { | |
392 | + var hidden = document.getElementById('navLinks'); | |
393 | + } else { | |
394 | + var hidden = document.getElementById('jumplist'); | |
395 | + } | |
396 | + addClass(hidden,'hideme'); | |
397 | +} | |
398 | + | |
399 | +function fontScale() { // causes layout problems in FireFox that get fixed if browser's Reload is used; same may be true of other Gecko-based browsers | |
400 | + if (!s5mode) return false; | |
401 | + var vScale = 22; // both yield 32 (after rounding) at 1024x768 | |
402 | + var hScale = 32; // perhaps should auto-calculate based on theme's declared value? | |
403 | + if (window.innerHeight) { | |
404 | + var vSize = window.innerHeight; | |
405 | + var hSize = window.innerWidth; | |
406 | + } else if (document.documentElement.clientHeight) { | |
407 | + var vSize = document.documentElement.clientHeight; | |
408 | + var hSize = document.documentElement.clientWidth; | |
409 | + } else if (document.body.clientHeight) { | |
410 | + var vSize = document.body.clientHeight; | |
411 | + var hSize = document.body.clientWidth; | |
412 | + } else { | |
413 | + var vSize = 700; // assuming 1024x768, minus chrome and such | |
414 | + var hSize = 1024; // these do not account for kiosk mode or Opera Show | |
415 | + } | |
416 | + var newSize = Math.min(Math.round(vSize/vScale),Math.round(hSize/hScale)); | |
417 | + fontSize(newSize + 'px'); | |
418 | + if (isGe) { // hack to counter incremental reflow bugs | |
419 | + var obj = document.getElementsByTagName('body')[0]; | |
420 | + obj.style.display = 'none'; | |
421 | + obj.style.display = 'block'; | |
422 | + } | |
423 | +} | |
424 | + | |
425 | +function fontSize(value) { | |
426 | + if (!(s5ss = document.getElementById('s5ss'))) { | |
427 | + if (!isIE) { | |
428 | + document.getElementsByTagName('head')[0].appendChild(s5ss = document.createElement('style')); | |
429 | + s5ss.setAttribute('media','screen, projection'); | |
430 | + s5ss.setAttribute('id','s5ss'); | |
431 | + } else { | |
432 | + document.createStyleSheet(); | |
433 | + document.s5ss = document.styleSheets[document.styleSheets.length - 1]; | |
434 | + } | |
435 | + } | |
436 | + if (!isIE) { | |
437 | + while (s5ss.lastChild) s5ss.removeChild(s5ss.lastChild); | |
438 | + s5ss.appendChild(document.createTextNode('body {font-size: ' + value + ' !important;}')); | |
439 | + } else { | |
440 | + document.s5ss.addRule('body','font-size: ' + value + ' !important;'); | |
441 | + } | |
442 | +} | |
443 | + | |
444 | +function notOperaFix() { | |
445 | + slideCSS = document.getElementById('slideProj').href; | |
446 | + var slides = document.getElementById('slideProj'); | |
447 | + var outline = document.getElementById('outlineStyle'); | |
448 | + slides.setAttribute('media','screen'); | |
449 | + outline.disabled = true; | |
450 | + if (isGe) { | |
451 | + slides.setAttribute('href','null'); // Gecko fix | |
452 | + slides.setAttribute('href',slideCSS); // Gecko fix | |
453 | + } | |
454 | + if (isIE && document.styleSheets && document.styleSheets[0]) { | |
455 | + document.styleSheets[0].addRule('img', 'behavior: url(ui/default/iepngfix.htc)'); | |
456 | + document.styleSheets[0].addRule('div', 'behavior: url(ui/default/iepngfix.htc)'); | |
457 | + document.styleSheets[0].addRule('.slide', 'behavior: url(ui/default/iepngfix.htc)'); | |
458 | + } | |
459 | +} | |
460 | + | |
461 | +function getIncrementals(obj) { | |
462 | + var incrementals = new Array(); | |
463 | + if (!obj) | |
464 | + return incrementals; | |
465 | + var children = obj.childNodes; | |
466 | + for (var i = 0; i < children.length; i++) { | |
467 | + var child = children[i]; | |
468 | + if (hasClass(child, 'incremental')) { | |
469 | + if (child.nodeName == 'OL' || child.nodeName == 'UL') { | |
470 | + removeClass(child, 'incremental'); | |
471 | + for (var j = 0; j < child.childNodes.length; j++) { | |
472 | + if (child.childNodes[j].nodeType == 1) { | |
473 | + addClass(child.childNodes[j], 'incremental'); | |
474 | + } | |
475 | + } | |
476 | + } else { | |
477 | + incrementals[incrementals.length] = child; | |
478 | + removeClass(child,'incremental'); | |
479 | + } | |
480 | + } | |
481 | + if (hasClass(child, 'show-first')) { | |
482 | + if (child.nodeName == 'OL' || child.nodeName == 'UL') { | |
483 | + removeClass(child, 'show-first'); | |
484 | + if (child.childNodes[isGe].nodeType == 1) { | |
485 | + removeClass(child.childNodes[isGe], 'incremental'); | |
486 | + } | |
487 | + } else { | |
488 | + incrementals[incrementals.length] = child; | |
489 | + } | |
490 | + } | |
491 | + incrementals = incrementals.concat(getIncrementals(child)); | |
492 | + } | |
493 | + return incrementals; | |
494 | +} | |
495 | + | |
496 | +function createIncrementals() { | |
497 | + var incrementals = new Array(); | |
498 | + for (var i = 0; i < smax; i++) { | |
499 | + incrementals[i] = getIncrementals(document.getElementById('slide'+i)); | |
500 | + } | |
501 | + return incrementals; | |
502 | +} | |
503 | + | |
504 | +function defaultCheck() { | |
505 | + var allMetas = document.getElementsByTagName('meta'); | |
506 | + for (var i = 0; i< allMetas.length; i++) { | |
507 | + if (allMetas[i].name == 'defaultView') { | |
508 | + defaultView = allMetas[i].content; | |
509 | + } | |
510 | + if (allMetas[i].name == 'controlVis') { | |
511 | + controlVis = allMetas[i].content; | |
512 | + } | |
513 | + } | |
514 | +} | |
515 | + | |
516 | +// Key trap fix, new function body for trap() | |
517 | +function trap(e) { | |
518 | + if (!e) { | |
519 | + e = event; | |
520 | + e.which = e.keyCode; | |
521 | + } | |
522 | + try { | |
523 | + modifierKey = e.ctrlKey || e.altKey || e.metaKey; | |
524 | + } | |
525 | + catch(e) { | |
526 | + modifierKey = false; | |
527 | + } | |
528 | + return modifierKey || e.which == 0; | |
529 | +} | |
530 | + | |
531 | +function startup() { | |
532 | + /* wize function to run onload */ | |
533 | + testLogo(); | |
534 | + | |
535 | + defaultCheck(); | |
536 | + if (!isOp) | |
537 | + createControls(); | |
538 | + slideLabel(); | |
539 | + fixLinks(); | |
540 | + externalLinks(); | |
541 | + fontScale(); | |
542 | + if (!isOp) { | |
543 | + notOperaFix(); | |
544 | + incrementals = createIncrementals(); | |
545 | + slideJump(); | |
546 | + if (defaultView == 'outline') { | |
547 | + toggle(); | |
548 | + } | |
549 | + document.onkeyup = keys; | |
550 | + document.onkeypress = trap; | |
551 | + document.onclick = clicker; | |
552 | + } | |
553 | +} | |
554 | + | |
555 | +window.onload = startup; | |
556 | +window.onresize = function(){setTimeout('fontScale()', 50);} |
wize.rb
... | ... | @@ -103,7 +103,7 @@ |
103 | 103 | # Apply a config |
104 | 104 | def applyConfig(name) |
105 | 105 | Dir.chdir($zimHtmlTemplateDir) |
106 | - list = ["Wize", "Wize_with_index", "Wize_with_index_sod"] | |
106 | + list = ["Wize", "Wize_with_index", "Wize_with_index_sod", "Wize_S5"] | |
107 | 107 | list.each { |l| |
108 | 108 | # Removing previous content |
109 | 109 | system("rm -rf #{l}/common") |