mirror of
https://github.com/tiennm99/mathmax.git
synced 2026-09-17 22:21:25 +00:00
d558159173f1ad7f0dea86c56552b29e8d6b7b0a
rippling was raised before the stagger loop but lowered only inside the final timeout, so a prime with no multiple left on the 100-cell grid left the flag raised and rejected every later click. Affected 10 of the 25 primes on the grid.
MathMax
Toán tương tác cho học sinh THCS Việt Nam (lớp 6-9). Số học, Đại số, Hình học qua kéo-thả và minh hoạ trực quan.
Status
8 bài đã ra mắt — số học, đại số, hình học đều có ít nhất hai bài.
- Lớp 6 — Ước chung lớn nhất (Euclid):
/so-hoc/uoc-chung-lon-nhat/ - Lớp 6 — Sàng Eratosthenes:
/so-hoc/sang-eratosthenes/ - Lớp 7 — Hiệu hai bình phương:
/dai-so/hieu-hai-binh-phuong/ - Lớp 7 — Đồ thị y = ax + b:
/dai-so/duong-thang/ - Lớp 7 — Định lý Pythagoras:
/hinh-hoc/dinh-ly-pythagoras/ - Lớp 7 — Tam giác bằng nhau (SSS):
/hinh-hoc/tam-giac-bang-nhau/ - Lớp 8 — Tam giác đồng dạng:
/hinh-hoc/tam-giac-dong-dang/ - Lớp 9 — Góc nội tiếp:
/hinh-hoc/goc-noi-tiep/
Develop
Yêu cầu: Node 24+, npm.
npm install
npm run dev # http://localhost:5173/mathmax/
npm test # Vitest (geom-engine unit tests)
npm run check # svelte-check + JSDoc strict
npm run build # Static output → build/
npm run preview # Serve build/
Deploy
Auto-deploy lên GitHub Pages từ main qua actions/deploy-pages@v4. Xem RUNBOOK.md để rollback / chuyển domain.
Live URL: https://tiennm99.github.io/mathmax/
Architecture
- Static: SvelteKit +
@sveltejs/adapter-static,paths.base = '/mathmax', outputbuild/. - Styling: Tailwind 3 (PostCSS) + Be Vietnam Pro (woff2 qua
@fontsource). Tick palettecolors.pair.{1,2,3,4}được khai báo trongtailwind.config.js. - Language: JavaScript only (Svelte 5, JSDoc qua
jsconfig.jsonvớicheckJs: true). - Math engines:
src/lib/geom-engine/(vec, triangle, circle, ticks, transforms),src/lib/numtheory-engine/(gcd, lcm, gcdSteps, sieve),src/lib/algebra-engine/(linear). Module thuần, không phụ thuộc DOM. Vitest unit tests đi kèm. - Math typography:
src/lib/components/tex.svelte— wrapper KaTeX duy nhất. SSR quarenderToString, không cần JS phía client để hiển thị. - Lessons: mỗi bài là một
+page.svelte; copy tiếng Việt colocate trongsrc/lib/lessons/<slug>/copy.vi.js. - Drag: Svelte action
use:draggable(src/lib/actions/draggable.svelte.js) — Pointer Events + bàn phím mũi tên cho a11y. - i18n: Hiện chỉ có tiếng Việt. Site chrome ở
src/lib/i18n/site.vi.js. English thêm sau bằng cách tạo*.en.jssong song.
License
Apache-2.0. Xem LICENSE.
Description
MathMax — Toán tương tác cho học sinh THCS Việt Nam (lớp 6-9). Static site.
Readme
Apache-2.0
719 KiB
Languages
Svelte
53.9%
JavaScript
45.5%
CSS
0.4%
HTML
0.2%