{"id":12910,"date":"2025-07-19T10:08:10","date_gmt":"2025-07-19T02:08:10","guid":{"rendered":"https:\/\/tiffanysmandarin.com\/?p=12910"},"modified":"2026-09-08T05:37:01","modified_gmt":"2026-09-07T21:37:01","slug":"contemporary-chinese-vocabulary-practice-b1l5","status":"publish","type":"post","link":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/","title":{"rendered":"B1 L5 Vocabulary and Practice"},"content":{"rendered":"\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--\n  \u7576\u4ee3\u4e2d\u6587 Book 1 \u00b7 Lesson 5 \u300c\u725b\u8089\u9eb5\u771f\u597d\u5403\u300d Beef Noodles Are Really Delicious \u2014 Vocabulary Embed\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  Same technical pattern as the L1\u2013L4 embeds. Vocabulary I and II\n  transcribed word-for-word from the textbook's \u751f\u8a5e\u4e00 \/ \u751f\u8a5e\u4e8c pages\n  (including the Phrases sections), with the part-of-speech tags shown\n  in the book. No new named characters are introduced in this lesson's\n  vocab list, so there is no separate \u4eba\u7269 section.\n\n  The dialogue in section 04 is an ORIGINAL conversation (not from the\n  textbook) built only from vocabulary confirmed to appear in Lesson 1\n  through Lesson 5, so it doesn't reproduce the copyrighted textbook\n  dialogue.\n-->\n<div class=\"dangdai-b1l5-vocab-embed\" id=\"dangdai-b1l5-vocab-embed-1\">\n<style>\n.dangdai-b1l5-vocab-embed {\n  --db5-oxblood: #7b2d26;\n  --db5-oxblood-dark: #5e211c;\n  --db5-mustard: #c9922b;\n  --db5-sage: #7c8b6f;\n  --db5-bone: #f7f1e6;\n  --db5-ink: #2c2620;\n  --db5-line: #e4d9c4;\n  font-family: 'Work Sans', -apple-system, sans-serif;\n  color: var(--db5-ink);\n  background: #fff;\n  max-width: 760px;\n  margin: 0 auto;\n  padding: 8px 4px 24px;\n  line-height: 1.6;\n}\n.dangdai-b1l5-vocab-embed * { box-sizing: border-box; }\n.dangdai-b1l5-vocab-embed h1,\n.dangdai-b1l5-vocab-embed h2,\n.dangdai-b1l5-vocab-embed h3 {\n  font-family: 'Bitter', Georgia, serif;\n  color: var(--db5-oxblood-dark);\n  margin: 0 0 8px;\n}\n.dangdai-b1l5-vocab-embed .db5-support-note {\n  font-size: 0.85rem;\n  color: var(--db5-sage);\n  border-bottom: 1px solid var(--db5-line);\n  padding-bottom: 12px;\n  margin: 0 0 16px;\n}\n.dangdai-b1l5-vocab-embed .db5-lede {\n  margin: 0 0 24px;\n  padding: 14px 16px;\n  background: var(--db5-bone);\n  border-left: 4px solid var(--db5-mustard);\n  border-radius: 4px;\n  font-size: 0.98rem;\n}\n.dangdai-b1l5-vocab-embed .db5-lede b { color: var(--db5-oxblood-dark); }\n.dangdai-b1l5-vocab-embed .db5-sec-eyebrow {\n  display: inline-block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  letter-spacing: 0.08em;\n  color: #fff;\n  background: var(--db5-oxblood);\n  padding: 3px 9px;\n  border-radius: 3px;\n  margin: 32px 0 10px;\n}\n.dangdai-b1l5-vocab-embed .db5-word-card {\n  border: 1px solid var(--db5-line);\n  border-radius: 8px;\n  padding: 12px 14px;\n  margin-bottom: 10px;\n  background: #fff;\n}\n.dangdai-b1l5-vocab-embed .db5-word-top {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  flex-wrap: wrap;\n}\n.dangdai-b1l5-vocab-embed .db5-num {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.75rem;\n  color: var(--db5-mustard);\n  min-width: 22px;\n}\n.dangdai-b1l5-vocab-embed .db5-hanzi { font-size: 1.35rem; font-weight: 600; }\n.dangdai-b1l5-vocab-embed .db5-pos {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: #fff;\n  background: var(--db5-sage);\n  padding: 2px 7px;\n  border-radius: 10px;\n}\n.dangdai-b1l5-vocab-embed ruby {\n  ruby-position: over;\n  margin-right: 2px;\n  color: var(--db5-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b1l5-vocab-embed .rb {\n  color: var(--db5-ink) !important;\n  font-size: inherit !important;\n}\n.dangdai-b1l5-vocab-embed rt {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.6rem !important;\n  color: var(--db5-sage) !important;\n  font-weight: 400;\n}\n.dangdai-b1l5-vocab-embed .db5-meaning { font-style: italic; color: #6b5f52; font-size: 0.92rem; }\n.dangdai-b1l5-vocab-embed .db5-speaker {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex: 0 0 26px;\n  width: 26px;\n  height: 26px;\n  padding: 0;\n  border: none;\n  background: var(--db5-bone);\n  color: var(--db5-oxblood);\n  border-radius: 50%;\n  cursor: pointer;\n  margin-left: auto;\n}\n.dangdai-b1l5-vocab-embed .db5-speaker:hover { background: var(--db5-mustard); color: #fff; }\n.dangdai-b1l5-vocab-embed .db5-example {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px dashed var(--db5-line);\n  font-size: 0.95rem;\n}\n.dangdai-b1l5-vocab-embed .db5-example .db5-sent-word { display: inline-flex; }\n.dangdai-b1l5-vocab-embed .db5-example .db5-punct { margin-right: 2px; }\n.dangdai-b1l5-vocab-embed .db5-example .db5-en {\n  display: block;\n  color: #6b5f52;\n  font-size: 0.85rem;\n  margin-top: 4px;\n}\n.dangdai-b1l5-vocab-embed .db5-dialogue-note { font-size: 0.85rem; color: #6b5f52; margin: 0 0 10px; }\n.dangdai-b1l5-vocab-embed .db5-dialogue {\n  background: var(--db5-bone);\n  border-radius: 8px;\n  padding: 16px 18px;\n  margin-top: 8px;\n}\n.dangdai-b1l5-vocab-embed .db5-line {\n  display: flex;\n  gap: 8px;\n  margin-bottom: 12px;\n  align-items: flex-start;\n  flex-wrap: wrap;\n}\n.dangdai-b1l5-vocab-embed .db5-speaker-tag {\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.72rem;\n  color: var(--db5-oxblood);\n  min-width: 46px;\n  padding-top: 3px;\n}\n.dangdai-b1l5-vocab-embed .db5-line-body { flex: 1; min-width: 200px; }\n.dangdai-b1l5-vocab-embed .db5-line-en { display: block; color: #6b5f52; font-size: 0.82rem; margin-top: 2px; }\n\n.dangdai-b1l5-vocab-embed .db5-fc-hint { font-size: 0.85rem; color: #6b5f52; margin: 0 0 12px; text-align: center; }\n.dangdai-b1l5-vocab-embed .db5-flashcard-wrap { max-width: 320px; margin: 0 auto 14px; perspective: 1200px; }\n.dangdai-b1l5-vocab-embed .db5-flashcard {\n  position: relative;\n  width: 100%;\n  height: 230px;\n  cursor: pointer;\n  transform-style: preserve-3d;\n  transition: transform 0.5s;\n}\n.dangdai-b1l5-vocab-embed .db5-flashcard.db5-flipped { transform: rotateY(180deg); }\n.dangdai-b1l5-vocab-embed .db5-fc-face {\n  position: absolute;\n  inset: 0;\n  backface-visibility: hidden;\n  border: 1px solid var(--db5-line);\n  border-radius: 12px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 16px;\n  background: #fff;\n  text-align: center;\n}\n.dangdai-b1l5-vocab-embed .db5-fc-back { transform: rotateY(180deg); background: var(--db5-bone); }\n.dangdai-b1l5-vocab-embed .db5-fc-front .db5-hanzi { font-size: 4rem !important; }\n.dangdai-b1l5-vocab-embed .db5-flashcard-wrap rt { font-size: 1.2rem !important; }\n.dangdai-b1l5-vocab-embed .db5-fc-back .db5-meaning { font-style: italic; color: var(--db5-oxblood-dark); font-size: 1.725rem; }\n.dangdai-b1l5-vocab-embed .db5-fc-back .db5-pos { margin-top: 8px; }\n.dangdai-b1l5-vocab-embed .db5-flashcard-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }\n.dangdai-b1l5-vocab-embed .db5-game-btn {\n  font-family: 'Work Sans', sans-serif;\n  font-size: 0.85rem;\n  border: 1px solid var(--db5-oxblood);\n  color: var(--db5-oxblood);\n  background: #fff;\n  padding: 6px 14px;\n  border-radius: 20px;\n  cursor: pointer;\n}\n.dangdai-b1l5-vocab-embed .db5-game-btn:hover { background: var(--db5-oxblood); color: #fff; }\n.dangdai-b1l5-vocab-embed .db5-game-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }\n.dangdai-b1l5-vocab-embed .db5-game-status { font-family: 'IBM Plex Mono', monospace; font-size: 0.82rem; color: var(--db5-sage); }\n.dangdai-b1l5-vocab-embed .db5-game-board { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }\n.dangdai-b1l5-vocab-embed .db5-game-col { display: flex; flex-direction: column; gap: 8px; }\n.dangdai-b1l5-vocab-embed .db5-tile {\n  font-family: 'Work Sans', sans-serif;\n  text-align: left;\n  border: 1px solid var(--db5-line);\n  background: #fff;\n  border-radius: 6px;\n  padding: 10px 12px;\n  cursor: pointer;\n  font-size: 0.95rem;\n  color: var(--db5-ink);\n  transition: background 0.15s, border-color 0.15s, transform 0.1s;\n}\n.dangdai-b1l5-vocab-embed .db5-tile .db5-tile-py {\n  display: block;\n  font-family: 'IBM Plex Mono', monospace;\n  font-size: 0.7rem;\n  color: var(--db5-sage);\n  margin-top: 2px;\n}\n.dangdai-b1l5-vocab-embed .db5-tile:hover:not(.db5-matched):not(.db5-selected) { border-color: var(--db5-mustard); }\n.dangdai-b1l5-vocab-embed .db5-tile.db5-selected { border-color: var(--db5-oxblood); background: var(--db5-bone); }\n.dangdai-b1l5-vocab-embed .db5-tile.db5-matched { border-color: var(--db5-sage); background: #eef2e9; color: var(--db5-sage); cursor: default; }\n.dangdai-b1l5-vocab-embed .db5-tile.db5-wrong { border-color: #b5453d; background: #fbeceb; animation: db5-shake 0.3s; }\n@keyframes db5-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }\n.dangdai-b1l5-vocab-embed .db5-game-win { text-align: center; padding: 14px; font-family: 'Bitter', serif; color: var(--db5-oxblood-dark); display: none; }\n.dangdai-b1l5-vocab-embed .db5-game-win.db5-show { display: block; }\n@media (max-width: 480px) { .dangdai-b1l5-vocab-embed .db5-game-board { grid-template-columns: 1fr; } }\n.dangdai-b1l5-vocab-embed .db5-quiz { background: #fff; border: 1px solid var(--db5-line); border-radius: 12px; padding: 20px 22px; margin-top: 8px; }\n.dangdai-b1l5-vocab-embed .db5-quiz-progress { font-size: 0.82rem; color: var(--db5-sage); margin: 0 0 10px; font-family: 'IBM Plex Mono', monospace; }\n.dangdai-b1l5-vocab-embed .db5-quiz-prompt { font-size: 1.1rem; margin: 0 0 14px; }\n.dangdai-b1l5-vocab-embed .db5-quiz-options { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; }\n.dangdai-b1l5-vocab-embed .db5-quiz-opt { text-align: left; border: 1px solid var(--db5-line); background: var(--db5-bone); border-radius: 8px; padding: 10px 14px; cursor: pointer; font-size: 0.98rem; color: var(--db5-ink); }\n.dangdai-b1l5-vocab-embed .db5-quiz-opt:hover { background: #f0e6d2; }\n.dangdai-b1l5-vocab-embed .db5-quiz-opt.correct { background: #e3efdd; border-color: #7fae6d; color: #3d5c34; }\n.dangdai-b1l5-vocab-embed .db5-quiz-opt.incorrect { background: #f5e0dc; border-color: var(--db5-oxblood); color: var(--db5-oxblood-dark); }\n.dangdai-b1l5-vocab-embed .db5-quiz-opt[disabled] { cursor: default; }\n.dangdai-b1l5-vocab-embed .db5-quiz-input-row { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }\n.dangdai-b1l5-vocab-embed .db5-quiz-input { flex: 1 1 200px; border: 1px solid var(--db5-line); border-radius: 8px; padding: 9px 12px; font-size: 0.98rem; }\n.dangdai-b1l5-vocab-embed .db5-quiz-submit, .dangdai-b1l5-vocab-embed .db5-quiz-next, .dangdai-b1l5-vocab-embed .db5-quiz-retake { border: none; background: var(--db5-oxblood); color: #fff; border-radius: 20px; padding: 8px 18px; font-size: 0.9rem; cursor: pointer; }\n.dangdai-b1l5-vocab-embed .db5-quiz-submit:hover, .dangdai-b1l5-vocab-embed .db5-quiz-next:hover, .dangdai-b1l5-vocab-embed .db5-quiz-retake:hover { background: var(--db5-oxblood-dark); }\n.dangdai-b1l5-vocab-embed .db5-quiz-feedback { font-size: 0.95rem; margin: 0 0 10px; min-height: 1.4em; }\n.dangdai-b1l5-vocab-embed .db5-quiz-feedback.correct { color: #3d5c34; }\n.dangdai-b1l5-vocab-embed .db5-quiz-feedback.incorrect { color: var(--db5-oxblood-dark); }\n.dangdai-b1l5-vocab-embed .db5-quiz-score { text-align: center; }\n.dangdai-b1l5-vocab-embed .db5-quiz-score .db5-quiz-score-num { font-size: 2.2rem; font-weight: 700; color: var(--db5-oxblood-dark); display: block; margin-bottom: 8px; font-family: 'Bitter', serif; }\n<\/style>\n\n<p class=\"db5-support-note\"><em>A note before you start: I&#8217;d love for you to support the official textbook \u2014 this page is only meant as a review tool for people who already own a copy, not a replacement for it.<\/em><\/p>\n\n<p class=\"db5-lede\">\n<b><span class=\"lang-zh-TW\">\u7576\u4ee3\u4e2d\u6587\u8ab2\u7a0b<\/span><span class=\"lang-zh-CN\">\u5f53\u4ee3\u4e2d\u6587\u8bfe\u7a0b<\/span> Book 1 \u00b7 Lesson 5\u300c<span class=\"lang-zh-TW\">\u725b\u8089\u9eb5\u771f\u597d\u5403<\/span><span class=\"lang-zh-CN\">\u725b\u8089\u9762\u771f\u597d\u5403<\/span>\u300dBeef Noodles Are Really Delicious<\/b> \u2014 every word from \u751f\u8a5e\u4e00 and \u751f\u8a5e\u4e8c (Vocabulary I &amp; II), transcribed from the textbook, with pinyin, part of speech, meaning, and an original example sentence for every word (built only from Lesson 1\u20135 vocabulary), segmented word by word.\n<\/p>\n\n<div class=\"db5-sec-eyebrow\">01 \u2014 VOCABULARY I \u751f\u8a5e\u4e00<\/div>\n<div id=\"db5-word-list-1\"><\/div>\n\n<div class=\"db5-sec-eyebrow\">02 \u2014 PHRASES I \u8a5e\u7d44<\/div>\n<div id=\"db5-word-list-2\"><\/div>\n\n<div class=\"db5-sec-eyebrow\">03 \u2014 VOCABULARY II \u751f\u8a5e\u4e8c<\/div>\n<div id=\"db5-word-list-3\"><\/div>\n\n<div class=\"db5-sec-eyebrow\">04 \u2014 PHRASES II \u8a5e\u7d44<\/div>\n<div id=\"db5-word-list-4\"><\/div>\n\n<div class=\"db5-sec-eyebrow\">05 \u2014 PUT IT TOGETHER \u5c0d\u8a71\u7df4\u7fd2<\/div>\n<p class=\"db5-dialogue-note\"><em>Note: this dialogue is NOT from the textbook \u2014 the textbook&#8217;s own Dialogue I and Dialogue II are copyrighted, so I wrote a short original conversation below using only vocabulary from Lesson 1 through Lesson 5, so you can see the words used together. For the real Lesson 5 dialogues, please use your own copy of the textbook.<\/em><\/p>\n<div class=\"db5-dialogue\" id=\"db5-dialogue\"><\/div>\n\n<div class=\"db5-sec-eyebrow\">06 \u2014 FLASHCARDS<\/div>\n<p class=\"db5-fc-hint\">Tap the card to flip it, then use the arrows to move through the deck.<\/p>\n<div class=\"db5-flashcard-wrap\">\n  <div class=\"db5-flashcard\" id=\"db5-flashcard\">\n    <div class=\"db5-fc-face db5-fc-front\" id=\"db5-fc-front\"><\/div>\n    <div class=\"db5-fc-face db5-fc-back\" id=\"db5-fc-back\"><\/div>\n  <\/div>\n<\/div>\n<div class=\"db5-flashcard-controls\">\n  <button class=\"db5-game-btn\" id=\"db5-fc-prev\">\u2039 Prev<\/button>\n  <span class=\"db5-game-status\" id=\"db5-fc-progress\">1 \/ 38<\/span>\n  <button class=\"db5-game-btn\" id=\"db5-fc-next\">Next \u203a<\/button>\n<\/div>\n\n<div class=\"db5-sec-eyebrow\">07 \u2014 MATCH IT<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">Tap a Chinese word, then tap the English meaning that matches it. Get all 8 pairs to finish the round.<\/p>\n<div class=\"db5-game-bar\">\n  <button class=\"db5-game-btn\" id=\"db5-game-new\">New Round<\/button>\n  <span class=\"db5-game-status\" id=\"db5-game-status\">0 \/ 8 matched<\/span>\n<\/div>\n<div class=\"db5-game-board\">\n  <div class=\"db5-game-col\" id=\"db5-game-col-zh\"><\/div>\n  <div class=\"db5-game-col\" id=\"db5-game-col-en\"><\/div>\n<\/div>\n<div class=\"db5-game-win\" id=\"db5-game-win\">\ud83c\udf89 All matched! Nice work.<\/div>\n\n<div class=\"db5-sec-eyebrow\">08 \u2014 VOCABULARY QUIZ<\/div>\n<p style=\"font-size:0.9rem;color:#6b5f52;margin:0 0 10px;\">15 questions covering this lesson&#8217;s vocabulary \u2014 a mix of multiple choice and type-the-answer.<\/p>\n<div class=\"db5-quiz\" id=\"db5-quiz\"><\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('dangdai-b1l5-vocab-embed-1');\n  if (!root) return;\n\n  var SPEAKER_SVG = '<svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" fill=\"currentColor\" aria-hidden=\"true\">' +\n    '<path d=\"M7 4.5v15l13-7.5z\"><\/path>' +\n    '<\/svg>';\n\n  function W(t, s, p) { return { t: t, s: s, pt: p, ps: p }; }\n\n  var GROUPS = {\n    'db5-word-list-1': [\n      { t: '\u725b\u8089', s: '\u725b\u8089', p: 'ni\u00far\u00f2u', pos: 'N', meaning: 'beef',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u725b\u8089','\u725b\u8089','ni\u00far\u00f2u'), '\u3002'],\n        exEn: 'I like eating beef.' },\n      { t: '\u9eb5', s: '\u9762', p: 'mi\u00e0n', pos: 'N', meaning: 'noodles',\n        ex: [W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','Ni\u00far\u00f2u mi\u00e0n'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Beef noodles are delicious.' },\n      { t: '\u771f', s: '\u771f', p: 'zh\u0113n', pos: 'Adv', meaning: 'really',\n        ex: [W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','Ni\u00far\u00f2u mi\u00e0n'), W('\u771f','\u771f','zh\u0113n'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Beef noodles are really delicious.' },\n      { t: '\u597d\u5403', s: '\u597d\u5403', p: 'h\u01ceoch\u012b', pos: 'Vs', meaning: 'delicious',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u500b','\u4e2a','ge'), W('\u5305\u5b50','\u5305\u5b50','b\u0101ozi'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: 'This baozi is delicious.' },\n      { t: '\u8aaa', s: '\u8bf4', p: 'shu\u014d', pos: 'V', meaning: 'to say',\n        ex: [W('\u5f88','\u5f88','H\u011bn'), W('\u591a','\u591a','du\u014d'), W('\u4eba','\u4eba','r\u00e9n'), W('\u90fd','\u90fd','d\u014du'), W('\u8aaa','\u8bf4','shu\u014d'), W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u6709','\u6709','y\u01d2u'), W('\u5f88','\u5f88','h\u011bn'), W('\u591a','\u591a','du\u014d'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), W('\u7684','\u7684','de'), W('\u5c0f\u5403','\u5c0f\u5403','xi\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Many people say Taiwan has lots of delicious snacks.' },\n      { t: '\u5c11', s: '\u5c11', p: 'sh\u01ceo', pos: 'Vs-pred', meaning: 'few in number',\n        ex: [W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u6709','\u6709','y\u01d2u'), W('\u4e0d','\u4e0d','b\u00f9'), W('\u5c11','\u5c11','sh\u01ceo'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), W('\u7684','\u7684','de'), W('\u5c0f\u5403','\u5c0f\u5403','xi\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Taiwan has quite a few famous snacks.' },\n      { t: '\u6709\u540d', s: '\u6709\u540d', p: 'y\u01d2um\u00edng', pos: 'Vs', meaning: 'well known, famous',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u5e97','\u5e97','di\u00e0n'), W('\u5f88','\u5f88','h\u011bn'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), '\u3002'],\n        exEn: 'This shop is very famous.' },\n      { t: '\u5c0f\u5403', s: '\u5c0f\u5403', p: 'xi\u01ceoch\u012b', pos: 'N', meaning: 'light repast, snack',\n        ex: [W('\u81fa\u7063','\u53f0\u6e7e','T\u00e1iw\u0101n'), W('\u6709','\u6709','y\u01d2u'), W('\u5f88','\u5f88','h\u011bn'), W('\u591a','\u591a','du\u014d'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), W('\u7684','\u7684','de'), W('\u5c0f\u5403','\u5c0f\u5403','xi\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Taiwan has lots of famous snacks.' },\n      { t: '\u6700', s: '\u6700', p: 'zu\u00ec', pos: 'Adv', meaning: 'most',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u6700','\u6700','zu\u00ec'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n        exEn: 'What do you like to eat most?' },\n      { t: '\u6e6f', s: '\u6c64', p: 't\u0101ng', pos: 'N', meaning: 'soup, broth',\n        ex: [W('\u725b\u8089','\u725b\u8089','Ni\u00far\u00f2u'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\uff0c', W('\u6e6f','\u6c64','t\u0101ng'), W('\u4e5f','\u4e5f','y\u011b'), W('\u597d\u559d','\u597d\u559d','h\u01ceoh\u0113'), '\u3002'],\n        exEn: 'The beef is delicious, and the soup is tasty too.' },\n      { t: '\u9019\u9ebc', s: '\u8fd9\u4e48', p: 'zh\u00e8me', pos: 'Adv', meaning: 'so',\n        ex: [W('\u9019\u9ebc','\u8fd9\u4e48','Zh\u00e8me'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u5403','\u5403','ch\u012b'), '\u3002'],\n        exEn: \"It's so delicious, I really want to eat it.\" },\n      { t: '\u77e5\u9053', s: '\u77e5\u9053', p: 'zh\u012bd\u00e0o', pos: 'Vst', meaning: 'to know',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u77e5\u9053','\u77e5\u9053','zh\u012bd\u00e0o'), W('\u4e00','\u4e00','y\u00ec'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), W('\u7684','\u7684','de'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u5e97','\u5e97','di\u00e0n'), '\u3002'],\n        exEn: 'I know a famous beef noodle shop.' },\n      { t: '\u5bb6', s: '\u5bb6', p: 'ji\u0101', pos: 'M', meaning: 'measure word for restaurants, shops, etc.',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u5e97','\u5e97','di\u00e0n'), W('\u5f88','\u5f88','h\u011bn'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), '\u3002'],\n        exEn: 'This shop is very famous.' },\n      { t: '\u5e97', s: '\u5e97', p: 'di\u00e0n', pos: 'N', meaning: 'shop, store',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u662f','\u662f','sh\u00ec'), W('\u4e00','\u4e00','y\u00ec'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u8ce3','\u5356','m\u00e0i'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u7684','\u7684','de'), W('\u5e97','\u5e97','di\u00e0n'), '\u3002'],\n        exEn: 'This is a shop that sells beef noodles.' },\n      { t: '\u4e00\u5b9a', s: '\u4e00\u5b9a', p: 'y\u00edd\u00ecng', pos: 'Adv', meaning: 'really must, definitely',\n        ex: [W('\u4e00\u5b9a','\u4e00\u5b9a','Y\u00edd\u00ecng'), W('\u8981','\u8981','y\u00e0o'), W('\u9ede','\u70b9','di\u01cen'), W('\u5927','\u5927','d\u00e0'), W('\u7897','\u7897','w\u01cen'), W('\u7684','\u7684','de'), '\u3002'],\n        exEn: 'You must order a large bowl.' },\n      { t: '\u9ede', s: '\u70b9', p: 'di\u01cen', pos: 'V', meaning: 'to order (meals)',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u9ede','\u70b9','di\u01cen'), W('\u4e00','\u4e00','y\u00ec'), W('\u7897','\u7897','w\u01cen'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), '\u3002'],\n        exEn: 'I want to order a bowl of beef noodles.' },\n      { t: '\u7897', s: '\u7897', p: 'w\u01cen', pos: 'M', meaning: 'a bowl of',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u8981','\u8981','y\u00e0o'), W('\u4e00','\u4e00','y\u00ec'), W('\u7897','\u7897','w\u01cen'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), '\u3002'],\n        exEn: 'I want a bowl of beef noodles.' }\n    ],\n    'db5-word-list-2': [\n      { t: '\u662f\u554a', s: '\u662f\u554a', p: 'sh\u00ec a', pos: 'Phrase', meaning: \"That's right.\",\n        ex: [W('\u662f\u554a','\u662f\u554a','Sh\u00ec a'), '\uff01', W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: \"That's right! Beef noodles are delicious.\" },\n      { t: '\u5c0f\u7c60\u5305', s: '\u5c0f\u7b3c\u5305', p: 'xi\u01ceol\u00f3ngb\u0101o', pos: 'Phrase', meaning: 'xiaolongbao, small meat and cabbage-filled steamed buns',\n        ex: [W('\u5c0f\u7c60\u5305','\u5c0f\u7b3c\u5305','Xi\u01ceol\u00f3ngb\u0101o'), W('\u4e5f','\u4e5f','y\u011b'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: 'Xiaolongbao is also delicious.' },\n      { t: '\u81ed\u8c46\u8150', s: '\u81ed\u8c46\u8150', p: 'ch\u00f2u d\u00f2uf\u01d4', pos: 'Phrase', meaning: 'stinky tofu (fermented tofu)',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u81ed\u8c46\u8150','\u81ed\u8c46\u8150','ch\u00f2u d\u00f2uf\u01d4'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Do you like eating stinky tofu?' },\n      { t: '\u592a\u597d\u4e86', s: '\u592a\u597d\u4e86', p: 't\u00e0i h\u01ceo le', pos: 'Phrase', meaning: 'Excellent. Great.',\n        ex: [W('\u592a\u597d\u4e86','\u592a\u597d\u4e86','T\u00e0i h\u01ceo le'), '\uff01', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), '\u3002'],\n        exEn: \"Great! Let's go eat together.\" }\n    ],\n    'db5-word-list-3': [\n      { t: '\u6628\u5929', s: '\u6628\u5929', p: 'zu\u00f3ti\u0101n', pos: 'N', meaning: 'yesterday',\n        ex: [W('\u6628\u5929','\u6628\u5929','Zu\u00f3ti\u0101n'), W('\u665a\u4e0a','\u665a\u4e0a','w\u01censh\u00e0ng'), W('\u90a3','\u90a3','n\u00e0'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u9910\u5ef3','\u9910\u5385','c\u0101nt\u012bng'), W('\u7684','\u7684','de'), W('\u83dc','\u83dc','c\u00e0i'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n        exEn: \"Last night that restaurant's food was delicious.\" },\n      { t: '\u9910\u5ef3', s: '\u9910\u5385', p: 'c\u0101nt\u012bng', pos: 'N', meaning: 'restaurant',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u9910\u5ef3','\u9910\u5385','c\u0101nt\u012bng'), W('\u5f88','\u5f88','h\u011bn'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), '\u3002'],\n        exEn: 'This restaurant is very famous.' },\n      { t: '\u53ef\u662f', s: '\u53ef\u662f', p: 'k\u011bsh\u00ec', pos: 'Conj', meaning: 'but, however',\n        ex: [W('\u90a3','\u90a3','N\u00e0'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u9910\u5ef3','\u9910\u5385','c\u0101nt\u012bng'), W('\u7684','\u7684','de'), W('\u83dc','\u83dc','c\u00e0i'), W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\uff0c', W('\u53ef\u662f','\u53ef\u662f','k\u011bsh\u00ec'), W('\u6709','\u6709','y\u01d2u'), W('\u4e00\u9ede','\u4e00\u70b9','y\u00ecdi\u01cen'), W('\u8fa3','\u8fa3','l\u00e0'), '\u3002'],\n        exEn: \"That restaurant's food is delicious, but a little spicy.\" },\n      { t: '\u8fa3', s: '\u8fa3', p: 'l\u00e0', pos: 'Vs', meaning: 'hot (spicy)',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u7897','\u7897','w\u01cen'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u6709','\u6709','y\u01d2u'), W('\u4e00\u9ede','\u4e00\u70b9','y\u00ecdi\u01cen'), W('\u8fa3','\u8fa3','l\u00e0'), '\u3002'],\n        exEn: 'This bowl of beef noodles is a little spicy.' },\n      { t: '\u6015', s: '\u6015', p: 'p\u00e0', pos: 'Vst', meaning: '(here) to not like, to fear',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u4e5f','\u4e5f','y\u011b'), W('\u6015','\u6015','p\u00e0'), W('\u8fa3','\u8fa3','l\u00e0'), '\u3002'],\n        exEn: \"I don't like spicy food either.\" },\n      { t: '\u6240\u4ee5', s: '\u6240\u4ee5', p: 'su\u01d2y\u01d0', pos: 'Conj', meaning: 'therefore, so',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u6015','\u6015','p\u00e0'), W('\u8fa3','\u8fa3','l\u00e0'), '\uff0c', W('\u6240\u4ee5','\u6240\u4ee5','su\u01d2y\u01d0'), W('\u6211','\u6211','w\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u81ea\u5df1','\u81ea\u5df1','z\u00ecj\u01d0'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), '\u3002'],\n        exEn: \"I don't like spicy food, so I like to cook myself.\" },\n      { t: '\u81ea\u5df1', s: '\u81ea\u5df1', p: 'z\u00ecj\u01d0', pos: 'N', meaning: 'self',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u81ea\u5df1','\u81ea\u5df1','z\u00ecj\u01d0'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), '\u3002'],\n        exEn: 'I like cooking myself.' },\n      { t: '\u505a\u98ef', s: '\u505a\u996d', p: 'zu\u00f2f\u00e0n', pos: 'V-sep', meaning: 'to cook',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u6703','\u4f1a','hu\u00ec'), W('\u4e0d','\u4e0d','b\u00fa'), W('\u6703','\u4f1a','hu\u00ec'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), '\uff1f'],\n        exEn: 'Can you cook?' },\n      { t: '\u5f97', s: '\u5f97', p: 'de', pos: 'Ptc', meaning: 'complement marker',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), W('\u505a','\u505a','zu\u00f2'), W('\u5f97','\u5f97','de'), W('\u600e\u9ebc\u6a23','\u600e\u4e48\u6837','z\u011bnmey\u00e0ng'), '\uff1f'],\n        exEn: 'How well do you cook?' },\n      { t: '\u6703', s: '\u4f1a', p: 'hu\u00ec', pos: 'Vaux', meaning: 'to be able to, can',\n        ex: [W('\u59b3','\u59b3','N\u01d0'), W('\u6703','\u4f1a','hu\u00ec'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Can you cook?' },\n      { t: '\u751c\u9ede', s: '\u751c\u70b9', p: 'ti\u00e1ndi\u01cen', pos: 'N', meaning: 'dessert',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u7684','\u7684','de'), W('\u751c\u9ede','\u751c\u70b9','ti\u00e1ndi\u01cen'), W('\u4e5f','\u4e5f','y\u011b'), W('\u505a','\u505a','zu\u00f2'), W('\u5f97','\u5f97','de'), W('\u4e0d\u932f','\u4e0d\u9519','b\u00facu\u00f2'), '\u3002'],\n        exEn: 'My desserts also turn out pretty well.' },\n      { t: '\u4e0d\u932f', s: '\u4e0d\u9519', p: 'b\u00facu\u00f2', pos: 'Vs', meaning: 'not bad',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u9910\u5ef3','\u9910\u5385','c\u0101nt\u012bng'), W('\u7684','\u7684','de'), W('\u83dc','\u83dc','c\u00e0i'), W('\u4e0d\u932f','\u4e0d\u9519','b\u00facu\u00f2'), '\u3002'],\n        exEn: \"This restaurant's food is not bad.\" },\n      { t: '\u53ef\u4ee5', s: '\u53ef\u4ee5', p: 'k\u011by\u01d0', pos: 'Vaux', meaning: 'could (possibility)',\n        ex: [W('\u59b3','\u59b3','N\u01d0'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u6559','\u6559','ji\u0101o'), W('\u6211','\u6211','w\u01d2'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Could you teach me?' },\n      { t: '\u6559', s: '\u6559', p: 'ji\u0101o', pos: 'V', meaning: 'to teach',\n        ex: [W('\u4f60','\u4f60','N\u01d0'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u6559','\u6559','ji\u0101o'), W('\u6211','\u6211','w\u01d2'), W('\u505a','\u505a','zu\u00f2'), W('\u751c\u9ede','\u751c\u70b9','ti\u00e1ndi\u01cen'), W('\u55ce','\u5417','ma'), '\uff1f'],\n        exEn: 'Could you teach me to make desserts?' },\n      { t: '\u5230', s: '\u5230', p: 'd\u00e0o', pos: 'Prep', meaning: 'to',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u500b','\u4e2a','ge'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), '\uff0c', W('\u4f60','\u4f60','n\u01d0'), W('\u5230','\u5230','d\u00e0o'), W('\u6211','\u6211','w\u01d2'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u4f86','\u6765','l\u00e1i'), '\u3002'],\n        exEn: 'Come to my place this weekend.' }\n    ],\n    'db5-word-list-4': [\n      { t: '\u6709\u4e00\u9ede', s: '\u6709\u4e00\u70b9', p: 'y\u01d2u y\u00ecdi\u01cen', pos: 'Phrase', meaning: 'a little',\n        ex: [W('\u9019','\u8fd9','Zh\u00e8'), W('\u7897','\u7897','w\u01cen'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u6709\u4e00\u9ede','\u6709\u4e00\u70b9','y\u01d2u y\u00ecdi\u01cen'), W('\u8fa3','\u8fa3','l\u00e0'), '\u3002'],\n        exEn: 'This bowl of beef noodles is a little spicy.' },\n      { t: '\u4e0d\u597d', s: '\u4e0d\u597d', p: 'b\u00f9 h\u01ceo', pos: 'Phrase', meaning: 'not well',\n        ex: [W('\u6211','\u6211','W\u01d2'), W('\u505a','\u505a','zu\u00f2'), W('\u5f97','\u5f97','de'), W('\u4e0d\u597d','\u4e0d\u597d','b\u00f9 h\u01ceo'), '\u3002'],\n        exEn: \"I don't do it well.\" }\n    ]\n  };\n\n  \/\/ Original dialogue (NOT from the textbook), using only Lesson 1\u20135 vocabulary\n  var DIALOGUE = [\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u59b3','\u59b3','N\u01d0'), W('\u6700','\u6700','zu\u00ec'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u4ec0\u9ebc','\u4ec0\u4e48','sh\u00e9nme'), '\uff1f'],\n      en: 'What do you like to eat most?' },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','Ni\u00far\u00f2u mi\u00e0n'), '\u3002', W('\u725b\u8089','\u725b\u8089','Ni\u00far\u00f2u'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\uff0c', W('\u6e6f','\u6c64','t\u0101ng'), W('\u4e5f','\u4e5f','y\u011b'), W('\u597d\u559d','\u597d\u559d','h\u01ceoh\u0113'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u5f88','\u5f88','h\u011bn'), W('\u60f3','\u60f3','xi\u01ceng'), W('\u5403','\u5403','ch\u012b'), '\u3002'],\n      en: 'Beef noodles. The beef is delicious, and the soup is tasty too \u2014 I really want to eat some.' },\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u77e5\u9053','\u77e5\u9053','zh\u012bd\u00e0o'), W('\u4e00','\u4e00','y\u00ec'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u6709\u540d','\u6709\u540d','y\u01d2um\u00edng'), W('\u7684','\u7684','de'), W('\u725b\u8089\u9eb5','\u725b\u8089\u9762','ni\u00far\u00f2u mi\u00e0n'), W('\u5e97','\u5e97','di\u00e0n'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u4e00\u8d77','\u4e00\u8d77','y\u00ecq\u01d0'), W('\u53bb','\u53bb','q\u00f9'), W('\u5403','\u5403','ch\u012b'), '\uff0c', W('\u600e\u9ebc\u6a23','\u600e\u4e48\u6837','z\u011bnmey\u00e0ng'), '\uff1f'],\n      en: \"I know a famous beef noodle shop, let's go together, how about it?\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u592a\u597d\u4e86','\u592a\u597d\u4e86','T\u00e0i h\u01ceo le'), '\uff01', W('\u53ef\u662f','\u53ef\u662f','K\u011bsh\u00ec'), W('\u6211','\u6211','w\u01d2'), W('\u6015','\u6015','p\u00e0'), W('\u8fa3','\u8fa3','l\u00e0'), '\uff0c', W('\u90a3','\u90a3','n\u00e0'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u7684','\u7684','de'), W('\u6e6f','\u6c64','t\u0101ng'), W('\u8fa3','\u8fa3','l\u00e0'), W('\u4e0d','\u4e0d','b\u00fa'), W('\u8fa3','\u8fa3','l\u00e0'), '\uff1f'],\n      en: \"Great! But I don't like spicy food \u2014 is their soup spicy?\" },\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u4e0d','\u4e0d','B\u00fa'), W('\u8fa3','\u8fa3','l\u00e0'), '\uff0c', W('\u5f88','\u5f88','h\u011bn'), W('\u597d\u5403','\u597d\u5403','h\u01ceoch\u012b'), '\u3002'],\n      en: \"Not spicy, it's delicious.\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u660e\u5929','\u660e\u5929','m\u00edngti\u0101n'), W('\u53bb','\u53bb','q\u00f9'), '\uff0c', W('\u4e00\u5b9a','\u4e00\u5b9a','y\u00edd\u00ecng'), W('\u8981','\u8981','y\u00e0o'), W('\u9ede','\u70b9','di\u01cen'), W('\u5927','\u5927','d\u00e0'), W('\u7897','\u7897','w\u01cen'), W('\u7684','\u7684','de'), '\uff01'],\n      en: \"OK, let's go tomorrow \u2014 we must order a large bowl!\" },\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u597d\u554a','\u597d\u554a','H\u01ceo a'), '\uff0c', W('\u6211','\u6211','w\u01d2'), W('\u4e5f','\u4e5f','y\u011b'), W('\u5f88','\u5f88','h\u011bn'), W('\u559c\u6b61','\u559c\u6b22','x\u01d0hu\u0101n'), W('\u5403','\u5403','ch\u012b'), W('\u5c0f\u7c60\u5305','\u5c0f\u7b3c\u5305','xi\u01ceol\u00f3ngb\u0101o'), '\uff0c', W('\u6211\u5011','\u6211\u4eec','w\u01d2men'), W('\u4e5f','\u4e5f','y\u011b'), W('\u9ede','\u70b9','di\u01cen'), W('\u5c0f\u7c60\u5305','\u5c0f\u7b3c\u5305','xi\u01ceol\u00f3ngb\u0101o'), W('\u5427','\u5427','ba'), '\uff01'],\n      en: \"Sure, I also really like xiaolongbao, let's order some too!\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u4f60','\u4f60','N\u01d0'), W('\u6703','\u4f1a','hu\u00ec'), W('\u505a\u98ef','\u505a\u996d','zu\u00f2f\u00e0n'), W('\u55ce','\u5417','ma'), '\uff1f'],\n      en: 'Can you cook?' },\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u6211','\u6211','W\u01d2'), W('\u505a','\u505a','zu\u00f2'), W('\u5f97','\u5f97','de'), W('\u4e0d\u597d','\u4e0d\u597d','b\u00f9 h\u01ceo'), '\uff0c', W('\u53ef\u662f','\u53ef\u662f','k\u011bsh\u00ec'), W('\u6211','\u6211','w\u01d2'), W('\u7684','\u7684','de'), W('\u751c\u9ede','\u751c\u70b9','ti\u00e1ndi\u01cen'), W('\u505a','\u505a','zu\u00f2'), W('\u5f97','\u5f97','de'), W('\u4e0d\u932f','\u4e0d\u9519','b\u00facu\u00f2'), '\u3002'],\n      en: \"I don't cook well, but my desserts turn out pretty well.\" },\n    { speakerT: '\u5982\u7389', speakerS: '\u5982\u7389',\n      tokens: [W('\u597d','\u597d','H\u01ceo'), '\uff0c', W('\u4f60','\u4f60','n\u01d0'), W('\u53ef\u4ee5','\u53ef\u4ee5','k\u011by\u01d0'), W('\u6559','\u6559','ji\u0101o'), W('\u6211','\u6211','w\u01d2'), W('\u505a','\u505a','zu\u00f2'), W('\u751c\u9ede','\u751c\u70b9','ti\u00e1ndi\u01cen'), W('\u55ce','\u5417','ma'), '\uff1f'],\n      en: 'OK, could you teach me to make desserts?' },\n    { speakerT: '\u5b89\u540c', speakerS: '\u5b89\u540c',\n      tokens: [W('\u597d\u554a','\u597d\u554a','H\u01ceo a'), '\uff0c', W('\u9019','\u8fd9','zh\u00e8'), W('\u500b','\u4e2a','ge'), W('\u9031\u672b','\u5468\u672b','zh\u014dum\u00f2'), W('\u4f60','\u4f60','n\u01d0'), W('\u5230','\u5230','d\u00e0o'), W('\u6211','\u6211','w\u01d2'), W('\u5bb6','\u5bb6','ji\u0101'), W('\u4f86','\u6765','l\u00e1i'), '\u3002'],\n      en: 'Sure, come to my place this weekend.' }\n  ];\n\n  var ALL_WORDS = [];\n  Object.keys(GROUPS).forEach(function (k) {\n    GROUPS[k].forEach(function (w) { ALL_WORDS.push(w); });\n  });\n\n  function rubyWord(w) {\n    return '<span class=\"db5-sent-word\">' +\n      '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + w.t + '<\/span><rt>' + w.pt + '<\/rt><\/ruby>' +\n      '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + w.s + '<\/span><rt>' + w.ps + '<\/rt><\/ruby>' +\n      '<\/span>';\n  }\n\n  function renderTokens(tokens) {\n    var html = '';\n    tokens.forEach(function (tok) {\n      if (typeof tok === 'string') {\n        html += '<span class=\"db5-punct\">' + tok + '<\/span>';\n      } else {\n        html += rubyWord(tok);\n      }\n    });\n    return html;\n  }\n\n  function headwordRuby(t, s, pt, ps) {\n    return '<ruby class=\"lang-zh-TW\"><span class=\"rb\">' + t + '<\/span><rt>' + pt + '<\/rt><\/ruby>' +\n           '<ruby class=\"lang-zh-CN\"><span class=\"rb\">' + s + '<\/span><rt>' + ps + '<\/rt><\/ruby>';\n  }\n\n  var counter = 0;\n  Object.keys(GROUPS).forEach(function (containerId) {\n    var container = root.querySelector('#' + containerId);\n    if (!container) return;\n    var html = '';\n    GROUPS[containerId].forEach(function (w) {\n      counter++;\n      var num = (counter < 10 ? '0' : '') + counter;\n      html += '<div class=\"db5-word-card\">' +\n        '<div class=\"db5-word-top\">' +\n          '<span class=\"db5-num\">' + num + '<\/span>' +\n          '<span class=\"db5-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>' +\n          '<span class=\"db5-pos\">' + w.pos + '<\/span>' +\n          '<span class=\"db5-meaning\">' + w.meaning + '<\/span>' +\n          '<button class=\"db5-speaker\" data-trad=\"' + w.t + '\" data-simp=\"' + w.s + '\" aria-label=\"Play pronunciation\">' + SPEAKER_SVG + '<\/button>' +\n        '<\/div>' +\n        '<div class=\"db5-example\">' +\n          renderTokens(w.ex) +\n          '<span class=\"db5-en\">' + w.exEn + '<\/span>' +\n        '<\/div>' +\n      '<\/div>';\n    });\n    container.innerHTML = html;\n  });\n\n  var dialogueEl = root.querySelector('#db5-dialogue');\n  if (dialogueEl) {\n    var dHtml = '';\n    DIALOGUE.forEach(function (line) {\n      dHtml += '<div class=\"db5-line\">' +\n        '<span class=\"db5-speaker-tag\">' +\n          '<span class=\"lang-zh-TW\">' + line.speakerT + '<\/span>' +\n          '<span class=\"lang-zh-CN\">' + line.speakerS + '<\/span>' +\n        '<\/span>' +\n        '<span class=\"db5-line-body\">' +\n          renderTokens(line.tokens) +\n          '<span class=\"db5-line-en\">' + line.en + '<\/span>' +\n        '<\/span>' +\n      '<\/div>';\n    });\n    dialogueEl.innerHTML = dHtml;\n  }\n\n  \/\/ ---- Flashcards ----\n  var fcCard = root.querySelector('#db5-flashcard');\n  var fcFront = root.querySelector('#db5-fc-front');\n  var fcBack = root.querySelector('#db5-fc-back');\n  var fcProgress = root.querySelector('#db5-fc-progress');\n  var fcPrevBtn = root.querySelector('#db5-fc-prev');\n  var fcNextBtn = root.querySelector('#db5-fc-next');\n  var fcIndex = 0;\n  var fcFlipped = false;\n\n  function renderFlashcard() {\n    var w = ALL_WORDS[fcIndex];\n    if (!w || !fcFront || !fcBack) return;\n    fcFront.innerHTML = '<span class=\"db5-hanzi\">' + headwordRuby(w.t, w.s, w.pt || w.p, w.ps || w.p) + '<\/span>';\n    fcBack.innerHTML = '<span class=\"db5-meaning\">' + w.meaning + '<\/span><span class=\"db5-pos\">' + w.pos + '<\/span>';\n    if (fcProgress) fcProgress.textContent = (fcIndex + 1) + ' \/ ' + ALL_WORDS.length;\n    if (fcCard) fcCard.classList.remove('db5-flipped');\n    fcFlipped = false;\n  }\n\n  if (fcCard) {\n    fcCard.addEventListener('click', function () {\n      fcFlipped = !fcFlipped;\n      fcCard.classList.toggle('db5-flipped', fcFlipped);\n    });\n  }\n  if (fcPrevBtn) fcPrevBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex - 1 + ALL_WORDS.length) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  if (fcNextBtn) fcNextBtn.addEventListener('click', function () {\n    fcIndex = (fcIndex + 1) % ALL_WORDS.length;\n    renderFlashcard();\n  });\n  renderFlashcard();\n\n  \/\/ ---- Match It game ----\n  var gameColZh = root.querySelector('#db5-game-col-zh');\n  var gameColEn = root.querySelector('#db5-game-col-en');\n  var gameStatus = root.querySelector('#db5-game-status');\n  var gameWin = root.querySelector('#db5-game-win');\n  var gameNewBtn = root.querySelector('#db5-game-new');\n  var gameRound = [];\n  var gameSelectedZh = null;\n  var gameSelectedEn = null;\n  var gameMatchedCount = 0;\n  var gameBusy = false;\n\n  function shuffle(arr) {\n    var a = arr.slice();\n    for (var i = a.length - 1; i > 0; i--) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var tmp = a[i]; a[i] = a[j]; a[j] = tmp;\n    }\n    return a;\n  }\n\n  function startRound() {\n    gameRound = shuffle(ALL_WORDS).slice(0, 8);\n    gameSelectedZh = null;\n    gameSelectedEn = null;\n    gameMatchedCount = 0;\n    gameBusy = false;\n    if (gameWin) gameWin.classList.remove('db5-show');\n\n    var zhOrder = shuffle(gameRound);\n    var enOrder = shuffle(gameRound);\n\n    gameColZh.innerHTML = zhOrder.map(function (w) {\n      return '<button class=\"db5-tile\" data-id=\"' + w.t + '\" data-side=\"zh\">' +\n        '<span class=\"lang-zh-TW\">' + w.t + '<\/span><span class=\"lang-zh-CN\">' + w.s + '<\/span>' +\n        '<span class=\"db5-tile-py\">' + (w.pt || w.p) + '<\/span>' +\n      '<\/button>';\n    }).join('');\n\n    gameColEn.innerHTML = enOrder.map(function (w) {\n      return '<button class=\"db5-tile\" data-id=\"' + w.t + '\" data-side=\"en\">' + w.meaning + '<\/button>';\n    }).join('');\n\n    updateGameStatus();\n  }\n\n  function updateGameStatus() {\n    if (gameStatus) gameStatus.textContent = gameMatchedCount + ' \/ ' + gameRound.length + ' matched';\n  }\n\n  function handleTileClick(tile) {\n    if (gameBusy || tile.classList.contains('db5-matched')) return;\n    var side = tile.getAttribute('data-side');\n\n    if (side === 'zh') {\n      if (gameSelectedZh) gameSelectedZh.classList.remove('db5-selected');\n      gameSelectedZh = tile;\n      tile.classList.add('db5-selected');\n    } else {\n      if (gameSelectedEn) gameSelectedEn.classList.remove('db5-selected');\n      gameSelectedEn = tile;\n      tile.classList.add('db5-selected');\n    }\n\n    if (gameSelectedZh) {\n      if (gameSelectedEn) {\n        var zhId = gameSelectedZh.getAttribute('data-id');\n        var enId = gameSelectedEn.getAttribute('data-id');\n        if (zhId === enId) {\n          gameSelectedZh.classList.remove('db5-selected');\n          gameSelectedEn.classList.remove('db5-selected');\n          gameSelectedZh.classList.add('db5-matched');\n          gameSelectedEn.classList.add('db5-matched');\n          gameMatchedCount++;\n          updateGameStatus();\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n          var roundDone = (gameMatchedCount === gameRound.length);\n          if (roundDone) {\n            if (gameWin) {\n              gameWin.classList.add('db5-show');\n            }\n          }\n        } else {\n          gameBusy = true;\n          var z = gameSelectedZh, en = gameSelectedEn;\n          z.classList.add('db5-wrong');\n          en.classList.add('db5-wrong');\n          setTimeout(function () {\n            z.classList.remove('db5-selected', 'db5-wrong');\n            en.classList.remove('db5-selected', 'db5-wrong');\n            gameBusy = false;\n          }, 400);\n          gameSelectedZh = null;\n          gameSelectedEn = null;\n        }\n      }\n    }\n  }\n\n  root.addEventListener('click', function (e) {\n    var tile = e.target.closest('.db5-tile');\n    if (tile) {\n      if (root.contains(tile)) handleTileClick(tile);\n    }\n  });\n  if (gameNewBtn) gameNewBtn.addEventListener('click', startRound);\n\n  startRound();\n\n  \/\/ ---- Vocabulary Quiz ----\n  var QUIZ_DATA = [\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u6709\u540d<\/span><span class=\"lang-zh-CN\">\u6709\u540d<\/span> means...', options: ['well known, famous', 'delicious', 'few in number', 'most'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u6e6f<\/span><span class=\"lang-zh-CN\">\u6c64<\/span>.', accept: ['tang'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u4e00\u5b9a<\/span><span class=\"lang-zh-CN\">\u4e00\u5b9a<\/span> means...', options: ['definitely, really must', 'maybe', 'so', 'most'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u7897<\/span><span class=\"lang-zh-CN\">\u7897<\/span>.', accept: ['bowl', 'a bowl of'] },\n    { type: 'mc', prompt: 'Which word means \"spicy\"?', options: ['<span class=\"lang-zh-TW\">\u8fa3<\/span><span class=\"lang-zh-CN\">\u8fa3<\/span>', '<span class=\"lang-zh-TW\">\u6015<\/span><span class=\"lang-zh-CN\">\u6015<\/span>', '<span class=\"lang-zh-TW\">\u6e6f<\/span><span class=\"lang-zh-CN\">\u6c64<\/span>', '<span class=\"lang-zh-TW\">\u751c\u9ede<\/span><span class=\"lang-zh-CN\">\u751c\u70b9<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u6240\u4ee5<\/span><span class=\"lang-zh-CN\">\u6240\u4ee5<\/span>.', accept: ['suoyi'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u81ea\u5df1<\/span><span class=\"lang-zh-CN\">\u81ea\u5df1<\/span> means...', options: ['self', 'friend', 'restaurant', 'dessert'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u505a\u98ef<\/span><span class=\"lang-zh-CN\">\u505a\u996d<\/span>.', accept: ['cook', 'to cook'] },\n    { type: 'mc', prompt: 'Which word marks a complement after a verb (e.g. \u505a\u5f97\u5f88\u597d)?', options: ['<span class=\"lang-zh-TW\">\u5f97<\/span><span class=\"lang-zh-CN\">\u5f97<\/span>', '<span class=\"lang-zh-TW\">\u7684<\/span><span class=\"lang-zh-CN\">\u7684<\/span>', '<span class=\"lang-zh-TW\">\u6703<\/span><span class=\"lang-zh-CN\">\u4f1a<\/span>', '<span class=\"lang-zh-TW\">\u53ef\u4ee5<\/span><span class=\"lang-zh-CN\">\u53ef\u4ee5<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u751c\u9ede<\/span><span class=\"lang-zh-CN\">\u751c\u70b9<\/span>.', accept: ['tiandian'] },\n    { type: 'mc', prompt: '<span class=\"lang-zh-TW\">\u6703<\/span><span class=\"lang-zh-CN\">\u4f1a<\/span> (Vaux) means...', options: ['to be able to, can (learned skill)', 'could (possibility)', 'to teach', 'to know'], answer: 0 },\n    { type: 'type', prompt: 'Type the English word for <span class=\"lang-zh-TW\">\u4e0d\u932f<\/span><span class=\"lang-zh-CN\">\u4e0d\u9519<\/span>.', accept: ['not bad'] },\n    { type: 'mc', prompt: 'Which phrase means \"That\\'s right.\"?', options: ['<span class=\"lang-zh-TW\">\u662f\u554a<\/span><span class=\"lang-zh-CN\">\u662f\u554a<\/span>', '<span class=\"lang-zh-TW\">\u592a\u597d\u4e86<\/span><span class=\"lang-zh-CN\">\u592a\u597d\u4e86<\/span>', '<span class=\"lang-zh-TW\">\u6709\u4e00\u9ede<\/span><span class=\"lang-zh-CN\">\u6709\u4e00\u70b9<\/span>', '<span class=\"lang-zh-TW\">\u4e0d\u597d<\/span><span class=\"lang-zh-CN\">\u4e0d\u597d<\/span>'], answer: 0 },\n    { type: 'type', prompt: 'Type the pinyin for <span class=\"lang-zh-TW\">\u5230<\/span><span class=\"lang-zh-CN\">\u5230<\/span> (Prep, \"to\").', accept: ['dao'] },\n    { type: 'mc', prompt: 'Which word means \"stinky tofu\"?', options: ['<span class=\"lang-zh-TW\">\u81ed\u8c46\u8150<\/span><span class=\"lang-zh-CN\">\u81ed\u8c46\u8150<\/span>', '<span class=\"lang-zh-TW\">\u5c0f\u7c60\u5305<\/span><span class=\"lang-zh-CN\">\u5c0f\u7b3c\u5305<\/span>', '<span class=\"lang-zh-TW\">\u725b\u8089\u9eb5<\/span><span class=\"lang-zh-CN\">\u725b\u8089\u9762<\/span>', '<span class=\"lang-zh-TW\">\u5c0f\u5403<\/span><span class=\"lang-zh-CN\">\u5c0f\u5403<\/span>'], answer: 0 }\n  ];\n\n  function stripTones(s) {\n    return s.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '').toLowerCase().replace(\/[^a-z0-9]\/g, '');\n  }\n\n  (function initQuiz() {\n    var qRoot = root.querySelector('#db5-quiz');\n    if (!qRoot) return;\n    var current = 0;\n    var score = 0;\n    var answered = false;\n\n    function render() {\n      if (current >= QUIZ_DATA.length) { renderScore(); return; }\n      var q = QUIZ_DATA[current];\n      answered = false;\n      var html = '<p class=\"db5-quiz-progress\">Question ' + (current + 1) + ' of ' + QUIZ_DATA.length + '<\/p>';\n      html += '<p class=\"db5-quiz-prompt\">' + q.prompt + '<\/p>';\n      if (q.type === 'mc') {\n        html += '<div class=\"db5-quiz-options\">';\n        for (var i = 0; i < q.options.length; i++) {\n          html += '<button type=\"button\" class=\"db5-quiz-opt\" data-i=\"' + i + '\">' + q.options[i] + '<\/button>';\n        }\n        html += '<\/div>';\n      } else {\n        html += '<div class=\"db5-quiz-input-row\">';\n        html += '<input type=\"text\" class=\"db5-quiz-input\" placeholder=\"Type your answer\">';\n        html += '<button type=\"button\" class=\"db5-quiz-submit\">Submit<\/button>';\n        html += '<\/div>';\n      }\n      html += '<p class=\"db5-quiz-feedback\"><\/p>';\n      html += '<button type=\"button\" class=\"db5-quiz-next\" style=\"display:none;\">Next<\/button>';\n      qRoot.innerHTML = html;\n\n      if (q.type === 'mc') {\n        var opts = qRoot.querySelectorAll('.db5-quiz-opt');\n        opts.forEach(function (btn) {\n          btn.addEventListener('click', function () {\n            if (answered) return;\n            answered = true;\n            var i = parseInt(this.getAttribute('data-i'), 10);\n            var correct = i === q.answer;\n            if (correct) score++;\n            opts.forEach(function (b, bi) {\n              b.setAttribute('disabled', 'disabled');\n              if (bi === q.answer) b.classList.add('correct');\n              else if (bi === i) b.classList.add('incorrect');\n            });\n            showFeedback(correct);\n          });\n        });\n      } else {\n        var input = qRoot.querySelector('.db5-quiz-input');\n        var submitBtn = qRoot.querySelector('.db5-quiz-submit');\n        function submit() {\n          if (answered) return;\n          answered = true;\n          var val = stripTones(input.value || '');\n          var correct = q.accept.indexOf(val) !== -1;\n          if (correct) score++;\n          input.setAttribute('disabled', 'disabled');\n          submitBtn.setAttribute('disabled', 'disabled');\n          showFeedback(correct, q.accept[0]);\n        }\n        submitBtn.addEventListener('click', submit);\n        input.addEventListener('keydown', function (e) { if (e.key === 'Enter') submit(); });\n      }\n\n      function showFeedback(correct, correctAnswer) {\n        var fb = qRoot.querySelector('.db5-quiz-feedback');\n        if (correct) {\n          fb.textContent = 'Correct!';\n        } else if (correctAnswer) {\n          fb.textContent = 'Not quite \u2014 the answer is \"' + correctAnswer + '\".';\n        } else {\n          fb.textContent = 'Not quite \u2014 check the highlighted answer above.';\n        }\n        fb.className = 'db5-quiz-feedback ' + (correct ? 'correct' : 'incorrect');\n        var nextBtn = qRoot.querySelector('.db5-quiz-next');\n        nextBtn.style.display = 'inline-block';\n        nextBtn.addEventListener('click', function () { current++; render(); });\n      }\n    }\n\n    function renderScore() {\n      qRoot.innerHTML =\n        '<div class=\"db5-quiz-score\">' +\n        '<span class=\"db5-quiz-score-num\">' + score + ' \/ ' + QUIZ_DATA.length + '<\/span>' +\n        '<p>Nice work! Want to try again?<\/p>' +\n        '<button type=\"button\" class=\"db5-quiz-retake\">Retake Quiz<\/button>' +\n        '<\/div>';\n      qRoot.querySelector('.db5-quiz-retake').addEventListener('click', function () {\n        current = 0; score = 0; render();\n      });\n    }\n\n    render();\n  })();\n\n  \/\/ Speaker buttons (event delegation, Web Speech API)\n  root.addEventListener('click', function (e) {\n    var btn = e.target.closest('.db5-speaker');\n    if (!btn || !root.contains(btn)) return;\n    if (!('speechSynthesis' in window)) return;\n    var showingSimp = false;\n    var simpEl = root.querySelector('.lang-zh-CN');\n    if (simpEl) {\n      if (simpEl.offsetParent !== null) showingSimp = true;\n    }\n    var text = showingSimp ? btn.getAttribute('data-simp') : btn.getAttribute('data-trad');\n    var utter = new SpeechSynthesisUtterance(text);\n    utter.lang = showingSimp ? 'zh-CN' : 'zh-TW';\n    window.speechSynthesis.cancel();\n    window.speechSynthesis.speak(utter);\n  });\n})();\n<\/script>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-medium is-resized\"><a href=\"https:\/\/ko-fi.com\/tiffanystalk\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"58\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-300x58.png\" alt=\"\" class=\"wp-image-570\" style=\"width:150px;height:29px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-300x58.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-600x115.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-1024x197.png 1024w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-768x148.png 768w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-1536x296.png 1536w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-2048x394.png 2048w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/fcacd-buymeacoffee_red402x-850x164.png 850w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Do you like it? \ud83d\ude42<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium is-resized\"><a href=\"https:\/\/tiffanysmandarin.com\/index.php\/contemporary-chinese-book-1\/\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"86\" src=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png\" alt=\"\" class=\"wp-image-571\" style=\"width:150px;height:43px\" srcset=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-300x86.png 300w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963-600x171.png 600w, https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/e68f92e59c963.png 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>A note before you start: I&#8217;d love for you to support the official textbook \u2014 this page is only meant as a review tool for people who already own a copy, not a replacement for it. \u7576\u4ee3\u4e2d\u6587\u8ab2\u7a0b\u5f53\u4ee3\u4e2d\u6587\u8bfe\u7a0b Book 1 \u00b7 Lesson 5\u300c\u725b\u8089\u9eb5\u771f\u597d\u5403\u725b\u8089\u9762\u771f\u597d\u5403\u300dBeef Noodles Are Really Delicious \u2014 every word from \u751f\u8a5e\u4e00 and \u751f\u8a5e\u4e8c (Vocabulary I&#8230;<\/p>\n","protected":false},"author":2,"featured_media":10970,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_convertkit_post_meta":{"form":"-1","landing_page":"0","tag":"0","restrict_content":"0"},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1099],"tags":[],"class_list":["post-12910","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1099"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>B1 L5 Vocabulary and Practice - OneDotDot Chinese<\/title>\n<meta name=\"description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B1 L5 Vocabulary and Practice - OneDotDot Chinese\" \/>\n<meta property=\"og:description\" content=\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/\" \/>\n<meta property=\"og:site_name\" content=\"OneDotDot Chinese\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-19T02:08:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-07T21:37:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"tiffany\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tiffany\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/\"},\"author\":{\"name\":\"tiffany\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"headline\":\"B1 L5 Vocabulary and Practice\",\"datePublished\":\"2025-07-19T02:08:10+00:00\",\"dateModified\":\"2026-09-07T21:37:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/\"},\"wordCount\":214,\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"articleSection\":[\"\u7576\u4ee3\u4e2d\u6587 1\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/\",\"name\":\"B1 L5 Vocabulary and Practice - OneDotDot Chinese\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"datePublished\":\"2025-07-19T02:08:10+00:00\",\"dateModified\":\"2026-09-07T21:37:01+00:00\",\"description\":\"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"contentUrl\":\"https:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/\u7576\u4ee3\u4e2d\u6587.jpg\",\"width\":800,\"height\":300,\"caption\":\"\u7576\u4ee3\u4e2d\u65871\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/2025\\\/07\\\/19\\\/contemporary-chinese-vocabulary-practice-b1l5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"B1 L5 Vocabulary and Practice\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#website\",\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/\",\"name\":\"OneDotDot Chinese\",\"description\":\"Learn a little Chinese every day\",\"publisher\":{\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tiffanysmandarin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tiffanysmandarin.com\\\/#\\\/schema\\\/person\\\/3556e1160fac98b190d03b8aa8604d99\",\"name\":\"tiffany\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"url\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"contentUrl\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\",\"width\":214,\"height\":214,\"caption\":\"tiffany\"},\"logo\":{\"@id\":\"http:\\\/\\\/tiffanysmandarin.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo_tiffany2-1.png\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/tiffanys_talk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tiffany-huang-mandarin\\\/\"],\"url\":\"https:\\\/\\\/tiffanysmandarin.com\\\/index.php\\\/author\\\/tiffany\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"B1 L5 Vocabulary and Practice - OneDotDot Chinese","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/","og_locale":"en_US","og_type":"article","og_title":"B1 L5 Vocabulary and Practice - OneDotDot Chinese","og_description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5","og_url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/","og_site_name":"OneDotDot Chinese","article_published_time":"2025-07-19T02:08:10+00:00","article_modified_time":"2026-09-07T21:37:01+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","type":"image\/jpeg"}],"author":"tiffany","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tiffany","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#article","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/"},"author":{"name":"tiffany","@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"headline":"B1 L5 Vocabulary and Practice","datePublished":"2025-07-19T02:08:10+00:00","dateModified":"2026-09-07T21:37:01+00:00","mainEntityOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/"},"wordCount":214,"publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","articleSection":["\u7576\u4ee3\u4e2d\u6587 1"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/","url":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/","name":"B1 L5 Vocabulary and Practice - OneDotDot Chinese","isPartOf":{"@id":"https:\/\/tiffanysmandarin.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#primaryimage"},"image":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#primaryimage"},"thumbnailUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","datePublished":"2025-07-19T02:08:10+00:00","dateModified":"2026-09-07T21:37:01+00:00","description":"Strengthen your vocabulary \u7576\u4ee3\u4e2d\u6587\u7b2c\u4e00\u518a\u7b2c\u4e94\u8ab2 \u55ae\u8a5e\u7df4\u7fd2 \u8907\u7fd2 \u8003\u8a66 Contemporary Chinese Vocabulary Practice Book 1 \u2013 Lesson 5","breadcrumb":{"@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#primaryimage","url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","contentUrl":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","width":800,"height":300,"caption":"\u7576\u4ee3\u4e2d\u65871"},{"@type":"BreadcrumbList","@id":"https:\/\/tiffanysmandarin.com\/index.php\/2025\/07\/19\/contemporary-chinese-vocabulary-practice-b1l5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/tiffanysmandarin.com\/"},{"@type":"ListItem","position":2,"name":"B1 L5 Vocabulary and Practice"}]},{"@type":"WebSite","@id":"https:\/\/tiffanysmandarin.com\/#website","url":"https:\/\/tiffanysmandarin.com\/","name":"OneDotDot Chinese","description":"Learn a little Chinese every day","publisher":{"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tiffanysmandarin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tiffanysmandarin.com\/#\/schema\/person\/3556e1160fac98b190d03b8aa8604d99","name":"tiffany","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","url":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","contentUrl":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png","width":214,"height":214,"caption":"tiffany"},"logo":{"@id":"http:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2022\/06\/cropped-logo_tiffany2-1.png"},"sameAs":["https:\/\/www.instagram.com\/tiffanys_talk\/","https:\/\/www.linkedin.com\/in\/tiffany-huang-mandarin\/"],"url":"https:\/\/tiffanysmandarin.com\/index.php\/author\/tiffany\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/tiffanysmandarin.com\/wp-content\/uploads\/2024\/09\/\u7576\u4ee3\u4e2d\u6587.jpg","_links":{"self":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/12910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/comments?post=12910"}],"version-history":[{"count":4,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/12910\/revisions"}],"predecessor-version":[{"id":16740,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/posts\/12910\/revisions\/16740"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media\/10970"}],"wp:attachment":[{"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/media?parent=12910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/categories?post=12910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiffanysmandarin.com\/index.php\/wp-json\/wp\/v2\/tags?post=12910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}