blog/templates/base.html
2026-02-09 12:30:49 +01:00

64 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html lang="{{ lang | default(value="en") }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
<meta name="description" content="{% block description %}{{ config.description }}{% endblock description %}">
<meta name="author" content="{{ config.extra.author }}">
<link rel="canonical" href="{% block canonical %}{{ config.base_url }}{% endblock canonical %}">
<!-- Open Graph -->
<meta property="og:title" content="{% block og_title %}{{ config.title }}{% endblock og_title %}">
<meta property="og:description" content="{% block og_description %}{{ config.description }}{% endblock og_description %}">
<meta property="og:url" content="{% block og_url %}{{ config.base_url }}{% endblock og_url %}">
<meta property="og:site_name" content="{{ config.title }}">
<meta property="og:type" content="{% block og_type %}website{% endblock og_type %}">
{% block og_extra %}{% endblock og_extra %}
<!-- Twitter Card -->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="{% block twitter_title %}{{ config.title }}{% endblock twitter_title %}">
<meta name="twitter:description" content="{% block twitter_description %}{{ config.description }}{% endblock twitter_description %}">
<link rel="stylesheet" href="{{ get_url(path='style.css') }}">
<link rel="alternate" type="application/rss+xml" title="RSS" href="{{ get_url(path='rss.xml') }}">
<!-- Favicon -->
<link rel="icon" type="image/png" href="{{ get_url(path='favicon-96x96.png') }}" sizes="96x96">
<link rel="icon" type="image/svg+xml" href="{{ get_url(path='favicon.svg') }}">
<link rel="shortcut icon" href="{{ get_url(path='favicon.ico') }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ get_url(path='apple-touch-icon.png') }}">
<meta name="apple-mobile-web-app-title" content="YL Blog">
<link rel="manifest" href="{{ get_url(path='site.webmanifest') }}">
<!-- KaTeX for math rendering -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"
onload="renderMathInElement(document.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false}
]
});"></script>
</head>
<body>
<header>
<nav>
<a href="{{ get_url(path='/') }}" class="site-title">{{ config.title }}</a>
{% set root = get_section(path="_index.md") %}
{% for path in root.subsections | sort %}
{% set s = get_section(path=path) %}
<a href="{{ s.permalink }}">{{ s.extra.abbr | default(value=s.title) }}</a>
{% endfor %}
</nav>
</header>
<main>
{% block content %}{% endblock content %}
</main>
<footer>
<div class="footer-links">
<a href="https://www.yanlincs.com" target="_blank">Homepage</a>
<a href="https://github.com/Logan-Lin" target="_blank">GitHub</a>
<a href="mailto:s@yanlincs.com">Email</a>
</div>
<p>&copy; {{ now() | date(format="%Y") }} {{ config.extra.author }}. Content licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a>.</p>
</footer>
</body>
</html>