This repository was archived by the owner on Jan 11, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchapter9.html
More file actions
349 lines (329 loc) · 24.1 KB
/
Copy pathchapter9.html
File metadata and controls
349 lines (329 loc) · 24.1 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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mandarin Guide</title>
<meta name="theme-color" content="#000000" />
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="css/style.css">
<script src="js/layout.js" defer></script>
<script src="js/app.js" defer></script>
</head>
<body class="bg-black text-white">
<main class="main-content pb-24">
<div class="p-6 md:p-10">
<div class="w-full max-w-[95%] mx-auto">
<article class="content-page card p-6 mb-8" data-page-id="chapter9">
<div class="flex items-center justify-between mb-6">
<h3 class="card-title text-xl font-semibold">Chapter 9: Core Vocabulary</h3>
<span class="text-sm font-mono text-pink-400 bg-pink-400/10 px-2 py-1 rounded">Level 4</span>
</div>
<p class="mb-5 text-slate-400 leading-relaxed">The essential survival words for transportation,
directions, and colors.</p>
<h4 class="font-semibold mt-6 mb-3 text-lg text-white">Transportation (交通)</h4>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 text-center">
<div class="p-3 bg-white border border-slate-200 rounded">
<div class="text-2xl">捷运</div>
<div class="font-bold">MRT</div>
<div class="hanzi" data-speak="捷运">捷运</div>
<div class="text-xs text-slate-400">jiéyùn</div>
</div>
<div class="p-3 bg-white border border-slate-200 rounded">
<div class="text-2xl">公车</div>
<div class="font-bold">Bus</div>
<div class="hanzi" data-speak="公车">公车</div>
<div class="text-xs text-slate-400">gongche</div>
</div>
<div class="p-3 bg-white border border-slate-200 rounded">
<div class="text-2xl">高铁</div>
<div class="font-bold">HSR</div>
<div class="hanzi" data-speak="高铁">高铁</div>
<div class="text-xs text-slate-400">gaotie</div>
</div>
<div class="p-3 bg-white border border-slate-200 rounded">
<div class="text-2xl">计程车</div>
<div class="font-bold">Taxi</div>
<div class="hanzi" data-speak="计程车">计程车</div>
<div class="text-xs text-slate-400">jìchéngche</div>
</div>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Directions (方向)</h4>
<div class="overflow-x-auto">
<table class="table">
<tbody>
<tr>
<td><strong>North</strong>: <span class="hanzi" data-speak="北">北</span> (bei)
</td>
<td><strong>South</strong>: <span class="hanzi" data-speak="南">南</span> (nán)
</td>
</tr>
<tr>
<td><strong>East</strong>: <span class="hanzi" data-speak="东">东</span> (dong)
</td>
<td><strong>West</strong>: <span class="hanzi" data-speak="西">西</span> (xi)</td>
</tr>
<tr>
<td><strong>Left</strong>: <span class="hanzi" data-speak="左">左</span> (zuo)
</td>
<td><strong>Right</strong>: <span class="hanzi" data-speak="右">右</span> (yòu)
</td>
</tr>
</tbody>
</table>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Colors (颜色)</h4>
<div class="flex flex-wrap gap-3">
<span class="px-3 py-1 bg-red-100 text-red-800 rounded-full border border-red-200">Red <span
class="hanzi" data-speak="红">红</span></span>
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full border border-blue-200">Blue
<span class="hanzi" data-speak="蓝">蓝</span></span>
<span class="px-3 py-1 bg-green-100 text-green-800 rounded-full border border-green-200">Green
<span class="hanzi" data-speak="绿">绿</span></span>
<span
class="px-3 py-1 bg-yellow-100 text-yellow-800 rounded-full border border-yellow-200">Yellow
<span class="hanzi" data-speak="黄">黄</span></span>
<span class="px-3 py-1 bg-black text-white rounded-full border border-gray-600">Black <span
class="hanzi" data-speak="黑">黑</span></span>
<span class="px-3 py-1 bg-white text-slate-200 rounded-full border border-gray-300">White
<span class="hanzi" data-speak="白">白</span></span>
</div>
<h4 class="font-semibold mt-6 mb-3 text-lg text-white">Weather (天气 tiānqì)</h4>
<ul class="space-y-4">
<li><strong>Hot:</strong> <span class="hanzi" data-speak="热">热</span> (<span
class="pinyin">rè</span>)</li>
<li><strong>Cold:</strong> <span class="hanzi" data-speak="冷">冷</span> (<span
class="pinyin">leng</span>)</li>
<li><strong>Raining:</strong> <span class="hanzi" data-speak="下雨">下雨</span> (<span
class="pinyin">xiàyu</span>)</li>
<li><strong>Sunny:</strong> <span class="hanzi" data-speak="晴天">晴天</span> (<span
class="pinyin">qíngtian</span>)</li>
<li><strong>Typhoon:</strong> <span class="hanzi" data-speak="台风">台风</span> (<span
class="pinyin">táifeng</span>)
<br><small class="text-slate-400">A very common summer occurrence in Taiwan.</small>
</li>
</ul>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Feelings (感觉 gǎnjué)</h4>
<ul class="space-y-4">
<li><strong>Happy:</strong> <span class="hanzi" data-speak="快乐">快乐</span> / <span class="hanzi"
data-speak="高兴">高兴</span> (<span class="pinyin">kuàilè /
gaoxìng</span>)</li>
<li><strong>Tired:</strong> <span class="hanzi" data-speak="累">累</span> (<span
class="pinyin">lèi</span>)</li>
<li><strong>Hungry:</strong> <span class="hanzi" data-speak="饿">饿</span> (<span
class="pinyin">è</span>)</li>
<li><strong>Full (after eating):</strong> <span class="hanzi" data-speak="饱">饱</span> (<span
class="pinyin">bao</span>)</li>
</ul>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Time (时间 shíjiān)</h4>
<ul class="space-y-4">
<li><strong>Today:</strong> <span class="hanzi" data-speak="今天">今天</span> (<span
class="pinyin">jintian</span>)</li>
<li><strong>Tomorrow:</strong> <span class="hanzi" data-speak="明天">明天</span> (<span
class="pinyin">míngtian</span>)</li>
<li><strong>Yesterday:</strong> <span class="hanzi" data-speak="昨天">昨天</span> (<span
class="pinyin">zuótian</span>)</li>
<li><strong>Now:</strong> <span class="hanzi" data-speak="现在">现在</span> (<span
class="pinyin">xiànzài</span>)</li>
</ul>
<!-- NEW CONTENT FOR LEVEL 4 EXTENSION -->
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Sentence Patterns: Duration (Yao Duo Jiu)
</h4>
<div class="callout p-4 mb-6 bg-blue-900/20 border-l-4 border-blue-500">
<p class="text-blue-200 text-sm font-bold mb-2">How long does it take?</p>
<p class="text-slate-300 text-sm">
<span class="hanzi" data-speak="要">要</span> (yào) + Time Duration.
<br><br>
<strong>How long to get to Taipei 101?</strong> <span class="hanzi"
data-speak="去台北101要多久?">去台北101要多久?</span> (Qù
Táiběi 101 yào duōjiǔ?)
<br><strong>It takes 20 minutes:</strong> <span class="hanzi"
data-speak="要二十分钟。">要二十分钟。</span> (Yào èrshí
fēnzhōng.)
</p>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Real-world Scenario: Asking Directions</h4>
<div class="space-y-4 bg-slate-800/50 p-4 rounded-lg border border-slate-700 mb-8">
<div>
<p><strong>You:</strong> <span class="hanzi"
data-speak="不好意思,请问捷运站怎么走?">不好意思,请问捷运站怎么走?</span> (Bùhǎoyìsi, qǐngwèn jiéyùn zhàn
zěnme zǒu?)</p>
<p class="text-sm text-slate-400">Excuse me, how do I get to the MRT station?</p>
</div>
<div>
<p><strong>Passerby:</strong> <span class="hanzi"
data-speak="直走,第二个路口右转。">直走,第二个路口右转。</span> (Zhí zǒu, dì èr gè lùkǒu yòu zhuǎn.)</p>
<p class="text-sm text-slate-400">Go straight, turn right at the second intersection.</p>
</div>
<div>
<p><strong>You:</strong> <span class="hanzi" data-speak="走路要多久?">走路要多久?</span> (Zǒulù yào
duōjiǔ?)</p>
<p class="text-sm text-slate-400">How long does it take to walk?</p>
</div>
<div>
<p><strong>Passerby:</strong> <span class="hanzi" data-speak="大概五分钟。">大概五分钟。</span> (Dàgài
wǔ fēnzhōng.)</p>
<p class="text-sm text-slate-400">About 5 minutes.</p>
</div>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Comprehension Check: Map Skills</h4>
<p class="text-slate-400 mb-4">Match the direction.</p>
<div class="space-y-3 mb-8">
<div class="bg-slate-900 p-4 rounded border border-slate-800">
<p class="mb-2 font-bold text-white">1. <span class="hanzi" data-speak="往右转">往右转</span>
(Wǎng yòu zhuǎn)</p>
<details class="group">
<summary
class="cursor-pointer text-blue-400 hover:text-blue-300 transition-colors list-none font-medium text-sm">
Reveal Answer</summary>
<div class="mt-2 text-slate-300 pl-4 border-l-2 border-blue-500/30">
Turn Right.
</div>
</details>
</div>
<div class="bg-slate-900 p-4 rounded border border-slate-800">
<p class="mb-2 font-bold text-white">2. <span class="hanzi" data-speak="一直走">一直走</span>
(Yìzhí zǒu)</p>
<details class="group">
<summary
class="cursor-pointer text-blue-400 hover:text-blue-300 transition-colors list-none font-medium text-sm">
Reveal Answer</summary>
<div class="mt-2 text-slate-300 pl-4 border-l-2 border-blue-500/30">
Keep going straight. (@lit: Straight walk)
</div>
</details>
</div>
</div>
<div class="page-footer-nav">
<div class="flex gap-3"><button class="prev-page-btn" data-prev-page-id="chapter8"><svg
class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M7 16l-4-4m0 0l4-4m-4 4h18"></path>
</svg><span>Previous Chapter</span></button><button class="home-page-btn"
data-home-page-id="home"><svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6-4a1 1 0 001-1v-4a1 1 0 00-1-1H9a1 1 0 00-1 1v4a1 1 0 001 1h1z">
</path>
</svg><span>Home</span></button></div>
<div class="flex gap-3"><button class="mark-complete-btn" data-page-id="chapter9"><svg
class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg><span>Mark as Completed</span></button><button class="next-page-btn"
data-next-page-id="level4-exam"><span>Next Chapter</span><svg class="w-5 h-5 ml-2"
fill="none" stroke="currentColor" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M17 8l4 4m0 0l-4 4m4-4H3"></path>
</svg></button></div>
</div>
</article>
</div>
</div>
</main> <!-- Modals -->
<div id="next-lesson-modal" class="fixed inset-0 z-50 flex items-center justify-center p-4" aria-hidden="true">
<!-- Modal Overlay -->
<div id="modal-overlay" class="fixed inset-0 bg-black/50 backdrop-blur-sm transition-opacity"></div>
<!-- Modal Content -->
<div class="relative w-full max-w-md p-6 bg-white rounded-lg shadow-xl transform transition-all">
<div class="flex items-start">
<div
class="flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10">
<svg class="h-6 w-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.79 4 4 0 1.152-.468 2.185-1.22 2.963C13.978 14.63 13 15.21 13 16h-1v-1.5c0-1.076.62-2.062 1.62-2.887C14.43 10.843 15 10.106 15 9c0-1.105-.895-2-2-2-1.036 0-1.85.738-1.98 1.707L8.228 9zM12 20a1 1 0 100-2 1 1 0 000 2z">
</path>
</svg>
</div>
<div class="ml-4 text-left">
<h3 class="text-lg font-semibold leading-6 text-white" id="modal-title">Proceed to Next Lesson?
</h3>
<div class="mt-2">
<p class="text-sm text-slate-500">
Are you sure you're ready to move on?
</p>
</div>
</div>
</div>
<div class="flex items-center justify-center space-x-2 mt-4 pt-4 border-t border-gray-200">
<span class="text-sm text-slate-300 hidden sm:inline">Connect with Admin >>></span>
<!-- MODIFIED: Added hidden sm:inline -->
<div
class="w-8 h-8 rounded-full bg-slate-200 border border-slate-300 flex items-center justify-center overflow-hidden">
<img class="w-full h-full object-cover" src="./images/profile.jpg" alt="Brian's profile picture"
onerror="this.parentElement.innerHTML = `<svg class='w-6 h-6 text-slate-400' fill='currentColor' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z' clip-rule='evenodd'></path></svg>`">
</div>
<a href="https://www.instagram.com/brian_offl/" target="_blank" rel="noopener noreferrer"
class="insta-btn flex items-center border border-pink-500 text-pink-500 hover:bg-pink-500 hover:text-white text-sm font-medium py-2 px-2 sm:px-3 rounded-lg transition-colors">
<!-- MODIFIED: px-2 sm:px-3 -->
<svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"> <!-- MODIFIED: removed mr-2 -->
<rect x="2" y="2" width="20" height="20" rx="5.657" ry="5.657"></rect>
<path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37zm1.5-4.87h.01"></path>
</svg>
<span class="hidden sm:inline-block ml-2 typewriter-button">Insta</span>
<!-- MODIFIED: Added hidden sm:inline-block, ml-2, typewriter-button -->
</a>
<a href="https://github.com/brianhexer" target="_blank" rel="noopener noreferrer"
class="flex items-center border border-white text-white bg-transparent hover:bg-white hover:text-black text-sm font-medium py-2 px-2 sm:px-3 rounded-lg transition-colors">
<!-- MODIFIED: px-2 sm:px-3 -->
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<!-- MODIFIED: removed mr-2 -->
<path
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
</svg>
<span class="hidden sm:inline-block ml-2 typewriter-button">GitHub</span>
<!-- MODIFIED: Added hidden sm:inline-block, ml-2, typewriter-button -->
</a>
</div>
<div class="mt-5 sm:mt-6 sm:flex sm:flex-row-reverse gap-3">
<button id="modal-confirm-btn" type="button"
class="inline-flex w-full justify-center rounded-md border border-white bg-transparent px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-white hover:text-black sm:w-auto sm:text-sm transition-colors">
Yes, Proceed
</button>
<button id="modal-cancel-btn" type="button"
class="mt-3 inline-flex w-full justify-center rounded-md border border-gray-600 bg-transparent px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-white hover:text-black sm:mt-0 sm:w-auto sm:text-sm transition-colors">
Not Yet
</button>
</div>
</div>
</div>
<!-- END MODAL -->
<div id="search-modal" class="fixed inset-0 z-50 flex items-center justify-center p-4" aria-hidden="true">
<!-- Modal Overlay -->
<div id="search-modal-overlay" class="fixed inset-0 bg-black/50 backdrop-blur-sm transition-opacity"></div>
<!-- Modal Content -->
<div
class="relative w-full max-w-lg p-0 bg-white rounded-lg shadow-xl transform transition-all overflow-hidden">
<!-- Search Input -->
<div class="relative p-4">
<input type="search" id="search-input" placeholder="Search lessons..."
class="w-full pl-10 pr-12 py-2 border border-slate-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
<div class="absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none">
<svg class="w-5 h-5 text-slate-400" fill="none" stroke="currentColor" stroke-width="2"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round"
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
</svg>
</div>
<button id="search-modal-close" aria-label="Close search"
class="absolute inset-y-0 right-0 pr-4 flex items-center text-slate-400 hover:text-slate-300 transition-colors">
<svg class="w-6 h-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path>
</svg>
</button>
</div>
<!-- Search Results -->
<div id="search-results-container" class="max-h-96 overflow-y-auto p-4 border-t border-slate-200">
<p class="text-center text-slate-400">Type to search for lessons.</p>
</div>
</div>
</div>
<!-- END SEARCH MODAL -->
</body>
</html>