Source code for nbpresent.export

from argparse import ArgumentParser
import os
import sys

from .exporters import (
    APP_ROOT
)


[docs]def export(ipynb=None, outfile=None, out_format=None, verbose=None): if out_format in ["pdf"]: from .exporters.pdf import PDFPresentExporter as Exporter elif out_format in ["html"]: from .exporters.html import PresentExporter as Exporter elif out_format in ["zip"]: raise NotImplemented("zip output like the browser app coming soon") exp = Exporter( template_file="nbpresent", template_path=[os.path.join(APP_ROOT, "templates")] ) if ipynb is not None: output, resources = exp.from_filename(ipynb) else: output, resources = exp.from_file(sys.stdin) mode, stream = (["wb+", sys.stdout.buffer] if out_format in ["pdf", "zip"] else ["w+", sys.stdout]) if outfile is not None: with open(outfile, mode) as f: f.write(output) else: stream.write(output)
[docs]def main(): parser = ArgumentParser( description="Generate a static nbpresent presentation from a Jupyter" " Notebook") parser.add_argument( "-i", "--ipynb", help="Input file (otherwise read from stdin)") parser.add_argument( "-o", "--outfile", help="Output file (otherwise write to stdout)") parser.add_argument( "-f", "--out-format", default="html", choices=["html", "zip", "pdf"], help="Output format" ) export(**parser.parse_args().__dict__)
if __name__ == "__main__": main()