forked from astrnox/BioQuest
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresources.html
More file actions
156 lines (147 loc) · 6.52 KB
/
Copy pathresources.html
File metadata and controls
156 lines (147 loc) · 6.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!DOCTYPE html>
<html lang="zh-CN" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>学习资源 - BioQuest</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>@font-face{font-family:'LXGW WenKai';src:url('fonts/lxgw-wenkai.ttf?v=1.522') format('truetype');font-weight:100 900;font-display:swap;}</style>
<link rel="stylesheet" href="css/globals.css">
<link rel="stylesheet" href="css/header.css">
<link rel="stylesheet" href="css/footer.css">
<link rel="stylesheet" href="css/resources.css">
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
<script src="js/supabase-client.js?v=20260814c"></script>
<script src="js/supabase.js?v=20260608d"></script>
</head>
<body>
<header class="header">
<a href="index.html" class="header-brand">
<svg width="28" height="28" viewBox="0 0 28 28" fill="none">
<circle cx="14" cy="14" r="12" stroke="#e8a830" stroke-width="2"/>
<circle cx="14" cy="14" r="4" fill="#e8a830"/>
</svg>
BioQuest
</a>
<div class="header-right">
<button class="hamburger" id="hamburgerBtn" aria-label="菜单">
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
</button>
</div>
</header>
<div class="mobile-nav-overlay" id="mobileOverlay"></div>
<nav class="mobile-nav" id="mobileNav">
<div style="display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light);">
<div style="display:flex;align-items:center;gap:10px;">
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" aria-hidden="true">
<circle cx="14" cy="14" r="12" stroke="#e8a830" stroke-width="2"/>
<circle cx="14" cy="14" r="4" fill="#e8a830"/>
<path d="M14 2v4M14 22v4M2 14h4M22 14h4" stroke="#5a7d5c" stroke-width="1.5"/>
</svg>
<span style="font-weight:700;font-size:1.1rem;color:var(--color-deep);">BioQuest</span>
</div>
<button id="mobileNavClose" style="background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);padding:4px 8px;">✕</button>
</div>
<div class="mobile-nav-scroll">
<a href="index.html">首页</a>
<a href="index.html#/practice" class="nav-highlight">练习</a>
<a href="index.html#/exam" class="nav-highlight">模考</a>
<a href="study.html">学习</a>
<a href="biology-history.html">生物学史</a>
<a href="cards.html">卡片</a>
<a href="quiz.html">试题</a>
<a href="resources.html" class="active">资源</a>
<a href="wiki.html">百科</a>
<a href="index.html#/knowledge-graph">图谱</a>
<a href="index.html#/diagnosis">诊断</a>
<a href="index.html#/pomodoro">专注</a>
<a href="index.html#/habits">习惯</a>
<a href="index.html#/review">复习</a>
<a href="index.html#/bounties">悬赏</a>
<a href="index.html#/community">社区</a>
<a href="index.html#/analytics">分析</a>
<a href="index.html#/user">我的</a>
</div>
</nav>
<main style="padding-top: calc(var(--header-height, 64px) + 40px);">
<section class="section">
<div class="container">
<div class="section-label">LEARNING RESOURCES</div>
<h2 class="section-title">学习资源</h2>
<p class="section-desc">丰富的学习资源,点击刷新资源按钮从网络获取最新内容</p>
<div>
<div class="resources-toolbar">
<div class="search-input-wrap">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="7"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
<input type="text" id="resourceSearch" class="search-input" placeholder="搜索资源...">
</div>
<button id="crawlBtn" class="crawl-btn">
<div class="crawl-spinner"></div>
刷新资源
</button>
</div>
<div class="filter-section">
<div class="filter-row">
<span class="filter-label">分类:</span>
<div id="categoryFilters" class="filter-chips"></div>
</div>
<div class="filter-row">
<span class="filter-label">类型:</span>
<div id="tagFilters" class="filter-chips"></div>
</div>
</div>
<div class="resources-meta">
<span>共 <strong id="resultCount">0</strong> 条资源</span>
</div>
<div class="crawl-status" id="crawlStatus"></div>
<div class="resources-grid" id="resourcesGrid"></div>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="footer-content">
<div class="footer-brand">BioQuest — 生物竞赛学习平台</div>
<div class="footer-links">
<a href="cards.html">知识卡片</a>
<a href="quiz.html">模拟试题</a>
<a href="resources.html">学习资源</a>
<a href="wiki.html">生物百科</a>
</div>
</div>
</footer>
<script src="js/utils.js?v=20260814b"></script>
<script src="js/hamburger.js?v=20260814b"></script>
<script src="js/resources.js?v=20260806a"></script>
<script>
// 统一汉堡菜单(与主页一致):注入主页导航结构并绑定交互
if (window.BioQuestHamburger) {
window.BioQuestHamburger.render();
window.BioQuestHamburger.init();
}
// 初始化 Supabase 并更新认证状态
(async function() {
try {
if (typeof window.getSupabase === 'function' && window.getSupabase()) {
await window.restoreSession();
if (window.isLoggedIn()) {
var links = document.querySelectorAll('.header-auth-link');
for (var i = 0; i < links.length; i++) {
var user = window.getCurrentUser();
links[i].textContent = user.display_name || user.username || '用户';
links[i].href = 'index.html#/user';
}
}
}
} catch(e) {}
})();
</script>
</body>
</html>