##// END OF EJS Templates
Use istype() when checking if canned object is a dict...
Use istype() when checking if canned object is a dict Using istype(canned, dict) instead of isinstance(canned, dict) ensures that dict subclasses retain their type during unserialization. This also agrees with the implementation of serialize_object().

File last commit:

r12197:4565b731 merge
r12199:6a72b2cc
Show More
revealhelp.py
94 lines | 3.6 KiB | text/x-python | PythonLexer
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """Module that pre-processes the notebook for export via Reveal.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
damianavila
Added working speaker notes for slides.
r11894 import os
import urllib2
MinRK
s/ConfigurableTransformer/Transformer/
r11452 from .base import Transformer
damianavila
Added working speaker notes for slides.
r11894 from IPython.utils.traitlets import Unicode, Bool
damianavila
Added white line after imports.
r11181
Jonathan Frederic
Cleanup and refactor, transformers
r10674 #-----------------------------------------------------------------------------
# Classes and functions
#-----------------------------------------------------------------------------
MinRK
s/ConfigurableTransformer/Transformer/
r11452 class RevealHelpTransformer(Transformer):
Jonathan Frederic
Split transformer code
r10437
damianavila
Added some changes covering Mathias's commentaries.
r11183 url_prefix = Unicode('//cdn.jsdelivr.net/reveal.js/2.4.0',
config=True,
help="""If you want to use a local reveal.js library,
use 'url_prefix':'reveal.js' in your config object.""")
damianavila
Make configurable the url where look for reveal.js library.
r11179
damianavila
Fixed trailets help.
r12051 speaker_notes = Bool(False,
config=True,
help="""If you want to use the speaker notes
set this to True.""")
damianavila
Make configurable the url where look for reveal.js library.
r11179
damianavila
Fixed css in template and call() in reveal help.
r10851 def call(self, nb, resources):
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
Called once to 'transform' contents of the notebook.
damianavila
Added some changes covering Mathias's commentaries.
r11183
Jonathan Frederic
Cleanup and refactor, transformers
r10674 Parameters
----------
nb : NotebookNode
Notebook being converted
resources : dictionary
Additional resources used in the conversion process. Allows
transformers to pass variables into the Jinja engine.
"""
damianavila
Added some changes covering Mathias's commentaries.
r11183
Jonathan Frederic
Split transformer code
r10437 for worksheet in nb.worksheets :
Jonathan Frederic
Added writers and supporting code.
r11367 for index, cell in enumerate(worksheet.cells):
damianavila
Fixed reveal in the new nbconvert to make it work.
r10823
#Make sure the cell has slideshow metadata.
damianavila
Added changes to understand alignment metadata for each cells.
r10947 cell.metadata.align_type = cell.get('metadata', {}).get('slideshow', {}).get('align_type', 'Left')
damianavila
Fixed reveal in the new nbconvert to make it work.
r10823 cell.metadata.slide_type = cell.get('metadata', {}).get('slideshow', {}).get('slide_type', '-')
Jonathan Frederic
Cleanup and refactor, transformers
r10674 #Get the slide type. If type is start of subslide or slide,
#end the last subslide/slide.
Jonathan Frederic
Split transformer code
r10437 if cell.metadata.slide_type in ['slide']:
Jonathan Frederic
Added writers and supporting code.
r11367 worksheet.cells[index - 1].metadata.slide_helper = 'slide_end'
Jonathan Frederic
Split transformer code
r10437 if cell.metadata.slide_type in ['subslide']:
Jonathan Frederic
Added writers and supporting code.
r11367 worksheet.cells[index - 1].metadata.slide_helper = 'subslide_end'
damianavila
Make configurable the url where look for reveal.js library.
r11179
damianavila
Added some changes covering Mathias's commentaries.
r11183
Jonathan Frederic
Fixed, don't check using in since resources is a default dict.
r12143 if not isinstance(resources['reveal'], dict):
damianavila
Added look for key 'reveal' to not overwrite it.
r11184 resources['reveal'] = {}
damianavila
Added some changes covering Mathias's commentaries.
r11183 resources['reveal']['url_prefix'] = self.url_prefix
damianavila
Added working speaker notes for slides.
r11894 resources['reveal']['notes_prefix'] = self.url_prefix
cdn = 'http://cdn.jsdelivr.net/reveal.js/2.4.0'
local = 'local'
html_path = 'plugin/notes/notes.html'
js_path = 'plugin/notes/notes.js'
html_infile = os.path.join(cdn, html_path)
js_infile = os.path.join(cdn, js_path)
html_outfile = os.path.join(local, html_path)
js_outfile = os.path.join(local, js_path)
if self.speaker_notes:
if 'outputs' not in resources:
resources['outputs'] = {}
resources['outputs'][html_outfile] = self.notes_helper(html_infile)
resources['outputs'][js_outfile] = self.notes_helper(js_infile)
resources['reveal']['notes_prefix'] = local
damianavila
Added some changes covering Mathias's commentaries.
r11183
Jonathan Frederic
Cleanup and refactor, transformers
r10674 return nb, resources
damianavila
Added working speaker notes for slides.
r11894
def notes_helper(self, infile):
"""Helper function to get the content from an url."""
content = urllib2.urlopen(infile).read()
return content