Source code for panel.template.slides
"""
Vanilla template
"""
import pathlib
import param
from ...config import config as pn_config
from ..vanilla import VanillaTemplate
REVEAL_THEMES = ['black', 'white', 'league', 'beige', 'night', 'solarized', 'simple']
REVEAL_CSS = f"{pn_config.npm_cdn}/reveal.js@4.5.0/dist/reveal.min.css"
FONT_CSS = f"{pn_config.npm_cdn}/reveal.js@4.5.0/dist/theme/fonts/source-sans-pro/source-sans-pro.css"
REVEAL_THEME_CSS = {
f'reveal-{theme}': f'{pn_config.npm_cdn}/reveal.js@4.5.0/dist/theme/{theme}.css'
for theme in REVEAL_THEMES
}
[docs]class SlidesTemplate(VanillaTemplate):
"""
SlidesTemplate is built on top of Vanilla web components.
"""
collapsed_sidebar = param.Selector(default=True, constant=True, doc="""
Whether the sidebar (if present) is initially collapsed.""")
reveal_config = param.Dict(default={}, doc="""
Configuration parameters for reveal.js""")
reveal_theme = param.Selector(default=None, objects=REVEAL_THEMES, doc="""
The reveal.js theme to load.""")
show_header = param.Boolean(default=False, doc="""
Whether to show the header component.""")
_css = [VanillaTemplate._css, pathlib.Path(__file__).parent / 'slides.css']
_template = pathlib.Path(__file__).parent / 'slides.html'
_resources = {
'js': {
'reveal': f"{pn_config.npm_cdn}/reveal.js@4.5.0/dist/reveal.min.js",
},
'css': dict(REVEAL_THEME_CSS, reveal=REVEAL_CSS, font=FONT_CSS),
'bundle': True,
'tarball': {
'reveal': {
'tar': 'https://registry.npmjs.org/reveal.js/-/reveal.js-4.5.0.tgz',
'src': 'package/',
'dest': 'reveal.js@4.5.0',
'exclude': ['*.d.ts', '*.json', '*.md', '*.html', '*esm*', '*js*', '*/css/*', '*/plugin/*', '*reveal.js']
}
}
}
def __init__(self, **params):
super().__init__(**params)
if 'reveal_theme' not in params:
self.reveal_theme = 'black' if self._design.theme._name == 'dark' else 'white'
self._update_render_vars()
@param.depends('reveal_config', 'reveal_theme', 'show_header', watch=True)
def _update_render_vars(self):
self._resources['css'] = {
'font': FONT_CSS,
'reveal': REVEAL_CSS,
'reveal-theme': REVEAL_THEME_CSS[f'reveal-{self.reveal_theme}']
}
self._render_variables['show_header'] = self.show_header
self._render_variables['reveal_config'] = self.reveal_config