2012-10-21 00:40:52 +00:00
<!doctype html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< title > reveal.js - Slide Notes< / title >
< style >
body {
font-family: Helvetica;
}
#notes {
font-size: 24px;
width: 640px;
margin-top: 5px;
}
#wrap-current-slide {
width: 640px;
height: 512px;
float: left;
overflow: hidden;
}
#current-slide {
width: 1280px;
height: 1024px;
border: none;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scale(0.5);
-moz-transform: scale(0.5);
-ms-transform: scale(0.5);
-o-transform: scale(0.5);
transform: scale(0.5);
}
#wrap-next-slide {
width: 448px;
height: 358px;
float: left;
margin: 0 0 0 10px;
overflow: hidden;
}
#next-slide {
width: 1280px;
height: 1024px;
border: none;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scale(0.35);
-moz-transform: scale(0.35);
-ms-transform: scale(0.35);
-o-transform: scale(0.35);
transform: scale(0.35);
}
.slides {
position: relative;
margin-bottom: 10px;
border: 1px solid black;
border-radius: 2px;
background: rgb(28, 30, 32);
}
.slides span {
position: absolute;
top: 3px;
left: 3px;
font-weight: bold;
font-size: 14px;
color: rgba( 255, 255, 255, 0.9 );
}
2013-01-23 16:04:04 +00:00
.error {
font-weight: bold;
color: red;
font-size: 1.5em;
text-align: center;
margin-top: 10%;
}
.error code {
font-family: monospace;
}
2013-01-26 16:49:19 +00:00
.time {
text-align: center;
}
.elapsed, .clock {
color: #333;
font-size: 2em;
text-align: center;
display: inline-block;
padding: 0.5em;
background-color: #eee;
border-radius: 10px;
}
.elapsed h2, .clock h2 {
font-size: 0.8em;
line-height: 100%;
margin: 0;
color: #aaa;
}
.elapsed .mute {
color: #ddd;
}
2012-10-21 00:40:52 +00:00
< / style >
< / head >
< body >
< div id = "wrap-current-slide" class = "slides" >
2013-01-23 16:04:04 +00:00
< script > document . write ( '<iframe width="1280" height="1024" id="current-slide" src="' + window . opener . location . href + '"></iframe>' ) ; < / script >
2012-10-21 00:40:52 +00:00
< / div >
< div id = "wrap-next-slide" class = "slides" >
2013-01-23 16:04:04 +00:00
< script > document . write ( '<iframe width="640" height="512" id="next-slide" src="' + window . opener . location . href + '"></iframe>' ) ; < / script >
2012-10-21 00:40:52 +00:00
< span > UPCOMING:< / span >
< / div >
2013-01-26 16:49:19 +00:00
< div class = 'time' >
< div class = 'clock' >
< h2 > Time< / h2 >
< span id = 'clock' > 0:00:00 AM< / span >
< / div >
< div class = 'elapsed' >
< h2 > Elapsed< / h2 >
< span id = 'hours' > 00< / span > < span id = 'minutes' > :00< / span > < span id = 'seconds' > :00< / span >
< / div >
< / div >
2012-10-21 00:40:52 +00:00
< div id = "notes" > < / div >
2012-10-28 22:48:52 +00:00
< script src = "../../plugin/markdown/showdown.js" > < / script >
2012-10-21 00:40:52 +00:00
< script >
2013-01-26 16:49:19 +00:00
function zeroPadInteger(num) {
var str = "00" + parseInt(num);
return str.substring(str.length - 2);
}
2012-10-21 00:40:52 +00:00
window.addEventListener( 'load', function() {
2013-01-23 16:04:04 +00:00
if( window.opener & & window.opener.location & & window.opener.location.href ) {
(function( window, undefined ) {
var notes = document.getElementById( 'notes' ),
currentSlide = document.getElementById( 'current-slide' ),
nextSlide = document.getElementById( 'next-slide' );
window.addEventListener( 'message', function( event ) {
var data = JSON.parse( event.data );
// No need for updating the notes in case of fragment changes
if ( data.notes !== undefined) {
if( data.markdown ) {
notes.innerHTML = (new Showdown.converter()).makeHtml( data.notes );
}
else {
notes.innerHTML = data.notes;
}
}
// Showing and hiding fragments
if( data.fragment === 'next' ) {
currentSlide.contentWindow.Reveal.nextFragment();
}
else if( data.fragment === 'prev' ) {
currentSlide.contentWindow.Reveal.prevFragment();
2012-10-24 12:33:16 +00:00
}
else {
2013-01-23 16:04:04 +00:00
// Update the note slides
currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
2012-10-24 12:33:16 +00:00
}
2013-01-23 16:04:04 +00:00
}, false );
})( window );
}
else {
document.body.innerHTML = '< p class = "error" > Unable to access < code > window.opener.location< / code > .< br > Make sure the presentation is running on a web server.< / p > ';
}
2012-10-21 00:40:52 +00:00
2013-01-26 16:49:19 +00:00
var start = new Date(),
clockEl = document.getElementById('clock'),
hoursEl = document.getElementById('hours'),
minutesEl = document.getElementById('minutes'),
secondsEl = document.getElementById('seconds');
setInterval(function() {
var diff, hours, minutes, seconds,
now = new Date();
diff = now.getTime() - start.getTime();
hours = parseInt(diff / (1000 * 60 * 60));
minutes = parseInt((diff / (1000 * 60)) % 60);
seconds = parseInt((diff / 1000) % 60);
clockEl.innerHTML = now.toLocaleTimeString();
hoursEl.innerHTML = zeroPadInteger(hours);
hoursEl.className = hours > 0 ? "" : "mute";
minutesEl.innerHTML = ":" + zeroPadInteger(minutes);
minutesEl.className = minutes > 0 ? "" : "mute";
secondsEl.innerHTML = ":" + zeroPadInteger(seconds);
}, 1000);
2012-10-21 00:40:52 +00:00
}, false );
< / script >
< / body >
< / html >