import panel as pn
import holoviews as hv
pn.extension()
template = """
{% extends base %}
{% block postamble %}
{% endblock %}
{% block contents %}
{{ app_title }}
This is a Panel app with a custom template allowing us to compose multiple Panel objects into a single HTML document.
{{ embed(roots.A) }}
{{ embed(roots.B) }}
{% endblock %}
"""
tmpl = pn.Template(template)
tmpl.add_variable('app_title', 'Custom Template App
')
tmpl.add_panel('A', hv.Curve([1, 2, 3]))
tmpl.add_panel('B', hv.Curve([1, 2, 3]))
tmpl.servable();
nb_template = """
{% extends base %}
{% block contents %}
{{ app_title }}
This is a Panel app with a custom template allowing us to compose multiple Panel objects into a single HTML document.
{{ embed(roots.A) }}
{{ embed(roots.B) }}
{% endblock %}
"""
tmpl = pn.Template(template, nb_template=nb_template)
tmpl.add_variable('app_title', 'Custom Template App
')
tmpl.add_panel('A', hv.Curve([1, 2, 3]))
tmpl.add_panel('B', hv.Curve([1, 2, 3]))
tmpl.servable()
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('.'))
jinja_template = env.get_template('sample_template.html')
tmpl = pn.Template(jinja_template)
tmpl.add_panel('A', hv.Curve([1, 2, 3]))
tmpl.add_panel('B', hv.Curve([1, 2, 3]))