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 pathchapter5.html
More file actions
318 lines (300 loc) · 21.6 KB
/
Copy pathchapter5.html
File metadata and controls
318 lines (300 loc) · 21.6 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
<!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="chapter5">
<div class="flex items-center justify-between mb-6">
<h3 class="card-title text-xl font-semibold">Chapter 5: Family Conversations</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">Family is central to Chinese culture. You will often
be
asked about your family.</p>
<h4 class="font-semibold mt-6 mb-3 text-lg text-white">Immediate Family</h4>
<div class="overflow-x-auto">
<table class="table">
<thead>
<tr>
<th>Relation</th>
<th>Traditional Chinese</th>
<th>Pinyin</th>
</tr>
</thead>
<tbody>
<tr>
<td>Father / Dad</td>
<td><span class="hanzi" data-speak="爸爸">爸爸</span></td>
<td><span class="pinyin">bàba</span></td>
</tr>
<tr>
<td>Mother / Mom</td>
<td><span class="hanzi" data-speak="妈妈">妈妈</span></td>
<td><span class="pinyin">mama</span></td>
</tr>
<tr>
<td>Older Brother</td>
<td><span class="hanzi" data-speak="哥哥">哥哥</span></td>
<td><span class="pinyin">gege</span></td>
</tr>
<tr>
<td>Older Sister</td>
<td><span class="hanzi" data-speak="姐姐">姐姐</span> (or <span class="hanzi"
data-speak="姐姐">姐姐</span>)</td>
<td><span class="pinyin">jiejie</span></td>
</tr>
<tr>
<td>Younger Brother</td>
<td><span class="hanzi" data-speak="弟弟">弟弟</span></td>
<td><span class="pinyin">dìdi</span></td>
</tr>
<tr>
<td>Younger Sister</td>
<td><span class="hanzi" data-speak="妹妹">妹妹</span></td>
<td><span class="pinyin">mèimei</span></td>
</tr>
</tbody>
</table>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Common Questions & Status</h4>
<ul class="space-y-4">
<li><strong>Do you have any siblings?:</strong> <span class="hanzi"
data-speak="我有一个哥哥">我有一个哥哥</span>
<br><small class="text-slate-400">Lit: "Have brothers sisters?"</small>
</li>
<li><strong>I have one older brother:</strong> <span class="hanzi"
data-speak="我有一个哥哥">我有一个哥哥</span> (<span class="pinyin">Wo you yí ge gege</span>)
</li>
<li><strong>Are you married?:</strong> <span class="hanzi" data-speak="你结婚了吗?">你结婚了吗?</span>
(<span class="pinyin">Ni jiéhun le ma?</span>)</li>
<li><strong>I am single:</strong> <span class="hanzi" data-speak="我单身">我单身</span> (<span
class="pinyin">Wo danshen</span>)</li>
<li><strong>Do you have children?:</strong> <span class="hanzi"
data-speak="你有小孩吗?">你有小孩吗?</span> (<span class="pinyin">Ni you xiaohái ma?</span>)
</li>
</ul>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Extended Family (Grandparents)</h4>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div class="bg-blue-900/20 p-3 rounded border border-blue-500/30">
<h5 class="font-bold text-blue-400 mb-2">Paternal (Father's side)</h5>
<ul class="space-y-1">
<li>Grandpa: <span class="hanzi" data-speak="爷爷">爷爷</span> (yéye)</li>
<li>Grandma: <span class="hanzi" data-speak="奶奶">奶奶</span> (nainai)</li>
</ul>
</div>
<div class="bg-pink-900/20 p-3 rounded border border-pink-500/30">
<h5 class="font-bold text-pink-400 mb-2">Maternal (Mother's side)</h5>
<ul class="space-y-1">
<li>Grandpa: <span class="hanzi" data-speak="外公">外公</span> (wàigong)</li>
<li>Grandma: <span class="hanzi" data-speak="外婆">外婆</span> (wàipó)</li>
</ul>
</div>
</div>
<div class="callout p-4 mt-8 bg-purple-900/20 border-l-4 border-purple-500">
<h5 class="font-bold mb-2 text-purple-300">Cultural Note: Address Everyone as Family</h5>
<p class="text-sm text-purple-200">In Taiwan, it's polite to address older people as family
terms even if you aren't related.</p>
<ul class="list-disc list-inside mt-2 text-sm text-purple-800">
<li><strong>Big Brother:</strong> <span class="hanzi" data-speak="大哥">大哥</span> (Dàge) - For
men
slightly older.</li>
<li><strong>Big Sister:</strong> <span class="hanzi" data-speak="大姐">大姐</span> (Dàjie) - For
women
slightly older.</li>
<li><strong>Auntie:</strong> <span class="hanzi" data-speak="阿姨">阿姨</span> (Ayí) - For woman
of mother's
age (Very common in shops/restaurants).</li>
<li><strong>Uncle:</strong> <span class="hanzi" data-speak="大哥">大哥</span> (Dàge) or <span
class="hanzi" data-speak="先生">先生</span> (Xiansheng) - "Uncle" (Shushu) is less
common for
strangers, "Big Brother" is safer/politer.</li>
</ul>
</ul>
</div>
<!-- NEW CONTENT FOR LEVEL 4 EXTENSION -->
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Grammar Note: Possession (De)</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">The Golden Rule of Ownership</p>
<p class="text-slate-300 text-sm">
Add <span class="hanzi" data-speak="的">的</span> (de) after a noun or pronoun to show
possession (like 's in
English).
<br><br>
<strong>My:</strong> <span class="hanzi" data-speak="我的">我的</span> (Wǒ de)
<br><strong>Mom's friend:</strong> <span class="hanzi" data-speak="妈妈的朋友">妈妈的朋友</span> (Māma
de péngyǒu)
<br><strong>Exception:</strong> For close family, you can omit 'de'. <span class="hanzi"
data-speak="我爸爸">我爸爸</span> (Wǒ bàba) is fine.
</p>
</div>
<h4 class="font-semibold mt-8 mb-3 text-lg text-white">Real-world Scenario: Family Gathering</h4>
<div class="space-y-4 bg-slate-800/50 p-4 rounded-lg border border-slate-700 mb-8">
<div>
<p><strong>Auntie:</strong> <span class="hanzi" data-speak="这是你男朋友吗?">这是你男朋友吗?</span> (Zhè
shì nǐ nánpéngyǒu ma?)</p>
<p class="text-sm text-slate-400">Is this your boyfriend?</p>
</div>
<div>
<p><strong>You:</strong> <span class="hanzi" data-speak="不是,他是我的朋友。">不是,他是我的朋友。</span> (Bú
shì, tā shì wǒ de péngyǒu.)</p>
<p class="text-sm text-slate-400">No, he is my friend.</p>
</div>
<div>
<p><strong>Auntie:</strong> <span class="hanzi" data-speak="这么帅!有女朋友吗?">这么帅!有女朋友吗?</span>
(Zhème shuài! Yǒu nǚpéngyǒu ma?)</p>
<p class="text-sm text-slate-400">So handsome! Does he have a girlfriend?</p>
</div>
</div>
<div class="callout p-4 mt-8 bg-red-900/20 border-l-4 border-red-500">
<h5 class="font-bold mb-2 text-red-300">Cultural Insight: Red Envelopes (Hongbao)</h5>
<p class="text-sm text-red-200">
During Chinese New Year, elders give <span class="hanzi" data-speak="红包">红包</span> (hóngbāo)
to children and
unmarried young adults. Once you start working or get married, you are expected to give them
to your parents and elders!
</p>
</div>
<div class="page-footer-nav">
<div class="flex gap-3"><button class="prev-page-btn" data-prev-page-id="chapter4"><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="chapter5"><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="chapter6"><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>