New version of the lecture
This commit is contained in:
108
Lecture_files/libs/revealjs/plugin/pdf-export/pdfexport.js
Normal file
108
Lecture_files/libs/revealjs/plugin/pdf-export/pdfexport.js
Normal file
@@ -0,0 +1,108 @@
|
||||
var PdfExport = ( function( _Reveal ){
|
||||
|
||||
var Reveal = _Reveal;
|
||||
var setStylesheet = null;
|
||||
var installAltKeyBindings = null;
|
||||
|
||||
function getRevealJsPath(){
|
||||
var regex = /\b[^/]+\/reveal.css$/i;
|
||||
var script = Array.from( document.querySelectorAll( 'link' ) ).find( function( e ){
|
||||
return e.attributes.href && e.attributes.href.value.search( regex ) >= 0;
|
||||
});
|
||||
if( !script ){
|
||||
console.error( 'reveal.css could not be found in included <link> elements. Did you rename this file?' );
|
||||
return '';
|
||||
}
|
||||
return script.attributes.href.value.replace( regex, '' );
|
||||
}
|
||||
|
||||
function setStylesheet3( pdfExport ){
|
||||
var link = document.querySelector( '#print' );
|
||||
if( !link ){
|
||||
link = document.createElement( 'link' );
|
||||
link.rel = 'stylesheet';
|
||||
link.id = 'print';
|
||||
document.querySelector( 'head' ).appendChild( link );
|
||||
}
|
||||
var style = 'paper';
|
||||
if( pdfExport ){
|
||||
style = 'pdf';
|
||||
}
|
||||
link.href = getRevealJsPath() + 'css/print/' + style + '.css';
|
||||
}
|
||||
|
||||
function setStylesheet4( pdfExport ){
|
||||
}
|
||||
|
||||
function installAltKeyBindings3(){
|
||||
}
|
||||
|
||||
function installAltKeyBindings4(){
|
||||
if( isPrintingPDF() ){
|
||||
var config = Reveal.getConfig();
|
||||
var shortcut = config.pdfExportShortcut || 'E';
|
||||
window.addEventListener( 'keydown', function( e ){
|
||||
if( e.target.nodeName.toUpperCase() == 'BODY'
|
||||
&& ( e.key.toUpperCase() == shortcut.toUpperCase() || e.keyCode == shortcut.toUpperCase().charCodeAt( 0 ) ) ){
|
||||
e.preventDefault();
|
||||
togglePdfExport();
|
||||
return false;
|
||||
}
|
||||
}, true );
|
||||
}
|
||||
}
|
||||
|
||||
function isPrintingPDF(){
|
||||
return ( /print-pdf/gi ).test( window.location.search );
|
||||
}
|
||||
|
||||
function togglePdfExport(){
|
||||
var url_doc = new URL( document.URL );
|
||||
var query_doc = new URLSearchParams( url_doc.searchParams );
|
||||
if( isPrintingPDF() ){
|
||||
query_doc.delete( 'print-pdf' );
|
||||
}else{
|
||||
query_doc.set( 'print-pdf', '' );
|
||||
}
|
||||
url_doc.search = ( query_doc.toString() ? '?' + query_doc.toString() : '' );
|
||||
window.location.href = url_doc.toString();
|
||||
}
|
||||
|
||||
function installKeyBindings(){
|
||||
var config = Reveal.getConfig();
|
||||
var shortcut = config.pdfExportShortcut || 'E';
|
||||
Reveal.addKeyBinding({
|
||||
keyCode: shortcut.toUpperCase().charCodeAt( 0 ),
|
||||
key: shortcut.toUpperCase(),
|
||||
description: 'PDF export mode'
|
||||
}, togglePdfExport );
|
||||
installAltKeyBindings();
|
||||
}
|
||||
|
||||
function install(){
|
||||
installKeyBindings();
|
||||
setStylesheet( isPrintingPDF() );
|
||||
}
|
||||
|
||||
var Plugin = {
|
||||
}
|
||||
|
||||
if( Reveal && Reveal.VERSION && Reveal.VERSION.length && Reveal.VERSION[ 0 ] == '3' ){
|
||||
// reveal 3.x
|
||||
setStylesheet = setStylesheet3;
|
||||
installAltKeyBindings = installAltKeyBindings3;
|
||||
install();
|
||||
}else{
|
||||
// must be reveal 4.x
|
||||
setStylesheet = setStylesheet4;
|
||||
installAltKeyBindings = installAltKeyBindings4;
|
||||
Plugin.id = 'pdf-export';
|
||||
Plugin.init = function( _Reveal ){
|
||||
Reveal = _Reveal;
|
||||
install();
|
||||
};
|
||||
}
|
||||
|
||||
return Plugin;
|
||||
|
||||
})( Reveal );
|
||||
2
Lecture_files/libs/revealjs/plugin/pdf-export/plugin.yml
Normal file
2
Lecture_files/libs/revealjs/plugin/pdf-export/plugin.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
name: PdfExport
|
||||
script: pdfexport.js
|
||||
Reference in New Issue
Block a user