|
<!DOCTYPE html> |
|
<html> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
<title>{{page_config['appName'] | e}} - Notebook</title> |
|
{% block favicon %} |
|
<link rel="icon" type="image/x-icon" href="{{ base_url | escape }}static/favicons/favicon-notebook.ico" class="favicon"> |
|
{% endblock %} |
|
|
|
{% if custom_css %} |
|
<link rel="stylesheet" type="text/css" href="{{ base_url | escape }}custom/custom.css"> |
|
{% endif %} |
|
</head> |
|
<body data-notebook="notebooks"> |
|
|
|
{# Copy so we do not modify the page_config with updates. #} |
|
{% set page_config_full = page_config.copy() %} |
|
|
|
{# Set a dummy variable - we just want the side effect of the update. #} |
|
{% set _ = page_config_full.update(baseUrl=base_url, wsUrl=ws_url) %} |
|
|
|
{# Sentinel value to say that we are on the tree page #} |
|
{% set _ = page_config_full.update(notebookPage='notebooks') %} |
|
|
|
<script id="jupyter-config-data" type="application/json"> |
|
{{ page_config_full | tojson }} |
|
</script> |
|
<script src="{{page_config['fullStaticUrl'] | e}}/bundle.js" main="index"></script> |
|
|
|
<script type="text/javascript"> |
|
|
|
(function () { |
|
var parsedUrl = new URL(window.location.href); |
|
if (parsedUrl.searchParams.get('token')) { |
|
parsedUrl.searchParams.delete('token'); |
|
window.history.replaceState({ }, '', parsedUrl.href); |
|
} |
|
})(); |
|
</script> |
|
|
|
</body> |
|
</html> |
|
|