added html backup files
parent
3864d9676e
commit
760c63d64a
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,147 @@
|
||||||
|
/**
|
||||||
|
* Handles opening of and synchronization with the reveal.js
|
||||||
|
* notes window.
|
||||||
|
*
|
||||||
|
* Handshake process:
|
||||||
|
* 1. This window posts 'connect' to notes window
|
||||||
|
* - Includes URL of presentation to show
|
||||||
|
* 2. Notes window responds with 'connected' when it is available
|
||||||
|
* 3. This window proceeds to send the current presentation state
|
||||||
|
* to the notes window
|
||||||
|
*/
|
||||||
|
var RevealNotes = (function() {
|
||||||
|
|
||||||
|
function openNotes( notesFilePath ) {
|
||||||
|
|
||||||
|
if( !notesFilePath ) {
|
||||||
|
var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path
|
||||||
|
jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path
|
||||||
|
notesFilePath = jsFileLocation + 'notes.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' );
|
||||||
|
|
||||||
|
if( !notesPopup ) {
|
||||||
|
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow popup window access to Reveal API
|
||||||
|
notesPopup.Reveal = window.Reveal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connect to the notes window through a postmessage handshake.
|
||||||
|
* Using postmessage enables us to work in situations where the
|
||||||
|
* origins differ, such as a presentation being opened from the
|
||||||
|
* file system.
|
||||||
|
*/
|
||||||
|
function connect() {
|
||||||
|
// Keep trying to connect until we get a 'connected' message back
|
||||||
|
var connectInterval = setInterval( function() {
|
||||||
|
notesPopup.postMessage( JSON.stringify( {
|
||||||
|
namespace: 'reveal-notes',
|
||||||
|
type: 'connect',
|
||||||
|
url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search,
|
||||||
|
state: Reveal.getState()
|
||||||
|
} ), '*' );
|
||||||
|
}, 500 );
|
||||||
|
|
||||||
|
window.addEventListener( 'message', function( event ) {
|
||||||
|
var data = JSON.parse( event.data );
|
||||||
|
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
|
||||||
|
clearInterval( connectInterval );
|
||||||
|
onConnected();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Posts the current slide data to the notes window
|
||||||
|
*/
|
||||||
|
function post( event ) {
|
||||||
|
|
||||||
|
var slideElement = Reveal.getCurrentSlide(),
|
||||||
|
notesElement = slideElement.querySelector( 'aside.notes' ),
|
||||||
|
fragmentElement = slideElement.querySelector( '.current-fragment' );
|
||||||
|
|
||||||
|
var messageData = {
|
||||||
|
namespace: 'reveal-notes',
|
||||||
|
type: 'state',
|
||||||
|
notes: '',
|
||||||
|
markdown: false,
|
||||||
|
whitespace: 'normal',
|
||||||
|
state: Reveal.getState()
|
||||||
|
};
|
||||||
|
|
||||||
|
// Look for notes defined in a slide attribute
|
||||||
|
if( slideElement.hasAttribute( 'data-notes' ) ) {
|
||||||
|
messageData.notes = slideElement.getAttribute( 'data-notes' );
|
||||||
|
messageData.whitespace = 'pre-wrap';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for notes defined in a fragment
|
||||||
|
if( fragmentElement ) {
|
||||||
|
var fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
|
||||||
|
if( fragmentNotes ) {
|
||||||
|
notesElement = fragmentNotes;
|
||||||
|
}
|
||||||
|
else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
|
||||||
|
messageData.notes = fragmentElement.getAttribute( 'data-notes' );
|
||||||
|
messageData.whitespace = 'pre-wrap';
|
||||||
|
|
||||||
|
// In case there are slide notes
|
||||||
|
notesElement = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for notes defined in an aside element
|
||||||
|
if( notesElement ) {
|
||||||
|
messageData.notes = notesElement.innerHTML;
|
||||||
|
messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
|
||||||
|
}
|
||||||
|
|
||||||
|
notesPopup.postMessage( JSON.stringify( messageData ), '*' );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called once we have established a connection to the notes
|
||||||
|
* window.
|
||||||
|
*/
|
||||||
|
function onConnected() {
|
||||||
|
|
||||||
|
// Monitor events that trigger a change in state
|
||||||
|
Reveal.addEventListener( 'slidechanged', post );
|
||||||
|
Reveal.addEventListener( 'fragmentshown', post );
|
||||||
|
Reveal.addEventListener( 'fragmenthidden', post );
|
||||||
|
Reveal.addEventListener( 'overviewhidden', post );
|
||||||
|
Reveal.addEventListener( 'overviewshown', post );
|
||||||
|
Reveal.addEventListener( 'paused', post );
|
||||||
|
Reveal.addEventListener( 'resumed', post );
|
||||||
|
|
||||||
|
// Post the initial state
|
||||||
|
post();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
connect();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !/receiver/i.test( window.location.search ) ) {
|
||||||
|
|
||||||
|
// If the there's a 'notes' query set, open directly
|
||||||
|
if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
|
||||||
|
openNotes();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the notes when the 's' key is hit
|
||||||
|
Reveal.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
|
||||||
|
openNotes();
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return { open: openNotes };
|
||||||
|
|
||||||
|
})();
|
|
@ -0,0 +1,203 @@
|
||||||
|
/* Default Print Stylesheet Template
|
||||||
|
by Rob Glazebrook of CSSnewbie.com
|
||||||
|
Last Updated: June 4, 2008
|
||||||
|
|
||||||
|
Feel free (nay, compelled) to edit, append, and
|
||||||
|
manipulate this file as you see fit. */
|
||||||
|
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
|
||||||
|
/* SECTION 1: Set default width, margin, float, and
|
||||||
|
background. This prevents elements from extending
|
||||||
|
beyond the edge of the printed page, and prevents
|
||||||
|
unnecessary background images from printing */
|
||||||
|
html {
|
||||||
|
background: #fff;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background: #fff;
|
||||||
|
font-size: 20pt;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
border: 0;
|
||||||
|
margin: 0 5%;
|
||||||
|
padding: 0;
|
||||||
|
overflow: visible;
|
||||||
|
float: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* SECTION 2: Remove any elements not needed in print.
|
||||||
|
This would include navigation, ads, sidebars, etc. */
|
||||||
|
.nestedarrow,
|
||||||
|
.controls,
|
||||||
|
.fork-reveal,
|
||||||
|
.share-reveal,
|
||||||
|
.state-background,
|
||||||
|
.reveal .progress,
|
||||||
|
.reveal .backgrounds,
|
||||||
|
.reveal .slide-number {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* SECTION 3: Set body font face, size, and color.
|
||||||
|
Consider using a serif font for readability. */
|
||||||
|
body, p, td, li, div {
|
||||||
|
font-size: 20pt!important;
|
||||||
|
font-family: Georgia, "Times New Roman", Times, serif !important;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* SECTION 4: Set heading font face, sizes, and color.
|
||||||
|
Differentiate your headings from your body text.
|
||||||
|
Perhaps use a large sans-serif for distinction. */
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
color: #000!important;
|
||||||
|
height: auto;
|
||||||
|
line-height: normal;
|
||||||
|
font-family: Georgia, "Times New Roman", Times, serif !important;
|
||||||
|
text-shadow: 0 0 0 #000 !important;
|
||||||
|
text-align: left;
|
||||||
|
letter-spacing: normal;
|
||||||
|
}
|
||||||
|
/* Need to reduce the size of the fonts for printing */
|
||||||
|
h1 { font-size: 28pt !important; }
|
||||||
|
h2 { font-size: 24pt !important; }
|
||||||
|
h3 { font-size: 22pt !important; }
|
||||||
|
h4 { font-size: 22pt !important; font-variant: small-caps; }
|
||||||
|
h5 { font-size: 21pt !important; }
|
||||||
|
h6 { font-size: 20pt !important; font-style: italic; }
|
||||||
|
|
||||||
|
/* SECTION 5: Make hyperlinks more usable.
|
||||||
|
Ensure links are underlined, and consider appending
|
||||||
|
the URL to the end of the link for usability. */
|
||||||
|
a:link,
|
||||||
|
a:visited {
|
||||||
|
color: #000 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
.reveal a:link:after,
|
||||||
|
.reveal a:visited:after {
|
||||||
|
content: " (" attr(href) ") ";
|
||||||
|
color: #222 !important;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* SECTION 6: more reveal.js specific additions by @skypanther */
|
||||||
|
ul, ol, div, p {
|
||||||
|
visibility: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
display: block;
|
||||||
|
overflow: visible;
|
||||||
|
margin: 0;
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
.reveal pre,
|
||||||
|
.reveal table {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
.reveal pre code {
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
.reveal blockquote {
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
.reveal .slides {
|
||||||
|
position: static !important;
|
||||||
|
width: auto !important;
|
||||||
|
height: auto !important;
|
||||||
|
|
||||||
|
left: 0 !important;
|
||||||
|
top: 0 !important;
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
zoom: 1 !important;
|
||||||
|
|
||||||
|
overflow: visible !important;
|
||||||
|
display: block !important;
|
||||||
|
|
||||||
|
text-align: left !important;
|
||||||
|
-webkit-perspective: none;
|
||||||
|
-moz-perspective: none;
|
||||||
|
-ms-perspective: none;
|
||||||
|
perspective: none;
|
||||||
|
|
||||||
|
-webkit-perspective-origin: 50% 50%;
|
||||||
|
-moz-perspective-origin: 50% 50%;
|
||||||
|
-ms-perspective-origin: 50% 50%;
|
||||||
|
perspective-origin: 50% 50%;
|
||||||
|
}
|
||||||
|
.reveal .slides section {
|
||||||
|
visibility: visible !important;
|
||||||
|
position: static !important;
|
||||||
|
width: auto !important;
|
||||||
|
height: auto !important;
|
||||||
|
display: block !important;
|
||||||
|
overflow: visible !important;
|
||||||
|
|
||||||
|
left: 0 !important;
|
||||||
|
top: 0 !important;
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
padding: 60px 20px !important;
|
||||||
|
z-index: auto !important;
|
||||||
|
|
||||||
|
opacity: 1 !important;
|
||||||
|
|
||||||
|
page-break-after: always !important;
|
||||||
|
|
||||||
|
-webkit-transform-style: flat !important;
|
||||||
|
-moz-transform-style: flat !important;
|
||||||
|
-ms-transform-style: flat !important;
|
||||||
|
transform-style: flat !important;
|
||||||
|
|
||||||
|
-webkit-transform: none !important;
|
||||||
|
-moz-transform: none !important;
|
||||||
|
-ms-transform: none !important;
|
||||||
|
transform: none !important;
|
||||||
|
|
||||||
|
-webkit-transition: none !important;
|
||||||
|
-moz-transition: none !important;
|
||||||
|
-ms-transition: none !important;
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
.reveal .slides section.stack {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
.reveal section:last-of-type {
|
||||||
|
page-break-after: avoid !important;
|
||||||
|
}
|
||||||
|
.reveal section .fragment {
|
||||||
|
opacity: 1 !important;
|
||||||
|
visibility: visible !important;
|
||||||
|
|
||||||
|
-webkit-transform: none !important;
|
||||||
|
-moz-transform: none !important;
|
||||||
|
-ms-transform: none !important;
|
||||||
|
transform: none !important;
|
||||||
|
}
|
||||||
|
.reveal section img {
|
||||||
|
display: block;
|
||||||
|
margin: 15px 0px;
|
||||||
|
background: rgba(255,255,255,1);
|
||||||
|
border: 1px solid #666;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal section small {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,340 @@
|
||||||
|
/**
|
||||||
|
|
||||||
|
[ robot-lung ]
|
||||||
|
|
||||||
|
A hot pink theme for Reveal.js with Roboto fonts and a colorful border.
|
||||||
|
By Josh Dzielak, https://dzello.com/, License MIT
|
||||||
|
|
||||||
|
The bold border is optional and requires some HTML. To use it:
|
||||||
|
|
||||||
|
1. Add 4 divs to your HTML page:
|
||||||
|
<div class="line top"></div>
|
||||||
|
<div class="line bottom"></div>
|
||||||
|
<div class="line left"></div>
|
||||||
|
<div class="line right"></div>
|
||||||
|
|
||||||
|
2. Set { margin: 0.2 } in the Reveal.js initializer to make sure
|
||||||
|
your presentation content doesn't collide with the frame.
|
||||||
|
|
||||||
|
Like the theme but don't like the colors? Don't fret. Just change
|
||||||
|
$borderColor and/or $linkColor below to something else and rebuild.
|
||||||
|
|
||||||
|
Or if you don't want to rebuild the theme just override the .line background
|
||||||
|
property with some CSS:
|
||||||
|
|
||||||
|
.line {
|
||||||
|
background: <new-color>;
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
@import url(https://fonts.googleapis.com/css?family=Roboto+Slab:300,700);
|
||||||
|
@import url(https://fonts.googleapis.com/css?family=Roboto:700);
|
||||||
|
section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 {
|
||||||
|
color: #141414; }
|
||||||
|
|
||||||
|
.reveal .controls {
|
||||||
|
right: 50px;
|
||||||
|
bottom: 50px; }
|
||||||
|
|
||||||
|
.line {
|
||||||
|
content: '';
|
||||||
|
position: fixed;
|
||||||
|
background: #FF4081;
|
||||||
|
z-index: 105; }
|
||||||
|
.line.top {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 30px; }
|
||||||
|
@media (max-width: 840px) {
|
||||||
|
.line.top {
|
||||||
|
height: 15px; } }
|
||||||
|
.line.bottom {
|
||||||
|
left: 0;
|
||||||
|
top: auto;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 30px; }
|
||||||
|
@media (max-width: 840px) {
|
||||||
|
.line.bottom {
|
||||||
|
height: 15px; } }
|
||||||
|
.line.left {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 30px;
|
||||||
|
height: 200%; }
|
||||||
|
@media (max-width: 840px) {
|
||||||
|
.line.left {
|
||||||
|
width: 15px; } }
|
||||||
|
.line.right {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 30px;
|
||||||
|
height: 200%; }
|
||||||
|
@media (max-width: 840px) {
|
||||||
|
.line.right {
|
||||||
|
width: 15px; } }
|
||||||
|
|
||||||
|
.reveal.has-dark-background .line {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* GLOBAL STYLES
|
||||||
|
*********************************************/
|
||||||
|
body {
|
||||||
|
background: #fff;
|
||||||
|
background-color: #fff; }
|
||||||
|
|
||||||
|
.reveal {
|
||||||
|
font-family: "Roboto Slab", serif;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #363636; }
|
||||||
|
|
||||||
|
::selection {
|
||||||
|
color: #fff;
|
||||||
|
background: #ffc0d5;
|
||||||
|
text-shadow: none; }
|
||||||
|
|
||||||
|
::-moz-selection {
|
||||||
|
color: #fff;
|
||||||
|
background: #ffc0d5;
|
||||||
|
text-shadow: none; }
|
||||||
|
|
||||||
|
.reveal .slides > section,
|
||||||
|
.reveal .slides > section > section {
|
||||||
|
line-height: 1.3;
|
||||||
|
font-weight: inherit; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* HEADERS
|
||||||
|
*********************************************/
|
||||||
|
.reveal h1,
|
||||||
|
.reveal h2,
|
||||||
|
.reveal h3,
|
||||||
|
.reveal h4,
|
||||||
|
.reveal h5,
|
||||||
|
.reveal h6 {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
color: #141414;
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.2;
|
||||||
|
letter-spacing: normal;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-shadow: none;
|
||||||
|
word-wrap: break-word; }
|
||||||
|
|
||||||
|
.reveal h1 {
|
||||||
|
font-size: 2.6em; }
|
||||||
|
|
||||||
|
.reveal h2 {
|
||||||
|
font-size: 2.2em; }
|
||||||
|
|
||||||
|
.reveal h3 {
|
||||||
|
font-size: 1.7em; }
|
||||||
|
|
||||||
|
.reveal h4 {
|
||||||
|
font-size: 1.4em; }
|
||||||
|
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: none; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* OTHER
|
||||||
|
*********************************************/
|
||||||
|
.reveal p {
|
||||||
|
margin: 20px 0;
|
||||||
|
line-height: 1.3; }
|
||||||
|
|
||||||
|
/* Ensure certain elements are never larger than the slide itself */
|
||||||
|
.reveal img,
|
||||||
|
.reveal video,
|
||||||
|
.reveal iframe {
|
||||||
|
max-width: 95%;
|
||||||
|
max-height: 95%; }
|
||||||
|
|
||||||
|
.reveal strong,
|
||||||
|
.reveal b {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
.reveal em {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
.reveal ol,
|
||||||
|
.reveal dl,
|
||||||
|
.reveal ul {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: left;
|
||||||
|
margin: 0 0 0 1em; }
|
||||||
|
|
||||||
|
.reveal ol {
|
||||||
|
list-style-type: decimal; }
|
||||||
|
|
||||||
|
.reveal ul {
|
||||||
|
list-style-type: disc; }
|
||||||
|
|
||||||
|
.reveal ul ul {
|
||||||
|
list-style-type: square; }
|
||||||
|
|
||||||
|
.reveal ul ul ul {
|
||||||
|
list-style-type: circle; }
|
||||||
|
|
||||||
|
.reveal ul ul,
|
||||||
|
.reveal ul ol,
|
||||||
|
.reveal ol ol,
|
||||||
|
.reveal ol ul {
|
||||||
|
display: block;
|
||||||
|
margin-left: 40px; }
|
||||||
|
|
||||||
|
.reveal dt {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
.reveal dd {
|
||||||
|
margin-left: 40px; }
|
||||||
|
|
||||||
|
.reveal blockquote {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 70%;
|
||||||
|
margin: 20px auto;
|
||||||
|
padding: 5px;
|
||||||
|
font-style: italic;
|
||||||
|
background: rgba(255, 255, 255, 0.05);
|
||||||
|
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
|
||||||
|
|
||||||
|
.reveal blockquote p:first-child,
|
||||||
|
.reveal blockquote p:last-child {
|
||||||
|
display: inline-block; }
|
||||||
|
|
||||||
|
.reveal q {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
.reveal pre {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 90%;
|
||||||
|
margin: 20px auto;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 0.55em;
|
||||||
|
font-family: monospace;
|
||||||
|
line-height: 1.2em;
|
||||||
|
word-wrap: break-word;
|
||||||
|
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
|
||||||
|
|
||||||
|
.reveal code {
|
||||||
|
font-family: monospace;
|
||||||
|
text-transform: none; }
|
||||||
|
|
||||||
|
.reveal pre code {
|
||||||
|
display: block;
|
||||||
|
padding: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
max-height: 400px;
|
||||||
|
word-wrap: normal; }
|
||||||
|
|
||||||
|
.reveal table {
|
||||||
|
margin: auto;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0; }
|
||||||
|
|
||||||
|
.reveal table th {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
.reveal table th,
|
||||||
|
.reveal table td {
|
||||||
|
text-align: left;
|
||||||
|
padding: 0.2em 0.5em 0.2em 0.5em;
|
||||||
|
border-bottom: 1px solid; }
|
||||||
|
|
||||||
|
.reveal table th[align="center"],
|
||||||
|
.reveal table td[align="center"] {
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.reveal table th[align="right"],
|
||||||
|
.reveal table td[align="right"] {
|
||||||
|
text-align: right; }
|
||||||
|
|
||||||
|
.reveal table tbody tr:last-child th,
|
||||||
|
.reveal table tbody tr:last-child td {
|
||||||
|
border-bottom: none; }
|
||||||
|
|
||||||
|
.reveal sup {
|
||||||
|
vertical-align: super; }
|
||||||
|
|
||||||
|
.reveal sub {
|
||||||
|
vertical-align: sub; }
|
||||||
|
|
||||||
|
.reveal small {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 0.6em;
|
||||||
|
line-height: 1.2em;
|
||||||
|
vertical-align: top; }
|
||||||
|
|
||||||
|
.reveal small * {
|
||||||
|
vertical-align: top; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* LINKS
|
||||||
|
*********************************************/
|
||||||
|
.reveal a {
|
||||||
|
color: #FF4081;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: color .15s ease;
|
||||||
|
-moz-transition: color .15s ease;
|
||||||
|
transition: color .15s ease; }
|
||||||
|
|
||||||
|
.reveal a:hover {
|
||||||
|
color: #ff8db3;
|
||||||
|
text-shadow: none;
|
||||||
|
border: none; }
|
||||||
|
|
||||||
|
.reveal .roll span:after {
|
||||||
|
color: #fff;
|
||||||
|
background: #f30053; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* IMAGES
|
||||||
|
*********************************************/
|
||||||
|
.reveal section img {
|
||||||
|
margin: 15px 0px;
|
||||||
|
background: rgba(255, 255, 255, 0.12);
|
||||||
|
border: 4px solid #363636;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
|
||||||
|
|
||||||
|
.reveal section img.plain {
|
||||||
|
border: 0;
|
||||||
|
box-shadow: none; }
|
||||||
|
|
||||||
|
.reveal a img {
|
||||||
|
-webkit-transition: all .15s linear;
|
||||||
|
-moz-transition: all .15s linear;
|
||||||
|
transition: all .15s linear; }
|
||||||
|
|
||||||
|
.reveal a:hover img {
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
border-color: #FF4081;
|
||||||
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* NAVIGATION CONTROLS
|
||||||
|
*********************************************/
|
||||||
|
.reveal .controls {
|
||||||
|
color: #FF4081; }
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* PROGRESS BAR
|
||||||
|
*********************************************/
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: #FF4081; }
|
||||||
|
|
||||||
|
.reveal .progress span {
|
||||||
|
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
|
||||||
|
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
|
||||||
|
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
|
||||||
|
|
||||||
|
.reveal .progress {
|
||||||
|
z-index: 1000;
|
||||||
|
color: #FF80A1; }
|
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
|
@ -0,0 +1,272 @@
|
||||||
|
// Custom reveal.js integration
|
||||||
|
(function(){
|
||||||
|
var revealElement = document.querySelector( '.reveal' );
|
||||||
|
if( revealElement ) {
|
||||||
|
|
||||||
|
revealElement.addEventListener( 'mousedown', function( event ) {
|
||||||
|
var defaultModifier = /Linux/.test( window.navigator.platform ) ? 'ctrl' : 'alt';
|
||||||
|
|
||||||
|
var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : defaultModifier ) + 'Key';
|
||||||
|
var zoomLevel = ( Reveal.getConfig().zoomLevel ? Reveal.getConfig().zoomLevel : 2 );
|
||||||
|
|
||||||
|
if( event[ modifier ] && !Reveal.isOverview() ) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
zoom.to({
|
||||||
|
x: event.clientX,
|
||||||
|
y: event.clientY,
|
||||||
|
scale: zoomLevel,
|
||||||
|
pan: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* zoom.js 0.3 (modified for use with reveal.js)
|
||||||
|
* http://lab.hakim.se/zoom-js
|
||||||
|
* MIT licensed
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se
|
||||||
|
*/
|
||||||
|
var zoom = (function(){
|
||||||
|
|
||||||
|
// The current zoom level (scale)
|
||||||
|
var level = 1;
|
||||||
|
|
||||||
|
// The current mouse position, used for panning
|
||||||
|
var mouseX = 0,
|
||||||
|
mouseY = 0;
|
||||||
|
|
||||||
|
// Timeout before pan is activated
|
||||||
|
var panEngageTimeout = -1,
|
||||||
|
panUpdateInterval = -1;
|
||||||
|
|
||||||
|
// Check for transform support so that we can fallback otherwise
|
||||||
|
var supportsTransforms = 'WebkitTransform' in document.body.style ||
|
||||||
|
'MozTransform' in document.body.style ||
|
||||||
|
'msTransform' in document.body.style ||
|
||||||
|
'OTransform' in document.body.style ||
|
||||||
|
'transform' in document.body.style;
|
||||||
|
|
||||||
|
if( supportsTransforms ) {
|
||||||
|
// The easing that will be applied when we zoom in/out
|
||||||
|
document.body.style.transition = 'transform 0.8s ease';
|
||||||
|
document.body.style.OTransition = '-o-transform 0.8s ease';
|
||||||
|
document.body.style.msTransition = '-ms-transform 0.8s ease';
|
||||||
|
document.body.style.MozTransition = '-moz-transform 0.8s ease';
|
||||||
|
document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zoom out if the user hits escape
|
||||||
|
document.addEventListener( 'keyup', function( event ) {
|
||||||
|
if( level !== 1 && event.keyCode === 27 ) {
|
||||||
|
zoom.out();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Monitor mouse movement for panning
|
||||||
|
document.addEventListener( 'mousemove', function( event ) {
|
||||||
|
if( level !== 1 ) {
|
||||||
|
mouseX = event.clientX;
|
||||||
|
mouseY = event.clientY;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies the CSS required to zoom in, prefers the use of CSS3
|
||||||
|
* transforms but falls back on zoom for IE.
|
||||||
|
*
|
||||||
|
* @param {Object} rect
|
||||||
|
* @param {Number} scale
|
||||||
|
*/
|
||||||
|
function magnify( rect, scale ) {
|
||||||
|
|
||||||
|
var scrollOffset = getScrollOffset();
|
||||||
|
|
||||||
|
// Ensure a width/height is set
|
||||||
|
rect.width = rect.width || 1;
|
||||||
|
rect.height = rect.height || 1;
|
||||||
|
|
||||||
|
// Center the rect within the zoomed viewport
|
||||||
|
rect.x -= ( window.innerWidth - ( rect.width * scale ) ) / 2;
|
||||||
|
rect.y -= ( window.innerHeight - ( rect.height * scale ) ) / 2;
|
||||||
|
|
||||||
|
if( supportsTransforms ) {
|
||||||
|
// Reset
|
||||||
|
if( scale === 1 ) {
|
||||||
|
document.body.style.transform = '';
|
||||||
|
document.body.style.OTransform = '';
|
||||||
|
document.body.style.msTransform = '';
|
||||||
|
document.body.style.MozTransform = '';
|
||||||
|
document.body.style.WebkitTransform = '';
|
||||||
|
}
|
||||||
|
// Scale
|
||||||
|
else {
|
||||||
|
var origin = scrollOffset.x +'px '+ scrollOffset.y +'px',
|
||||||
|
transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
|
||||||
|
|
||||||
|
document.body.style.transformOrigin = origin;
|
||||||
|
document.body.style.OTransformOrigin = origin;
|
||||||
|
document.body.style.msTransformOrigin = origin;
|
||||||
|
document.body.style.MozTransformOrigin = origin;
|
||||||
|
document.body.style.WebkitTransformOrigin = origin;
|
||||||
|
|
||||||
|
document.body.style.transform = transform;
|
||||||
|
document.body.style.OTransform = transform;
|
||||||
|
document.body.style.msTransform = transform;
|
||||||
|
document.body.style.MozTransform = transform;
|
||||||
|
document.body.style.WebkitTransform = transform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Reset
|
||||||
|
if( scale === 1 ) {
|
||||||
|
document.body.style.position = '';
|
||||||
|
document.body.style.left = '';
|
||||||
|
document.body.style.top = '';
|
||||||
|
document.body.style.width = '';
|
||||||
|
document.body.style.height = '';
|
||||||
|
document.body.style.zoom = '';
|
||||||
|
}
|
||||||
|
// Scale
|
||||||
|
else {
|
||||||
|
document.body.style.position = 'relative';
|
||||||
|
document.body.style.left = ( - ( scrollOffset.x + rect.x ) / scale ) + 'px';
|
||||||
|
document.body.style.top = ( - ( scrollOffset.y + rect.y ) / scale ) + 'px';
|
||||||
|
document.body.style.width = ( scale * 100 ) + '%';
|
||||||
|
document.body.style.height = ( scale * 100 ) + '%';
|
||||||
|
document.body.style.zoom = scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
level = scale;
|
||||||
|
|
||||||
|
if( document.documentElement.classList ) {
|
||||||
|
if( level !== 1 ) {
|
||||||
|
document.documentElement.classList.add( 'zoomed' );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.documentElement.classList.remove( 'zoomed' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pan the document when the mosue cursor approaches the edges
|
||||||
|
* of the window.
|
||||||
|
*/
|
||||||
|
function pan() {
|
||||||
|
var range = 0.12,
|
||||||
|
rangeX = window.innerWidth * range,
|
||||||
|
rangeY = window.innerHeight * range,
|
||||||
|
scrollOffset = getScrollOffset();
|
||||||
|
|
||||||
|
// Up
|
||||||
|
if( mouseY < rangeY ) {
|
||||||
|
window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
|
||||||
|
}
|
||||||
|
// Down
|
||||||
|
else if( mouseY > window.innerHeight - rangeY ) {
|
||||||
|
window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Left
|
||||||
|
if( mouseX < rangeX ) {
|
||||||
|
window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
|
||||||
|
}
|
||||||
|
// Right
|
||||||
|
else if( mouseX > window.innerWidth - rangeX ) {
|
||||||
|
window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getScrollOffset() {
|
||||||
|
return {
|
||||||
|
x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
|
||||||
|
y: window.scrollY !== undefined ? window.scrollY : window.pageYOffset
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Zooms in on either a rectangle or HTML element.
|
||||||
|
*
|
||||||
|
* @param {Object} options
|
||||||
|
* - element: HTML element to zoom in on
|
||||||
|
* OR
|
||||||
|
* - x/y: coordinates in non-transformed space to zoom in on
|
||||||
|
* - width/height: the portion of the screen to zoom in on
|
||||||
|
* - scale: can be used instead of width/height to explicitly set scale
|
||||||
|
*/
|
||||||
|
to: function( options ) {
|
||||||
|
|
||||||
|
// Due to an implementation limitation we can't zoom in
|
||||||
|
// to another element without zooming out first
|
||||||
|
if( level !== 1 ) {
|
||||||
|
zoom.out();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
options.x = options.x || 0;
|
||||||
|
options.y = options.y || 0;
|
||||||
|
|
||||||
|
// If an element is set, that takes precedence
|
||||||
|
if( !!options.element ) {
|
||||||
|
// Space around the zoomed in element to leave on screen
|
||||||
|
var padding = 20;
|
||||||
|
var bounds = options.element.getBoundingClientRect();
|
||||||
|
|
||||||
|
options.x = bounds.left - padding;
|
||||||
|
options.y = bounds.top - padding;
|
||||||
|
options.width = bounds.width + ( padding * 2 );
|
||||||
|
options.height = bounds.height + ( padding * 2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// If width/height values are set, calculate scale from those values
|
||||||
|
if( options.width !== undefined && options.height !== undefined ) {
|
||||||
|
options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( options.scale > 1 ) {
|
||||||
|
options.x *= options.scale;
|
||||||
|
options.y *= options.scale;
|
||||||
|
|
||||||
|
magnify( options, options.scale );
|
||||||
|
|
||||||
|
if( options.pan !== false ) {
|
||||||
|
|
||||||
|
// Wait with engaging panning as it may conflict with the
|
||||||
|
// zoom transition
|
||||||
|
panEngageTimeout = setTimeout( function() {
|
||||||
|
panUpdateInterval = setInterval( pan, 1000 / 60 );
|
||||||
|
}, 800 );
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the document zoom state to its default.
|
||||||
|
*/
|
||||||
|
out: function() {
|
||||||
|
clearTimeout( panEngageTimeout );
|
||||||
|
clearInterval( panUpdateInterval );
|
||||||
|
|
||||||
|
magnify( { x: 0, y: 0 }, 1 );
|
||||||
|
|
||||||
|
level = 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Alias
|
||||||
|
magnify: function( options ) { this.to( options ) },
|
||||||
|
reset: function() { this.out() },
|
||||||
|
|
||||||
|
zoomLevel: function() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})();
|
|
@ -1,5 +1,5 @@
|
||||||
title = "GPG presentation"
|
title = "GPG presentation"
|
||||||
baseurl = "http://example.org/"
|
baseurl = "http://localhost:1313/"
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
theme = "reveal-hugo"
|
theme = "reveal-hugo"
|
||||||
[outputFormats.Reveal]
|
[outputFormats.Reveal]
|
||||||
|
|
|
@ -3,7 +3,6 @@ title = "GnuPG"
|
||||||
outputs = ["Reveal"]
|
outputs = ["Reveal"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
![Gnupg](gnupg_logo.png)
|
![Gnupg](gnupg_logo.png)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in New Issue