How khan/khan-exercises works
Khan Exercises is a browser-based framework that turns exercise HTML into interactive learning activities. The principal workflow is learner interaction with an exercise, followed by answer evaluation and feedback; the README documents the HTML-to-plugin model, while the supplied tree contains framework code but no exercise HTML. The runtime also provides graphing, interactive widgets, math and chemistry support. Edges reflect explicit loader statements, sampled imports, or README documentation; unsampled subsystems are represented cautiously, and the exercise-content source path is unavailable.
Main entry points: main.js Runtime Loader · graphie.js Graphing Engine · kpoint.js Point Geometry · kvector.js Vector Math
Components 18
Exercise Runtime
- Runtime Loader
main.js - Exercise Framework
khan-exercise.js - Answer Types
utils/answer-types.js
Interaction and Graphing
- Interactive Widgets
utils/interactive.js - Graphing Engine
utils/graphie.js - Wrapped Shapes
utils/wrapped-defaults.js
Math and Science
- Line Geometry
utils/kline.js - Point Geometry
utils/kpoint.js - Vector Math
utils/kvector.js - Number Math
utils/knumber.js - Math Utilities
utils/math.js - Expressions
utils/expressions.js - Chemistry Support
utils/chemistry.js
Rendering and Formatting
- Math Formatting
utils/math-format.js - TeX Rendering
utils/tex.js - Templates
utils/tmpl.js
Other components
- Learner
- Exercise HTML
Connections 26
- Learner → Exercise HTML: opens
- Exercise HTML → Exercise Framework: renders through
- Learner → Exercise Framework: uses exercise
- Runtime Loader → Exercise Framework: loads
main.js - Runtime Loader → Answer Types: loads
main.js - Runtime Loader → Graphing Engine: loads
main.js - Runtime Loader → Interactive Widgets: loads
main.js - Runtime Loader → Line Geometry: loads
main.js - Runtime Loader → Number Math: loads
main.js - Runtime Loader → Point Geometry: loads
main.js - Runtime Loader → Vector Math: loads
main.js - Runtime Loader → Math Utilities: loads
main.js - Graphing Engine → Point Geometry: uses
utils/graphie.js - Graphing Engine → Vector Math: uses
utils/graphie.js - Interactive Widgets → Graphing Engine: uses
utils/interactive.js - Interactive Widgets → Wrapped Shapes: uses
utils/interactive.js - Point Geometry → Vector Math: delegates to
utils/kpoint.js - Point Geometry → Number Math: compares with
utils/kpoint.js - Line Geometry → Point Geometry: uses
utils/kline.js - Line Geometry → Number Math: compares with
utils/kline.js - Vector Math → Number Math: uses
utils/kvector.js - Chemistry Support → Math Formatting: uses
utils/chemistry.js - Math Formatting → Math Utilities: uses
utils/math-format.js - Math Formatting → Expressions: uses
utils/math-format.js - Graphing Engine → TeX Rendering: uses
utils/graphie.js - Graphing Engine → Templates: uses
utils/graphie.js