62 lines
2.1 KiB
HTML
62 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
<title>Audiobook Player</title>
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
</head>
|
|
<body class="light-mode">
|
|
<div class="app">
|
|
<!-- Header -->
|
|
<header class="header">
|
|
<h1 class="header-title">📚 Audiobook</h1>
|
|
<button class="theme-toggle" onclick="toggleTheme()">🌙</button>
|
|
</header>
|
|
|
|
<!-- Main Content -->
|
|
<main class="main-content">
|
|
<div class="welcome">
|
|
<h2>选择阅读来源</h2>
|
|
<p class="subtitle">Select your reading source</p>
|
|
</div>
|
|
|
|
<div class="sources-grid">
|
|
{% for source in sources %}
|
|
<a href="/list/{{ source.id }}" class="source-card">
|
|
<div class="source-icon">
|
|
{% if 'library' in source.id.lower() %}
|
|
📚
|
|
{% elif 'poetry' in source.id.lower() %}
|
|
📝
|
|
{% elif 'loyal' in source.id.lower() %}
|
|
🎧
|
|
{% else %}
|
|
📖
|
|
{% endif %}
|
|
</div>
|
|
<div class="source-info">
|
|
<h3 class="source-name">{{ source.name }}</h3>
|
|
<p class="source-count">{{ source.count }} 个项目</p>
|
|
</div>
|
|
<div class="source-arrow">→</div>
|
|
</a>
|
|
{% else %}
|
|
<div class="empty-state">
|
|
<p>暂无内容</p>
|
|
<p class="empty-subtitle">No media sources found</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</main>
|
|
|
|
<!-- Footer -->
|
|
<footer class="footer">
|
|
<p>© 2026 Audiobook Player</p>
|
|
</footer>
|
|
</div>
|
|
|
|
<script src="/static/js/app.js"></script>
|
|
</body>
|
|
</html>
|