##// END OF EJS Templates
remove special handling of speaker notes
MinRK -
Show More
@@ -1,94 +1,67 b''
1 1 """Module that pre-processes the notebook for export via Reveal.
2 2 """
3 3 #-----------------------------------------------------------------------------
4 4 # Copyright (c) 2013, the IPython Development Team.
5 5 #
6 6 # Distributed under the terms of the Modified BSD License.
7 7 #
8 8 # The full license is in the file COPYING.txt, distributed with this software.
9 9 #-----------------------------------------------------------------------------
10 10
11 11 #-----------------------------------------------------------------------------
12 12 # Imports
13 13 #-----------------------------------------------------------------------------
14 14
15 15 import os
16 16 import urllib2
17 17
18 18 from .base import Preprocessor
19 19 from IPython.utils.traitlets import Unicode, Bool
20 20
21 21 #-----------------------------------------------------------------------------
22 22 # Classes and functions
23 23 #-----------------------------------------------------------------------------
24 24
25 25 class RevealHelpPreprocessor(Preprocessor):
26 26
27 url_prefix = Unicode('//cdn.jsdelivr.net/reveal.js/2.4.0',
28 config=True,
29 help="""If you want to use a local reveal.js library,
30 use 'url_prefix':'reveal.js' in your config object.""")
31
32 speaker_notes = Bool(False,
33 config=True,
34 help="""If you want to use the speaker notes
35 set this to True.""")
27 url_prefix = Unicode('https://cdn.jsdelivr.net/reveal.js/2.4.0', config=True,
28 help="""The URL prefix for reveal.js.
29 This can be a a relative URL for a local copy of reveal.js,
30 or point to a CDN.
31
32 For speaker notes to work, a local reveal.js must be used.
33 """
34 )
36 35
37 36 def preprocess(self, nb, resources):
38 37 """
39 38 Called once to 'preprocess' contents of the notebook.
40 39
41 40 Parameters
42 41 ----------
43 42 nb : NotebookNode
44 43 Notebook being converted
45 44 resources : dictionary
46 45 Additional resources used in the conversion process. Allows
47 46 preprocessors to pass variables into the Jinja engine.
48 47 """
49 48
50 49 for worksheet in nb.worksheets :
51 50 for index, cell in enumerate(worksheet.cells):
52 51
53 52 #Make sure the cell has slideshow metadata.
54 53 cell.metadata.align_type = cell.get('metadata', {}).get('slideshow', {}).get('align_type', 'Left')
55 54 cell.metadata.slide_type = cell.get('metadata', {}).get('slideshow', {}).get('slide_type', '-')
56 55
57 56 #Get the slide type. If type is start of subslide or slide,
58 57 #end the last subslide/slide.
59 58 if cell.metadata.slide_type in ['slide']:
60 59 worksheet.cells[index - 1].metadata.slide_helper = 'slide_end'
61 60 if cell.metadata.slide_type in ['subslide']:
62 61 worksheet.cells[index - 1].metadata.slide_helper = 'subslide_end'
63 62
64 63
65 64 if not isinstance(resources['reveal'], dict):
66 65 resources['reveal'] = {}
67 66 resources['reveal']['url_prefix'] = self.url_prefix
68 resources['reveal']['notes_prefix'] = self.url_prefix
69
70 cdn = 'http://cdn.jsdelivr.net/reveal.js/2.4.0'
71 local = 'local'
72 html_path = 'plugin/notes/notes.html'
73 js_path = 'plugin/notes/notes.js'
74
75 html_infile = os.path.join(cdn, html_path)
76 js_infile = os.path.join(cdn, js_path)
77 html_outfile = os.path.join(local, html_path)
78 js_outfile = os.path.join(local, js_path)
79
80 if self.speaker_notes:
81 if 'outputs' not in resources:
82 resources['outputs'] = {}
83 resources['outputs'][html_outfile] = self.notes_helper(html_infile)
84 resources['outputs'][js_outfile] = self.notes_helper(js_infile)
85 resources['reveal']['notes_prefix'] = local
86
87 67 return nb, resources
88
89 def notes_helper(self, infile):
90 """Helper function to get the content from an url."""
91
92 content = urllib2.urlopen(infile).read()
93
94 return content
@@ -1,185 +1,185 b''
1 1 {%- extends 'reveal_internals/slides.tpl' -%}
2 2
3 3
4 4 {% block header %}
5 5 <!DOCTYPE html>
6 6 <html>
7 7 <head>
8 8
9 9 <meta charset="utf-8" />
10 10 <meta http-equiv="X-UA-Compatible" content="chrome=1">
11 11
12 12 <meta name="apple-mobile-web-app-capable" content="yes" />
13 13 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
14 14
15 15 <!-- General and theme style sheets -->
16 16 <link rel="stylesheet" href="{{resources.reveal.url_prefix}}/css/reveal.css">
17 17 <link rel="stylesheet" href="{{resources.reveal.url_prefix}}/css/theme/simple.css" id="theme">
18 18
19 19 <!-- For syntax highlighting -->
20 20 <link rel="stylesheet" href="{{resources.reveal.url_prefix}}/lib/css/zenburn.css">
21 21
22 22 <!-- If the query includes 'print-pdf', use the PDF print sheet -->
23 23 <script>
24 24 document.write( '<link rel="stylesheet" href="{{resources.reveal.url_prefix}}/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
25 25 </script>
26 26
27 27 <!--[if lt IE 9]>
28 28 <script src="{{resources.reveal.url_prefix}}/lib/js/html5shiv.js"></script>
29 29 <![endif]-->
30 30
31 31 {% for css in resources.inlining.css -%}
32 32 <style type="text/css">
33 33 {{ css }}
34 34 </style>
35 35 {% endfor %}
36 36
37 37 <style type="text/css">
38 38 /* Overrides of notebook CSS for static HTML export */
39 39 .reveal {
40 40 font-size: 20px;
41 41 overflow-y: auto;
42 42 overflow-x: hidden;
43 43 }
44 44 .reveal pre {
45 45 width: 95%;
46 46 padding: 0.4em;
47 47 margin: 0px;
48 48 font-family: monospace, sans-serif;
49 49 font-size: 80%;
50 50 box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
51 51 }
52 52 .reveal section img {
53 53 border: 0px solid black;
54 54 box-shadow: 0 0 10px rgba(0, 0, 0, 0);
55 55 }
56 56 .reveal .slides {
57 57 text-align: left;
58 58 }
59 59 .reveal.fade {
60 60 opacity: 1;
61 61 }
62 62 div.input_area {
63 63 padding: 0.06em;
64 64 }
65 65 div.code_cell {
66 66 background-color: transparent;
67 67 }
68 68 div.prompt {
69 69 width: 11ex;
70 70 padding: 0.4em;
71 71 margin: 0px;
72 72 font-family: monospace, sans-serif;
73 73 font-size: 80%;
74 74 text-align: right;
75 75 }
76 76 div.output_area pre {
77 77 font-family: monospace, sans-serif;
78 78 font-size: 80%;
79 79 }
80 80 div.output_prompt {
81 81 /* 5px right shift to account for margin in parent container */
82 82 margin: 5px 5px 0 0;
83 83 }
84 84 .rendered_html p {
85 85 text-align: inherit;
86 86 }
87 87 </style>
88 88
89 89 <!-- Custom stylesheet, it must be in the same directory as the html file -->
90 90 <link rel="stylesheet" href="custom.css">
91 91
92 92 </head>
93 93 {% endblock header%}
94 94
95 95
96 96 {% block body %}
97 97 <body>
98 98 <div class="reveal">
99 99 <div class="slides">
100 100 {{ super() }}
101 101 </div>
102 102 </div>
103 103
104 104 <!--
105 105 Uncomment the following block and the addthis_widget.js (see below inside dependencies)
106 106 to get enable social buttons.
107 107 -->
108 108
109 109 <!--
110 110 <div class="addthis_toolbox addthis_floating_style addthis_32x32_style" style="left:20px;top:20px;">
111 111 <a class="addthis_button_twitter"></a>
112 112 <a class="addthis_button_google_plusone_share"></a>
113 113 <a class="addthis_button_linkedin"></a>
114 114 <a class="addthis_button_facebook"></a>
115 115 <a class="addthis_button_more"></a>
116 116 </div>
117 117 -->
118 118
119 119 <script src="{{resources.reveal.url_prefix}}/lib/js/head.min.js"></script>
120 120
121 121 <script src="{{resources.reveal.url_prefix}}/js/reveal.js"></script>
122 122
123 123 <script>
124 124
125 125 // Full list of configuration options available here: https://github.com/hakimel/reveal.js#configuration
126 126 Reveal.initialize({
127 127 controls: true,
128 128 progress: true,
129 129 history: true,
130 130
131 131 theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
132 132 transition: Reveal.getQueryHash().transition || 'linear', // default/cube/page/concave/zoom/linear/none
133 133
134 134 // Optional libraries used to extend on reveal.js
135 135 dependencies: [
136 136 { src: "{{resources.reveal.url_prefix}}/lib/js/classList.js", condition: function() { return !document.body.classList; } },
137 137 { src: "{{resources.reveal.url_prefix}}/plugin/highlight/highlight.js", async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
138 { src: "{{resources.reveal.notes_prefix}}/plugin/notes/notes.js", async: true, condition: function() { return !!document.body.classList; } }
138 { src: "{{resources.reveal.url_prefix}}/plugin/notes/notes.js", async: true, condition: function() { return !!document.body.classList; } }
139 139 // { src: 'http://s7.addthis.com/js/300/addthis_widget.js', async: true},
140 140 ]
141 141 });
142 142 </script>
143 143
144 144 <!-- MathJax configuration -->
145 145 <script type="text/x-mathjax-config">
146 146 MathJax.Hub.Config({
147 147 tex2jax: {
148 148 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
149 149 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
150 150 },
151 151 displayAlign: 'left', // Change this to 'center' to center equations.
152 152 "HTML-CSS": {
153 153 styles: {'.MathJax_Display': {"margin": 0}}
154 154 }
155 155 });
156 156 </script>
157 157 <!-- End of mathjax configuration -->
158 158
159 159 <script>
160 160 // We wait for the onload function to load MathJax after the page is completely loaded.
161 161 // MathJax is loaded 1 unit of time after the page is ready.
162 162 // This hack prevent problems when you load multiple js files (i.e. social button from addthis).
163 163 //
164 164 window.onload = function () {
165 165 setTimeout(function () {
166 166 var script = document.createElement("script");
167 167 script.type = "text/javascript";
168 168 script.src = "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML";
169 169 document.getElementsByTagName("head")[0].appendChild(script);
170 170 },1)
171 171 }
172 172 </script>
173 173
174 174 <script>
175 175 Reveal.addEventListener( 'slidechanged', function( event ) {
176 176 MathJax.Hub.Rerender(event.currentSlide);
177 177 });
178 178 </script>
179 179
180 180 </body>
181 181 {% endblock body %}
182 182
183 183 {% block footer %}
184 184 </html>
185 185 {% endblock footer %} No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now