Source code for nbtoolbelt.rendering

"""
Functions for rendering

Copyright (c) 2017 - Eindhoven University of Technology, The Netherlands

This software is made available under the terms of the MIT License.

Parts of this code are reworked from the rendernb checklet for Momotor <momotor.org>.
"""

from argparse import Namespace
from typing import Any, Dict

from nbconvert import HTMLExporter
from nbformat import NotebookNode
from traitlets.config import Config

from .inline_attachments import InlineAttachmentsPreprocessor


# ADDITIONAL_STYLES = dedent("""\
#     div.inner_cell, div.output_subarea {
#       flex: 1 auto !important;
#     }
#     """)
#
# HTML_FRAME = dedent("""\
#     <html>
#     <head>
#     <style>
#     {css}
#     </style>
#     <script>
#     {javascript}
#     </script>
#     </head>
#     <body>
#     {body}
#     </body>
#     </html>
#     """)


[docs]def render_nb(notebook: NotebookNode, args: Namespace) -> Dict[str, Any]: """Render notebook as html. Uses ``args.template`` as template name. :param notebook: notebook to render :param args: options :return: html """ resources = {} iapp = InlineAttachmentsPreprocessor() notebook, resources = iapp.preprocess(notebook, resources) c = Config() c.HTMLExporter.template_name = args.template # TODO also set extra_template_basedirs from option? html_exporter = HTMLExporter(config=c) html, resources = html_exporter.from_notebook_node(notebook) # properties = { # 'body': html, # 'css': '', # 'javascript': '' # } # return HTML_FRAME.format(**properties) return html