added favicon
@ -24,3 +24,8 @@ class Config:
|
||||
|
||||
# Optional: absolute Pfade, falls du später Docker o.ä. nutzt
|
||||
# CONFIG_DIR = os.path.join(os.path.dirname(__file__), 'configs')
|
||||
|
||||
APP_NAME = "MK Sound & Control"
|
||||
APP_NAME_SHORT = "MKSC" # für Tab-Titel, wenns kurz sein soll
|
||||
APP_VERSION = "0.9.β"
|
||||
APP_DESCRIPTION = "Websteuerung für MouldKing MK4/MK6-Hubs mit Soundboard"
|
||||
|
||||
|
After Width: | Height: | Size: 100 KiB |
BIN
other/favicon.zip
Normal file
BIN
static/favicon/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
static/favicon/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
static/favicon/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
17
static/favicon/favicon.svg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
21
static/favicon/site.webmanifest
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "MK Sound & Control",
|
||||
"short_name": "MKSC",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#950000",
|
||||
"background_color": "#8a0000",
|
||||
"display": "standalone"
|
||||
}
|
||||
BIN
static/favicon/web-app-manifest-192x192.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
static/favicon/web-app-manifest-512x512.png
Normal file
|
After Width: | Height: | Size: 188 KiB |
@ -3,22 +3,31 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{% block title %}Mould King Control{% endblock %}</title>
|
||||
<meta name="description" content="{{ config.APP_DESCRIPTION|default('MouldKing Modelle steuern & Sounds abspielen') }}">
|
||||
<title>{{ config.APP_NAME }} – {{ title|default('Steuerung') }}</title>
|
||||
|
||||
<!-- Bootstrap 5.3 CSS CDN -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
|
||||
crossorigin="anonymous">
|
||||
<link rel="icon" href="{{ url_for('static', filename='favicon/favicon.ico') }}" sizes="any">
|
||||
<link rel="icon" href="{{ url_for('static', filename='favicon/icon.svg') }}" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='favicon/apple-touch-icon.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='favicon/favicon-32x32.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='favicon/favicon-16x16.png') }}">
|
||||
<link rel="manifest" href="{{ url_for('static', filename='favicon/site.webmanifest') }}">
|
||||
<meta name="theme-color" content="#950000">
|
||||
|
||||
<!-- highlight.js für Syntax-Highlighting in Logs -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/default.min.css') }}">
|
||||
<script src="{{ url_for('static', filename='js/highlight.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/hljs-log.js') }}"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
<!-- Bootstrap 5.3 CSS CDN -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
|
||||
crossorigin="anonymous">
|
||||
|
||||
<!-- Eigenes CSS (optional – später erweitern) -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/custom.css') }}">
|
||||
<!-- highlight.js für Syntax-Highlighting in Logs -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/default.min.css') }}">
|
||||
<script src="{{ url_for('static', filename='js/highlight.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/hljs-log.js') }}"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
|
||||
<!-- Eigenes CSS (optional – später erweitern) -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/custom.css') }}">
|
||||
|
||||
{% block head_extra %}{% endblock %}
|
||||
</head>
|
||||
@ -39,24 +48,33 @@
|
||||
<a class="nav-link {% if request.path == url_for('main.index') %}active{% endif %}"
|
||||
href="{{ url_for('main.index') }}">Home</a>
|
||||
</li>
|
||||
<!--
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if 'control' in request.path %}active{% endif %}"
|
||||
href="{{ url_for('main.index') }}">Steuerung</a>
|
||||
</li>
|
||||
-->
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if 'soundboard' in request.path %}active{% endif %}"
|
||||
href="{{ url_for('main.soundboard') }}">Soundboard</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if 'admin' in request.path %}active{% endif %}"
|
||||
href="{{ url_for('admin.admin') }}">Admin</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if 'soundboard' in request.path %}active{% endif %}"
|
||||
href="{{ url_for('main.soundboard') }}">Soundboard</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Hauptinhalt -->
|
||||
<header>
|
||||
<h1>{{ config.APP_NAME }}</h1>
|
||||
<!-- oder als Logo + Slogan -->
|
||||
</header>
|
||||
|
||||
<main class="flex-grow-1 py-4">
|
||||
<div class="container">
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
|
||||