##// END OF EJS Templates
replace 'transformer' with 'preprocessor'
replace 'transformer' with 'preprocessor'

File last commit:

r12219:60e06808
r12219:60e06808
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
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 from .base import Preprocessor
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
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class RevealHelpPreprocessor(Preprocessor):
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
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def preprocess(self, nb, resources):
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 Called once to 'preprocess' 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
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessors to pass variables into the Jinja engine.
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
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