214 lines
8.2 KiB
HTML
214 lines
8.2 KiB
HTML
{% import 'macros.html' as macros %}
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="{{lang}}">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta content="width=device-width, initial-scale=1" name="viewport" />
|
|
<meta content="#ffffff" name="theme-color" />
|
|
<meta content="#da532c" name="msapplication-TileColor" />
|
|
|
|
{% if config.extra.favicon.webmanifest %}
|
|
<link href='{{ config.extra.favicon.webmanifest }}' rel="manifest" />
|
|
{% endif %}
|
|
{% if config.extra.favicon.safari_pinned_tab %}
|
|
<link color="#5bbad5" href='{{ config.extra.favicon.safari_pinned_tab }}' rel="mask-icon" />
|
|
{% endif %}
|
|
{% if config.extra.favicon.favicon_16x16 %}
|
|
<link href='{{ config.extra.favicon.favicon_16x16 }}' rel="icon" sizes="16x16" type="image/png" />
|
|
{% endif %}
|
|
{% if config.extra.favicon.favicon_32x32 %}
|
|
<link href='{{ config.extra.favicon.favicon_32x32 }}' rel="icon" sizes="32x32" type="image/png" />
|
|
{% endif %}
|
|
{% if config.extra.favicon.apple_touch_icon %}
|
|
<link href='{{ config.extra.favicon.apple_touch_icon }}' rel="apple-touch-icon" sizes="180x180" />
|
|
{% endif %}
|
|
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/themes/folio/galleria.folio.min.css" rel="stylesheet" />
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
|
|
<link href='https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.css' rel='stylesheet' />
|
|
<link href="https://use.fontawesome.com/releases/v5.15.4/css/all.css" rel="stylesheet" />
|
|
<link href="https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css" rel="stylesheet" />
|
|
<link href="{{ get_url(path='deep-thought.css') }}" rel="stylesheet" />
|
|
|
|
<title>
|
|
{% block title %}
|
|
{{ config.title }}
|
|
{% endblock title %}
|
|
</title>
|
|
|
|
{% if config.extra.analytics.google %}
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ config.extra.analytics.google }}"></script>
|
|
<script type="text/javascript">
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag() {
|
|
dataLayer.push(arguments);
|
|
}
|
|
gtag("js", new Date());
|
|
gtag("config", "{{ config.extra.analytics.google }}");
|
|
</script>
|
|
{% endif %}
|
|
|
|
{% if config.extra.katex.enabled %}
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css" integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous">
|
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js" integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4" crossorigin="anonymous"></script>
|
|
|
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/mathtex-script-type.min.js" integrity="sha384-LJ2FmexL77rmGm6SIpxq7y+XA6bkLzGZEgCywzKOZG/ws4va9fUVu2neMjvc3zdv" crossorigin="anonymous"></script>
|
|
{% if config.extra.katex.auto_render %}
|
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js" integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa" crossorigin="anonymous" onload="renderMathInElement(document.body, {
|
|
delimiters: [
|
|
{left: '$$', right: '$$', display: true},
|
|
{left: '$', right: '$', display: false},
|
|
{left: '\\(', right: '\\)', display: false},
|
|
{left: '\\[', right: '\\]', display: true}
|
|
]
|
|
});"></script>
|
|
{% endif %}
|
|
{% endif %}
|
|
</head>
|
|
|
|
<body class="has-background-white">
|
|
<nav aria-label="section navigation" class="navbar is-light" role="navigation">
|
|
<div class="container">
|
|
<div class="navbar-brand">
|
|
<a class="navbar-item is-size-5 has-text-weight-bold" href="{{config.base_url}}">{{ config.title }}</a>
|
|
<a aria-expanded="false" aria-label="menu" class="navbar-burger burger" data-target="navMenu" role="button">
|
|
<span aria-hidden="true"></span>
|
|
<span aria-hidden="true"></span>
|
|
<span aria-hidden="true"></span>
|
|
</a>
|
|
</div>
|
|
<div class="navbar-menu" id="navMenu">
|
|
<div class="navbar-end has-text-centered">
|
|
{% for item in config.extra.navbar_items %}
|
|
{% if lang == item.code %}
|
|
{% for nav in item.nav_items %}
|
|
<a class="navbar-item has-text-weight-semibold" href="{{ nav.url | replace(from='$BASE_URL', to=config.base_url) }}">
|
|
{{ nav.name }}
|
|
</a>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
<a class="navbar-item" id="nav-search" title="Search" data-target="#search-modal">
|
|
<span class="icon">
|
|
<i class="fas fa-search"></i>
|
|
</span>
|
|
</a>
|
|
<a class="navbar-item" id="dark-mode" title="Switch to dark theme">
|
|
<span class="icon">
|
|
<i class="fas fa-adjust"></i>
|
|
</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
{% block content %}
|
|
{% endblock %}
|
|
|
|
{% block search %}
|
|
<section class="modal" id="search-modal">
|
|
<div class="modal-background"></div>
|
|
<div class="modal-card">
|
|
<header class="modal-card-head">
|
|
<p class="modal-card-title">Search</p>
|
|
</header>
|
|
<section class="modal-card-body">
|
|
<div class="field mb-2">
|
|
<div class="control">
|
|
<input class="input" id="search" placeholder="Search this website." type="search" />
|
|
</div>
|
|
</div>
|
|
<div class="search-results">
|
|
<div class="search-results__items"></div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<button aria-label="close" class="modal-close is-large"></button>
|
|
</section>
|
|
{% endblock %}
|
|
|
|
|
|
{% block pagination %}
|
|
{% if paginator.previous or paginator.next %}
|
|
<section class="section">
|
|
<div class="container">
|
|
<nav class="pagination is-centered" role="navigation" aria-label="pagination">
|
|
<a class="pagination-previous" href='{{ paginator.previous }}' {% if not paginator.previous %}disabled{% endif %}>
|
|
<span class="icon">
|
|
<i class="fas fa-angle-double-left"></i>
|
|
</span>
|
|
Previous
|
|
</a>
|
|
<a class="pagination-next" href='{{ paginator.next }}' {% if not paginator.next %}disabled{% endif %}>
|
|
Next page
|
|
<span class="icon">
|
|
<i class="fas fa-angle-double-right"></i>
|
|
</span>
|
|
</a>
|
|
<ul class="pagination-list">
|
|
{% for pager in range(start=1, end=paginator.number_pagers+1) %}
|
|
<li>
|
|
<a class="pagination-link {% if paginator.current_index == pager %}is-current{% endif %}" href='{{ paginator.base_url }}{{pager}}' aria-label="Goto page {{pager}}">
|
|
{{pager}}
|
|
</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
{% endblock %}
|
|
|
|
{% block comment %}
|
|
{% endblock %}
|
|
|
|
<footer class="footer py-4">
|
|
<div class="content has-text-centered">
|
|
<p>
|
|
Built with
|
|
<span class="icon-text">
|
|
<span class="icon">
|
|
<i class="fas fa-code"></i>
|
|
</span>
|
|
<span>code</span>
|
|
</span>
|
|
and
|
|
<span class="icon-text">
|
|
<span class="icon">
|
|
<i class="fas fa-heart"></i>
|
|
</span>
|
|
<span>love</span>
|
|
</span>
|
|
</p>
|
|
<p>
|
|
Powered by
|
|
<span class="icon-text">
|
|
<span class="icon">
|
|
<i class="fas fa-power-off"></i>
|
|
</span>
|
|
<span>zola</span>
|
|
</span>
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/galleria.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@8.9.2/dist/mermaid.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1.13/dist/chart.xkcd.min.js"></script>
|
|
<script src='https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.js'></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/galleria/1.6.1/themes/folio/galleria.folio.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/elasticlunr/0.9.6/elasticlunr.min.js"></script>
|
|
<script src="{{ get_url(path='search_index.en.js') }}"></script>
|
|
<script src="{{ get_url(path='js/site.js') }}"></script>
|
|
|
|
{% block custom_js %}
|
|
{% endblock %}
|
|
</body>
|
|
|
|
</html>
|