Files
PassKeeper/app/templates/base.html
T
2026-04-26 15:20:52 -04:00

32 lines
1.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
/>
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://api.pwnedpasswords.com; frame-ancestors 'none';"
/>
<meta name="csrf-token" content="{{ csrf_token() }}" />
<title>{% block title %}PassKeeper{% endblock %}</title>
<!-- layout-init.js MUST be synchronous (no defer/async) so it runs before body renders -->
<script src="{{ url_for('static', filename='js/layout-init.js') }}?v={{ sv }}"></script>
<link
rel="stylesheet"
href="{{ url_for('static', filename='css/app.css') }}?v={{ sv }}"
/>
{% block head_extra %}{% endblock %}
</head>
<body class="{% block body_class %}{% endblock %}">
{% block body %}{% endblock %}
<div id="toast" class="toast" aria-live="polite"></div>
{% block scripts %}{% endblock %}
</body>
</html>