Install
openclaw skills install gaokao-english-vocabularyThis skill generates interactive "高考英语词汇频率分级系统" (Gaokao English Vocabulary Frequency Grading System) webpages. It creates beautiful, dark-themed, single-page HTML study tools that classify English vocabulary by exam frequency based on real Gaokao (Chinese College Entrance Exam) data from 1977-2025. Each word/phrase is tagged with exam frequency, mastery level (145-essential / must-know / general / familiar), and wrong-word warnings. This skill should be used when: - User asks to create a Gaokao English vocabulary study tool or webpage - User wants to build an English word frequency classification system for exam prep - User wants a dark-themed interactive vocabulary learning page with search, filter, and level-based organization - Keywords: 高考英语词汇、词汇分级、频率统计、vocabulary frequency、Gaokao English
openclaw skills install gaokao-english-vocabularyThis 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.
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:
{
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):
{
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):
| Level | Name | Range | Color |
|---|---|---|---|
| Lv.1 | 超高频 Super High | ≥40 times | Green #3fb950 |
| Lv.2 | 高频 High | 20-39 times | Blue #58a6ff |
| Lv.3 | 次高频 Sub-High | 10-19 times | Yellow #e3b341 |
| Lv.4 | 中频 Medium | 5-9 times | Red #f85149 |
| Lv.5 | 低频 Low | 2-4 times | Purple #a371f7 |
| Lv.6 | 超低频 Very Low | 0-1 times | Gray #484f58 |
Phrases (6 levels by exam count):
| Level | Name | Range | Color |
|---|---|---|---|
| P1 | 超高频 | ≥20 times | Cyan #38bdf8 |
| P2 | 高频 | 12-19 times | Teal #22d3ee |
| P3 | 次高频 | 8-11 times | Blue #38bdf8 |
| P4 | 中频 | 5-7 times | Light Blue #7dd3fc |
| P5 | 低频 | 3-4 times | Soft Blue #93c5fd |
| P6 | 超低频 | 1-2 times | Slate #94a3b8 |
| Tag | Label | Color | CSS Class |
|---|---|---|---|
| 145 | 🔥 145分必掌握 | Green bg | .m145 |
| must | ✅ 必须掌握 | Yellow bg | .mmust |
| normal | 📖 一般掌握 | Gray bg | .mnormal |
| know | 👀 了解意思 | 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.
┌─────────────────────────────────────┐
│ 📚 高考英语词汇频率分级系统 │ ← 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.