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 pathchapter2.html
More file actions
307 lines (288 loc) · 21.4 KB
/
Copy pathchapter2.html
File metadata and controls
307 lines (288 loc) · 21.4 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
<!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="chapter2">
<div class="flex items-center justify-between mb-6">
<h3 class="card-title text-xl font-semibold">Chapter 2: Numbers (Detailed)</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">You already know 1-10. Now let's conquer bigger
numbers. The Chinese number system is extremely logical, but the "10,000" unit often trips
up
beginners.</p>
<h4 class="font-semibold mt-6 mb-3 text-lg text-white">Review 0-10</h4>
<p class="mb-4 text-slate-400">0 (<span class="hanzi" data-speak="零">零</span> líng), 1 (<span
class="hanzi" data-speak="一">一</span>
yi), 2 (<span class="hanzi" data-speak="二">二</span> èr), 3 (<span class="hanzi"
data-speak="三">三</span> san), 4 (<span class="hanzi" data-speak="四">四</span> sì), 5 (<span
class="hanzi" data-speak="五">五</span> wu), 6 (<span class="hanzi" data-speak="六">六</span>
liù), 7 (<span class="hanzi" data-speak="七">七</span> qi), 8 (<span class="hanzi"
data-speak="八">八</span> ba), 9 (<span class="hanzi" data-speak="九">九</span> jiu), 10 (<span
class="hanzi" data-speak="十">十</span> shí).</p>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">The Big Units (Hundreds & Thousands)
</h4>
<div class="overflow-x-auto">
<table class="table">
<thead>
<tr>
<th>Number</th>
<th>Chinese</th>
<th>Pinyin</th>
</tr>
</thead>
<tbody>
<tr>
<td>100</td>
<td><span class="hanzi" data-speak="一百">一百</span></td>
<td><span class="pinyin">yìbai</span></td>
</tr>
<tr>
<td>1,000</td>
<td><span class="hanzi" data-speak="一千">一千</span></td>
<td><span class="pinyin">yìqian</span></td>
</tr>
<tr>
<td>10,000 (KEY!)</td>
<td><span class="hanzi" data-speak="一万">一万</span></td>
<td><span class="pinyin">yíwàn</span></td>
</tr>
</tbody>
</table>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Dates & Days (日期与星期)</h4>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<h5 class="font-bold text-white mb-2">Structure</h5>
<p class="text-sm text-slate-300 mb-2">Year + Month + Day + Weekday</p>
<ul class="list-disc list-inside text-sm space-y-1">
<li><strong>Year:</strong> <span class="hanzi" data-speak="年">年</span> (nián)</li>
<li><strong>Month:</strong> <span class="hanzi" data-speak="月">月</span> (yuè)</li>
<li><strong>Day:</strong> <span class="hanzi" data-speak="日">日</span> (rì) or <span
class="hanzi" data-speak="号">号</span> (hào)</li>
<li><strong>Week:</strong> <span class="hanzi" data-speak="星期">星期</span> (xingqí)</li>
</ul>
</div>
<div class="bg-white p-3 border border-slate-200 rounded">
<h5 class="font-bold text-white mb-2">Example: Oct 10, 2023</h5>
<p class="text-lg"><span class="hanzi" data-speak="二零二三年十月十日">二零二三年十月十日</span></p>
<p class="text-sm text-slate-400 mt-1">Èr líng èr san nián, shí yuè, shí rì.</p>
</div>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Taiwanese Addresses (台湾地址)</h4>
<p class="mb-3 text-slate-300">Taiwanese addresses go from Big to Small.</p>
<div class="bg-slate-800/50 p-4 rounded border border-slate-700">
<p class="font-mono text-sm text-slate-400 mb-2">Format: City > District > Road > Section >
Lane > Alley > No. > Floor</p>
<p class="text-lg font-bold mb-1 text-white"><span class="hanzi"
data-speak="台北市信义区信义路五段七号一零一楼">台北市信义区信义路五段七号一零一楼</span></p>
<ul class="text-sm text-slate-300 space-y-1 mt-2">
<li><span class="hanzi" data-speak="市">市</span> (shì) - City</li>
<li><span class="hanzi" data-speak="区">区</span> (qu) - District</li>
<li><span class="hanzi" data-speak="路">路</span> (lù) - Road</li>
<li><span class="hanzi" data-speak="段">段</span> (duàn) - Section</li>
<li><span class="hanzi" data-speak="巷">巷</span> (xiàng) - Lane</li>
<li><span class="hanzi" data-speak="号">号</span> (hào) - Number</li>
<li><span class="hanzi" data-speak="楼">楼</span> (lóu) - Floor</li>
</ul>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Phone Numbers (电话号码)</h4>
<p class="text-slate-300 leading-relaxed">
Read digits one by one. The number '1' is often pronounced "yao" instead of "yi" in phone
numbers to avoid confusion with '7' (qi), but "yi" is also fine.
<br>Example: <strong>0912-345-678</strong>
<br>(Líng jiu yi èr, san sì wu, liù qi ba)
</p>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Real-world Scenario: Taking a Taxi</h4>
<div class="space-y-4 bg-slate-800/50 p-4 rounded-lg border border-slate-700 mb-8">
<div>
<p><strong>Driver:</strong> <span class="hanzi" data-speak="请问要去哪里?">请问要去哪里?</span> (Qǐngwèn
yào qù nǎlǐ?)</p>
<p class="text-sm text-slate-400">Where are you going?</p>
</div>
<div>
<p><strong>You:</strong> <span class="hanzi" data-speak="我要去信义路五段七号。">我要去信义路五段七号。</span> (Wǒ
yào qù Xìnyì Lù wǔ duàn qī hào.)</p>
<p class="text-sm text-slate-400">I want to go to Xinyi Road, Section 5, Number 7.</p>
</div>
<div>
<p><strong>Driver:</strong> <span class="hanzi"
data-speak="好的,到了。一共两百元。">好的,到了。一共两百元。</span> (Hǎo de, dào le. Yígòng liǎng bǎi
yuán.)</p>
<p class="text-sm text-slate-400">Okay, we've arrived. Total is 200 NTD.</p>
</div>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Comprehension Check: Decipher the Address
</h4>
<p class="text-slate-400 mb-4">Rearrange the parts into the correct order (Big to Small).</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">100号 / 台北市 / 中山路</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">
<span class="hanzi" data-speak="台北市中山路 100 号">台北市中山路 100 号</span> (Taipei City,
Zhongshan Road, No. 100)
</div>
</details>
</div>
<div class="bg-slate-900 p-4 rounded border border-slate-800">
<p class="mb-2 font-bold text-white">三段 / 和平东路 / 25号</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">
<span class="hanzi" data-speak="和平东路三段 25 号">和平东路三段 25 号</span> (Heping East Road,
Sec 3, No. 25)
</div>
</details>
</div>
</div>
<div class="page-footer-nav">
<div class="flex gap-3"><button class="prev-page-btn" data-prev-page-id="chapter1"><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="chapter2"><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="chapter3"><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>