feat: add JavaScript lesson section with starter lessons and sidebar section grouping headers #2

Closed
libretech wants to merge 1 commits from feat/impl-feature-20260328-133515-7069 into main
Owner

Summary

  • Add 3 new JavaScript lesson modules (9 lessons: variables, DOM manipulation, events)
  • Add sidebar section grouping headers (CSS, HTML, Tailwind, Markdown, JavaScript)
  • Add CodeMirror JavaScript language support
  • Add JavaScript code validation and preview rendering
  • Integrate into landing page, navigation, and sidebar

Files Changed (20)

New Files

  • lessons/50-js-variables.json — 3 lessons: Constants, Let Variables, Template Literals
  • lessons/51-js-dom.json — 3 lessons: Select an Element, Change Text, Change Style
  • lessons/52-js-events.json — 3 lessons: Click Handler, Toggle a Class, Simple Counter

Modified Files

  • schemas/code-crispies-module-schema.json — Added 'javascript' to mode enums
  • package.json / package-lock.json — Added @codemirror/lang-javascript dependency
  • src/config/sections.js — Added JavaScript section definition
  • src/config/lessons.js — Imported JS modules, added section grouping utilities
  • src/helpers/validator.js — Added JavaScript validation
  • src/helpers/renderer.js — Added section header rendering
  • src/impl/LessonEngine.js — Added JavaScript preview rendering
  • src/impl/CodeEditor.js — Added JavaScript language extension
  • src/app.js — Added JavaScript editor config, section content, navigation
  • src/index.html — Added JavaScript section card, nav links
  • src/main.css — Added section header and JavaScript theme styling

Generated by wave impl-feature pipeline.

## Summary - Add 3 new JavaScript lesson modules (9 lessons: variables, DOM manipulation, events) - Add sidebar section grouping headers (CSS, HTML, Tailwind, Markdown, JavaScript) - Add CodeMirror JavaScript language support - Add JavaScript code validation and preview rendering - Integrate into landing page, navigation, and sidebar ## Files Changed (20) ### New Files - `lessons/50-js-variables.json` — 3 lessons: Constants, Let Variables, Template Literals - `lessons/51-js-dom.json` — 3 lessons: Select an Element, Change Text, Change Style - `lessons/52-js-events.json` — 3 lessons: Click Handler, Toggle a Class, Simple Counter ### Modified Files - `schemas/code-crispies-module-schema.json` — Added 'javascript' to mode enums - `package.json` / `package-lock.json` — Added @codemirror/lang-javascript dependency - `src/config/sections.js` — Added JavaScript section definition - `src/config/lessons.js` — Imported JS modules, added section grouping utilities - `src/helpers/validator.js` — Added JavaScript validation - `src/helpers/renderer.js` — Added section header rendering - `src/impl/LessonEngine.js` — Added JavaScript preview rendering - `src/impl/CodeEditor.js` — Added JavaScript language extension - `src/app.js` — Added JavaScript editor config, section content, navigation - `src/index.html` — Added JavaScript section card, nav links - `src/main.css` — Added section header and JavaScript theme styling Generated by wave impl-feature pipeline.
libretech added 1 commit 2026-03-28 15:57:38 +01:00
Implementation following plan:
- S01: Update JSON schema to support 'javascript' mode
- S02: Install @codemirror/lang-javascript dependency
- S03: Define JavaScript section in sections.js
- S04: Create 3 JavaScript lesson JSON files (variables, DOM, events)
- S05: Add JavaScript validation support in validator.js
- S06: Add JavaScript preview rendering in LessonEngine.js
- S07: Add JavaScript CodeMirror mode and editor config
- S08: Register JavaScript modules in all language stores
- S09: Add JavaScript section to landing page, navigation, and app config
- S10: Add sidebar section grouping headers with category mapping
- S11: Update tests for JavaScript mode and section headers
libretech closed this pull request 2026-03-28 20:00:09 +01:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: public/code-crispies#2
No description provided.