##// END OF EJS Templates
Redo after corrupted codebase.
damianavila -
Show More
@@ -0,0 +1,44 b''
1 #!/usr/bin/env python
2 """
3 Contains writer for writing nbconvert output to filesystem.
4 """
5 #-----------------------------------------------------------------------------
6 #Copyright (c) 2013, the IPython Development Team.
7 #
8 #Distributed under the terms of the Modified BSD License.
9 #
10 #The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
12
13 #-----------------------------------------------------------------------------
14 # Imports
15 #-----------------------------------------------------------------------------
16
17 import os
18
19 from BaseHTTPServer import HTTPServer
20 from SimpleHTTPServer import SimpleHTTPRequestHandler
21
22 from .files import FilesWriter
23
24 #-----------------------------------------------------------------------------
25 # Classes
26 #-----------------------------------------------------------------------------
27
28 class ServeWriter(FilesWriter):
29 """
30 Consumes nbconvert output and produces files (inherited from FilesWriter).
31 Then serve the build directory containing the nbconverted files.
32 """
33
34 def serve(self, format):
35 """
36 Simple implementation to serve the build directory.
37 """
38
39 os.chdir(self.build_directory)
40 httpd = HTTPServer(('127.0.0.1', 8000), SimpleHTTPRequestHandler)
41 sa = httpd.socket.getsockname()
42 print("Serving '" + format + "' nbconverted ipynb on http://" + sa[0] + ":" + str(sa[1]) + "/")
43 print("Use Control-C to stop this server.")
44 httpd.serve_forever() No newline at end of file
@@ -67,6 +67,10 b' nbconvert_flags.update({'
67 67 'stdout' : (
68 68 {'NbConvertApp' : {'writer_class' : "StdoutWriter"}},
69 69 "Write notebook output to stdout instead of files."
70 ),
71 'serve' : (
72 {'NbConvertApp' : {'writer_class' : "ServeWriter"}},
73 "Write notebook to a file and serve it."
70 74 )
71 75 })
72 76
@@ -141,7 +145,8 b' class NbConvertApp(BaseIPythonApplication):'
141 145 results of the conversion""")
142 146 writer_aliases = {'FilesWriter': 'IPython.nbconvert.writers.files.FilesWriter',
143 147 'DebugWriter': 'IPython.nbconvert.writers.debug.DebugWriter',
144 'StdoutWriter': 'IPython.nbconvert.writers.stdout.StdoutWriter'}
148 'StdoutWriter': 'IPython.nbconvert.writers.stdout.StdoutWriter',
149 'ServeWriter': 'IPython.nbconvert.writers.serve.ServeWriter'}
145 150 writer_factory = Type()
146 151
147 152 def _writer_class_changed(self, name, old, new):
@@ -246,6 +251,7 b' class NbConvertApp(BaseIPythonApplication):'
246 251 """
247 252 super(NbConvertApp, self).start()
248 253 self.convert_notebooks()
254 self.serve_files()
249 255
250 256 def convert_notebooks(self):
251 257 """
@@ -292,7 +298,12 b' class NbConvertApp(BaseIPythonApplication):'
292 298 if conversion_success == 0:
293 299 self.print_help()
294 300 sys.exit(-1)
295
301
302 def serve_files(self):
303 """
304 Serve the resulting files arter nbconversion.
305 """
306 self.writer.serve(self.export_format)
296 307
297 308 #-----------------------------------------------------------------------------
298 309 # Main entry point
@@ -99,4 +99,11 b' class FilesWriter(WriterBase):'
99 99 # Write conversion results.
100 100 with io.open(dest, 'w') as f:
101 101 f.write(output)
102 return dest No newline at end of file
102 return dest
103
104
105 def serve(self, format):
106 """
107 Not implemented function to serve the build directory.
108 """
109 pass No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now