This skill produces a self-contained interactive HTML webpage ( gaokao_english_vocabulary.html) plus an external data file ( vocab_data.js) that together form a comprehensive vocabulary study tool for Chinese Gaokao English preparation.
The system classifies 4000+ words and 800+ phrases into 6 frequency levels each (12 levels total), with mastery tags, wrong-word warnings, search, multi-filter, and collapsible sections — all in a responsive dark theme.
text
gaokao_english_vocabulary.html # Main page (self-contained HTML + CSS + JS)
vocab_data.js # External vocabulary data (loaded via <script src>)
The data file is separated from HTML to keep the page loadable even with large datasets. The HTML contains all styling and logic inline.
vocab_data.js)#Each entry in the VOCAB array follows one of two formats:
Word format:
javascript
{
w: "abandon", // word
s: "vt.", // part of speech
d: [{m: "放弃", c: 28}], // definitions array: [{meaning, exam_count}]
l: 2, // level (1-6)
v: "must", // mastery: "145" | "must" | "normal" | "know"
p: "əˈbændən", // phonetic (optional)
e: true, // has wrong-word warning (optional)
t: "易写成abanden" // wrong-word tip text (optional)
}
Phrase format (flat):
javascript
{
w: "a great deal of", // phrase
s: "phr.", // part of speech (always "phr.")
m: "大量的", // meaning (flat string, not array)
c: 15, // exam frequency count
i: "normal", // mastery: "145" | "must" | "normal" | "know"
e: false // wrong-word warning (optional)
}
Words (6 levels by exam count):
LevelNameRangeColorLv.1超高频 Super High≥40 timesGreen #3fb950Lv.2高频 High20-39 timesBlue #58a6ffLv.3次高频 Sub-High10-19 timesYellow #e3b341Lv.4中频 Medium5-9 timesRed #f85149Lv.5低频 Low2-4 timesPurple #a371f7Lv.6超低频 Very Low0-1 timesGray #484f58
Phrases (6 levels by exam count):
LevelNameRangeColorP1超高频≥20 timesCyan #38bdf8P2高频12-19 timesTeal #22d3eeP3次高频8-11 timesBlue #38bdf8P4中频5-7 timesLight Blue #7dd3fcP5低频3-4 timesSoft Blue #93c5fdP6超低频1-2 timesSlate #94a3b8
TagLabelColorCSS Class145🔥 145分必掌握Green bg.m145must✅ 必须掌握Yellow bg.mmustnormal📖 一般掌握Gray bg.mnormalknow👀 了解意思Dark bg.mknow
Header, stats, search box, and filter buttons are all in a position:sticky top bar that stays visible during scroll.
Each filter button shows the level name and a small <small> tag with the exam count range (e.g., "20-39次").
Each level section header (e.g., "🟢 Lv.1 超高频") uses position:sticky so it remains visible while scrolling through cards in that section.
Each level section can be expanded/collapsed by clicking its header. Sections start collapsed and expand with a smooth max-height transition.
Each vocabulary card displays:
Real-time search across word, meaning, and phonetic fields. Supports both word d[].m and phrase m formats.
Filter buttons for: All, 6 word levels, All phrases, 6 phrase levels, 145-essential, Wrong-word.
text
┌─────────────────────────────────────┐
│ 📚 高考英语词汇频率分级系统 │ ← Sticky top bar
│ Stats: 总词汇 / 单词 / 词组 / ... │
│ [🔍 搜索框] │
│ [全部] [Lv.1≥40次] [Lv.2 20-39次]… │ ← Filter buttons with annotations
├─────────────────────────────────────┤
│ 🟢 Lv.1 超高频(≥40次考查) 161 词 ▼ │ ← Sticky level header
│ ┌──────────┐ ┌──────────┐ │
│ │ card │ │ card │ │ ← Card grid
│ └──────────┘ └──────────┘ │
│ 🔵 Lv.2 高频(20-39次考查) 415 词 ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ card │ │ card │ │
│ └──────────┘ └──────────┘ │
│ ... (remaining levels) │
│ 📌 词组 P1 超高频(≥20次考查) 22 词 ▼│
│ ... (phrase levels) │
└─────────────────────────────────────┘
Gather vocabulary data — Collect word lists with:
Generate vocab_data.js — Format data as var VOCAB = [...]; following the data format above. Words use d:[{m,c}] array; phrases use flat m and c fields.
Create the HTML page — Use the template structure from references/template_structure.md. Key sections:
<style> block with all CSS (dark theme, card styles, level colors, responsive breakpoints)<div id="mainContent"><script> block with: getLevel(), getMaxCount(), renderCard(), render(), filterWord(), toggleSection(), setFilter(), doSearch(), updateStats()Ensure all 12 levels are non-empty — If any level has zero entries, either add more vocabulary or adjust the count thresholds.
Validate data integrity — Run Python checks:
w and s fieldsd[] (words) or m (phrases) for meaningv (words) or i (phrases) for masteryTest in browser — Start HTTP server ( python -m http.server 8080) and verify:
#0d1117, cards #161b22, borders #30363dlinear-gradient(135deg, #1a1f2e, #0d1117)#58a6ff, slight translateY lift + box-shadowgrid-template-columns: repeat(auto-fill, minmax(300px, 1fr))max-width: 600pxposition: sticky; top: 0; z-index: 50; box-shadow: 0 2px 8px rgba(0,0,0,0.3)position: sticky; top: 0; z-index: 100; backdrop-filter: blur(12px)getLevel() function.level-X .level-header and .level-X .word-bar rulesgetMasteryLabel() functionsetFilter() and filterWord() switch statementsComplete HTML template structure with all CSS styles and JavaScript functions. Use as the starting point when generating a new page — copy and customize the thresholds, colors, and data.
Python script that generates vocab_data.js from a structured vocabulary source. Demonstrates the data generation workflow including word/phrase classification, mastery assignment, and JS output formatting.