|
|
<!DOCTYPE html> |
|
|
<html> |
|
|
<head> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
|
|
<meta charset="UTF-8"> |
|
|
<title>{% block title %}{{ config.title }}{% endblock %}</title> |
|
|
|
|
|
{%- block page_meta %} |
|
|
{% if config.description %} |
|
|
<meta name="description" content="{{ config.description | truncate(length=150) }}"/> |
|
|
{% endif %} |
|
|
{% if config.extra.author%} |
|
|
<meta name="author" content="{{ config.extra.author }}" /> |
|
|
{% endif %} |
|
|
{% endblock -%} |
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
|
|
|
|
|
{%- block css %} |
|
|
<link href="{{ get_url(path='style.css', trailing_slash=false) | safe }}" rel="stylesheet"/> |
|
|
{% endblock css -%} |
|
|
|
|
|
</head> |
|
|
<body {% if config.extra.default_dark %}class="dark"{% endif %}> |
|
|
<script> |
|
|
function get_theme_pref() { |
|
|
let pref_dark = false |
|
|
if(localStorage.getItem('prefers-color') === 'dark') { |
|
|
pref_dark = true; |
|
|
} else if(localStorage.getItem('prefers-color') === 'light') { |
|
|
pref_dark = false; |
|
|
} else { |
|
|
pref_dark = window.matchMedia('(prefers-color-scheme: dark)').matches; |
|
|
} |
|
|
return pref_dark; |
|
|
} |
|
|
function set_theme_pref(dark = false) { |
|
|
localStorage.setItem('prefers-color', dark ? "dark" : "light"); |
|
|
} |
|
|
function toggle_theme_pref() { |
|
|
set_theme_pref(!get_theme_pref()); |
|
|
} |
|
|
function update_theme() { |
|
|
if (get_theme_pref()) { |
|
|
document.body.classList.add("dark"); |
|
|
} else { |
|
|
document.body.classList.remove("dark"); |
|
|
} |
|
|
} |
|
|
function update_theme_toggle() { |
|
|
let toggle = document.getElementById('theme-toggle'); |
|
|
if (toggle) { |
|
|
toggle.innerHTML = get_theme_pref() ? '☀️' : '🌙'; |
|
|
} |
|
|
} |
|
|
|
|
|
update_theme(); |
|
|
</script> |
|
|
<nav>{% block nav %}{% endblock %}</nav> |
|
|
<aside>{% block aside %}{% endblock %}</aside> |
|
|
<article> |
|
|
{%- block content %}<h1>override the content block in a template</h1>{% endblock -%} |
|
|
</article> |
|
|
<footer>{% block footer %}{% endblock %}</footer> |
|
|
|
|
|
</body> |
|
|
{% block js %} |
|
|
<script src="{{ get_url(path='script.js', trailing_slash=false) | safe }}"></script> |
|
|
{% endblock %} |
|
|
</html> |