28 lines
965 B
Django/Jinja
28 lines
965 B
Django/Jinja
{%- macro jupyter_widgets(widgets_cdn_url, html_manager_semver_range) -%}
|
|
|
|
<script>
|
|
(function() {
|
|
function addWidgetsRenderer() {
|
|
var mimeElement = document.querySelector('script[type="application/vnd.jupyter.widget-view+json"]');
|
|
var scriptElement = document.createElement('script');
|
|
var widgetRendererSrc = '{{ widgets_cdn_url }}@jupyter-widgets/html-manager@{{ html_manager_semver_range }}/dist/embed-amd.js';
|
|
var widgetState;
|
|
|
|
// Fallback for older version:
|
|
try {
|
|
widgetState = mimeElement && JSON.parse(mimeElement.innerHTML);
|
|
|
|
if (widgetState && (widgetState.version_major < 2 || !widgetState.version_major)) {
|
|
widgetRendererSrc = '{{ widgets_cdn_url }}jupyter-js-widgets@*/dist/embed.js';
|
|
}
|
|
} catch(e) {}
|
|
|
|
scriptElement.src = widgetRendererSrc;
|
|
document.body.appendChild(scriptElement);
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', addWidgetsRenderer);
|
|
}());
|
|
</script>
|
|
|
|
{%- endmacro %}
|