Initial commit: UV-K5 firmware site with flasher
This commit is contained in:
32
templates/base.html
Normal file
32
templates/base.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}UV-K5 Firmware{% endblock %} - UA1ZBE</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="container">
|
||||
<h1>UV-K5 Firmware</h1>
|
||||
<nav>
|
||||
<a href="{{ url_for('index') }}">Главная</a>
|
||||
<a href="{{ url_for('downloads') }}">Загрузки</a>
|
||||
<a href="{{ url_for('flasher') }}">Прошивка</a>
|
||||
<a href="{{ url_for('docs') }}">Документация</a>
|
||||
<a href="{{ url_for('info') }}">Информация</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>UV-K5 Open Firmware by UA1ZBE © 2026</p>
|
||||
<p>Прошивка для радиостанции UV-K5 (K5, K4, K6)</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
17
templates/doc_page.html
Normal file
17
templates/doc_page.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<h2>{{ title }}</h2>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<a href="{{ url_for('docs') }}">← К списку документации</a>
|
||||
</div>
|
||||
|
||||
<div class="card markdown-content">
|
||||
{{ content|safe }}
|
||||
</div>
|
||||
{% endblock %}
|
||||
17
templates/docs_list.html
Normal file
17
templates/docs_list.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Документация{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<h2>Документация</h2>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<ul class="doc-list">
|
||||
{% for page_id, page_title in pages.items() %}
|
||||
<li><a href="{{ url_for('doc_page', page=page_id) }}">{{ page_title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
||||
46
templates/downloads.html
Normal file
46
templates/downloads.html
Normal file
@@ -0,0 +1,46 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Загрузки{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<h2>Загрузки прошивок</h2>
|
||||
<p>Скачайте последнюю версию прошивки для вашей радиостанции</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Последняя версия</h3>
|
||||
<table class="downloads">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Версия</th>
|
||||
<th>Дата</th>
|
||||
<th>Размер</th>
|
||||
<th>Файл</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for release in releases %}
|
||||
<tr>
|
||||
<td>
|
||||
<span class="release-version">{{ release.version }}</span>
|
||||
{% if loop.first %}
|
||||
<span class="version-badge">LATEST</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ release.date }}</td>
|
||||
<td>{{ release.size }}</td>
|
||||
<td>
|
||||
<a href="{{ url_for('download', filename=release.filename) }}" class="btn">Скачать</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>История изменений</h3>
|
||||
<div class="changelog">{{ releases[0].changelog }}</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
34
templates/flasher.html
Normal file
34
templates/flasher.html
Normal file
@@ -0,0 +1,34 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Прошивка{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card hero">
|
||||
<h2>Flasher</h2>
|
||||
<p>Загрузка прошивки на радиостанцию</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Выберите файл прошивки</h3>
|
||||
<input type="file" id="firmwareFile" accept=".bin">
|
||||
<div id="fileInfo"></div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<button id="flashBtn" class="btn btn-download" disabled>Прошить устройство</button>
|
||||
<div id="status"></div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Инструкция</h3>
|
||||
<ol>
|
||||
<li>Выберите файл прошивки .bin</li>
|
||||
<li>Подключите радиостанцию к компьютеру</li>
|
||||
<li>Нажмите "Прошить устройство"</li>
|
||||
<li>Дождитесь завершения</li>
|
||||
</ol>
|
||||
<p class="note">Основано на <a href="https://github.com/whosmatt/uvmod">https://github.com/whosmatt/uvmod</a></p>
|
||||
</div>
|
||||
|
||||
<script src="{{ url_for('static', filename='js/flasher.js') }}"></script>
|
||||
{% endblock %}
|
||||
63
templates/index.html
Normal file
63
templates/index.html
Normal file
@@ -0,0 +1,63 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Главная{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card hero">
|
||||
<h2>UV-K5 Open Firmware</h2>
|
||||
<p>Альтернативная прошивка для радиостанций UV-K5, K4, K6 и их клонов с расширенным функционалом</p>
|
||||
<a href="{{ url_for('downloads') }}" class="btn btn-download">
|
||||
<span>Скачать прошивку</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Последняя версия: {{ latest.version }}</h3>
|
||||
<p class="release-date">Дата: {{ latest.date }} | Размер: {{ latest.size }}</p>
|
||||
<div class="feature-tags">
|
||||
{% for feature in latest.features %}
|
||||
<span class="tag">{{ feature }}</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Возможности прошивки</h3>
|
||||
<div class="features-grid">
|
||||
<div class="feature-item">
|
||||
<h3>FM Радио</h3>
|
||||
<p>Встроенный FM-приёмник 88-108 МГц</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h3>Анализатор спектра</h3>
|
||||
<p>Сканирование эфира и отображение сигналов</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h3>Расширенный RX</h3>
|
||||
<p>Приём от 50 до 10800 МГц</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h3>RSSI индикатор</h3>
|
||||
<p>Отображение уровня сигнала на экране</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h3>POCSAG</h3>
|
||||
<p>Декодирование POCSAG пейджинга</p>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<h3>DCS/CTCSS</h3>
|
||||
<p>Полная поддержка DCS/CTCSS кодов</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Поддерживаемые модели</h3>
|
||||
<ul>
|
||||
<li>UV-K5 / K4 / K6</li>
|
||||
<li>Baofeng K5 (K5 Plus)</li>
|
||||
<li>Luiton LT-7255</li>
|
||||
<li>П compatible devices</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
||||
29
templates/info.html
Normal file
29
templates/info.html
Normal file
@@ -0,0 +1,29 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Информация{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<h2>Информация о проекте</h2>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>О прошивке</h3>
|
||||
<p>UV-K5 Open Firmware - альтернативная прошивка с открытым исходным кодом для радиостанций UV-K5 и совместимых моделей.</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Автор</h3>
|
||||
<p>UA1ZBE</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Версия</h3>
|
||||
<p>v1.0-beta (12.04.2026)</p>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>Отказ от ответственности</h3>
|
||||
<p>Прошивка устанавливается на свой страх и риск. Автор не несёт ответственности за возможные повреждения устройства.</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user