@teachinglab/omd 0.5.8 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +190 -77
- package/README.old.md +138 -0
- package/npm-docs/DOCUMENTATION_SUMMARY.md +19 -19
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,9 +1,101 @@
|
|
|
1
|
-
# OMD (
|
|
1
|
+
# OMD (On-screen Math Display)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> A JavaScript library for creating interactive mathematical interfaces in web applications
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@teachinglab/omd)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
OMD is a comprehensive JavaScript library for building rich, interactive mathematical experiences in the browser. From simple equation displays to complex step-by-step solution systems with full visual feedback and user interaction.
|
|
4
9
|
|
|
5
10
|

|
|
6
11
|
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
### Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install @teachinglab/omd
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Basic Usage
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
import { omdDisplay } from '@teachinglab/omd';
|
|
24
|
+
|
|
25
|
+
// Create a math display
|
|
26
|
+
const container = document.getElementById('math-container');
|
|
27
|
+
const display = new omdDisplay(container);
|
|
28
|
+
|
|
29
|
+
// Render an equation
|
|
30
|
+
display.render('2x + 3 = 11');
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Documentation
|
|
34
|
+
|
|
35
|
+
### Getting Started
|
|
36
|
+
- **[Installation & Setup](./guides/getting-started.md)** - Get up and running with OMD
|
|
37
|
+
- **[Quick Examples](./guides/quick-examples.md)** - Common use cases and code snippets
|
|
38
|
+
- **[Factory Functions](./guides/factory-functions.md)** - Creating objects from JSON (AI-friendly)
|
|
39
|
+
|
|
40
|
+
### Core Concepts
|
|
41
|
+
|
|
42
|
+
#### 1. Global Context & Configuration
|
|
43
|
+
Learn about the foundational systems that power OMD:
|
|
44
|
+
|
|
45
|
+
- **[Configuration Manager](./api/omdConfigManager.md)** - Library-wide settings and theming
|
|
46
|
+
- **[Configuration Options](./api/configuration-options.md)** - Complete list of available settings
|
|
47
|
+
- **[Display System](./api/omdDisplay.md)** - Main rendering engine
|
|
48
|
+
- **[Canvas System](./api/omdCanvas.md)** - Multi-expression layout manager
|
|
49
|
+
- **[Event Manager](./api/eventManager.md)** - Event handling and coordination
|
|
50
|
+
- **[Helpers & Utilities](./api/omdHelpers.md)** - Utility functions for common tasks
|
|
51
|
+
|
|
52
|
+
#### 2. Visualizations
|
|
53
|
+
Interactive visual components for teaching and learning:
|
|
54
|
+
|
|
55
|
+
##### Number & Ratio Visualizations
|
|
56
|
+
- **[Number Line](./guides/visualizations.md#number-line)** - `omdNumberLine` - Interactive number lines with dots and labels
|
|
57
|
+
- **[Number Tiles](./guides/visualizations.md#number-tiles)** - `omdNumberTile` - Visual counting tiles with dots
|
|
58
|
+
- **[Tape Diagrams](./guides/visualizations.md#tape-diagrams)** - `omdTapeDiagram` - Part-whole relationship diagrams
|
|
59
|
+
- **[Ratio Charts](./guides/visualizations.md#ratio-charts)** - `omdRatioChart` - Pie and bar chart ratio visualizations
|
|
60
|
+
- **[Balance Hanger](./guides/visualizations.md#balance-hanger)** - `omdBalanceHanger` - Balance scale visualizations
|
|
61
|
+
|
|
62
|
+
##### Graphing & Geometry
|
|
63
|
+
- **[Coordinate Plane](./guides/visualizations.md#coordinate-plane)** - `omdCoordinatePlane` - 2D graphing with functions and shapes
|
|
64
|
+
- **[Shapes](./guides/visualizations.md#shapes)** - `omdShapes` - Geometric shapes (circles, rectangles, polygons, triangles)
|
|
65
|
+
- **[Spinner](./guides/visualizations.md#spinner)** - `omdSpinner` - Interactive circular spinners
|
|
66
|
+
|
|
67
|
+
##### Data Display
|
|
68
|
+
- **[Tables](./guides/visualizations.md#tables)** - `omdTable` - Data tables with customizable styling
|
|
69
|
+
- **[Function Graphs](./guides/visualizations.md#function-graphs)** - Plotting mathematical functions
|
|
70
|
+
|
|
71
|
+
#### 3. Equations & Expressions
|
|
72
|
+
The heart of mathematical notation and manipulation:
|
|
73
|
+
|
|
74
|
+
##### Core Expression Components
|
|
75
|
+
- **[Expression Nodes](./api/expression-nodes.md)** - Understanding the node tree structure and omdEquationNode class
|
|
76
|
+
- **[omdEquationNode](./api/omdEquationNode.md)** - Complete equations with manipulation methods (e.g., `2x + 3 = 11`)
|
|
77
|
+
- **[omdExpression](./guides/equations.md#expressions)** - Mathematical expressions (e.g., `3x² + 5`)
|
|
78
|
+
- **[omdTerm](./guides/equations.md#terms)** - Individual terms (e.g., `3x²`)
|
|
79
|
+
- **[omdNumber](./guides/equations.md#numbers)** - Numeric constants
|
|
80
|
+
- **[omdVariable](./guides/equations.md#variables)** - Variables (e.g., `x`, `y`)
|
|
81
|
+
- **[omdOperator](./guides/equations.md#operators)** - Mathematical operators (+, -, ×, ÷)
|
|
82
|
+
|
|
83
|
+
##### Advanced Expression Types
|
|
84
|
+
- **[omdPowerExpression](./guides/equations.md#power-expressions)** - Exponentiation (e.g., `(x+1)²`)
|
|
85
|
+
- **[omdRationalExpression](./guides/equations.md#rational-expressions)** - Fractions (e.g., `(x+1)/(x-1)`)
|
|
86
|
+
- **[omdFunction](./guides/equations.md#functions)** - Mathematical functions (e.g., `f(x) = 2x + 1`)
|
|
87
|
+
- **[omdTileEquation](./guides/equations.md#tile-equations)** - Visual tile-based equations
|
|
88
|
+
|
|
89
|
+
##### Step-by-Step Solutions
|
|
90
|
+
- **[Equation Stack](./api/omdEquationStack.md)** - Sequenced solution steps
|
|
91
|
+
- **[Step Visualizer](./api/omdStepVisualizer.md)** - Interactive step visualization
|
|
92
|
+
- **[Simplification Engine](./api/omdSimplification.md)** - Rule-based expression simplification
|
|
93
|
+
- **[Simplification Rules](./api/simplificationRules.md)** - Available transformation rules
|
|
94
|
+
|
|
95
|
+
### Complete API Reference
|
|
96
|
+
- **[Full API Documentation](./api/api-reference.md)** - Complete reference for all components
|
|
97
|
+
- **[JSON Schemas](./json-schemas.md)** - Detailed JSON structure for all components
|
|
98
|
+
|
|
7
99
|
## Features
|
|
8
100
|
|
|
9
101
|
### **Interactive Math Rendering**
|
|
@@ -26,38 +118,82 @@ OMD is a JavaScript library for creating interactive mathematical interfaces in
|
|
|
26
118
|
- Progressive step revelation
|
|
27
119
|
- Visual operation feedback and highlighting
|
|
28
120
|
|
|
29
|
-
##
|
|
121
|
+
## Guides
|
|
30
122
|
|
|
31
|
-
###
|
|
32
|
-
|
|
33
|
-
|
|
123
|
+
### By Use Case
|
|
124
|
+
- **[Creating Equations](./guides/equations.md)** - Work with equations and expressions
|
|
125
|
+
- **[Visualizations Guide](./guides/visualizations.md)** - All visualization components
|
|
126
|
+
- **[Step-by-Step Solutions](./guides/step-by-step.md)** - Building interactive solutions
|
|
127
|
+
- **[Interactive Features](./guides/interactive-features.md)** - Drag & drop, toolbars, and more
|
|
128
|
+
|
|
129
|
+
### Advanced Topics
|
|
130
|
+
- **[Expression Tree Structure](./guides/expression-tree.md)** - Understanding the AST
|
|
131
|
+
- **[Custom Simplification Rules](./guides/custom-rules.md)** - Extending the simplification engine
|
|
132
|
+
- **[Theming & Styling](./guides/theming.md)** - Customizing appearance
|
|
133
|
+
- **[Performance Optimization](./guides/performance.md)** - Best practices for large applications
|
|
134
|
+
|
|
135
|
+
## Architecture
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
OMD Library Structure
|
|
139
|
+
├── Core Systems
|
|
140
|
+
│ ├── Configuration Manager (Global settings)
|
|
141
|
+
│ ├── Display System (Rendering engine)
|
|
142
|
+
│ └── Event Manager (Coordination)
|
|
143
|
+
│
|
|
144
|
+
├── Visualizations
|
|
145
|
+
│ ├── Number Visualizations (Number line, tiles, tape diagrams)
|
|
146
|
+
│ ├── Graphing (Coordinate plane, functions)
|
|
147
|
+
│ └── Data Display (Tables, charts)
|
|
148
|
+
│
|
|
149
|
+
└── Equations & Expressions
|
|
150
|
+
├── Node System (Expression tree)
|
|
151
|
+
├── Equation Components (Equations, terms, operators)
|
|
152
|
+
├── Advanced Expressions (Powers, rationals, functions)
|
|
153
|
+
└── Step-by-Step System (Simplification, visualization)
|
|
34
154
|
```
|
|
35
155
|
|
|
36
|
-
##
|
|
156
|
+
## Examples
|
|
157
|
+
|
|
158
|
+
### Creating Objects from JSON (Factory Method)
|
|
159
|
+
|
|
37
160
|
```javascript
|
|
38
|
-
import {
|
|
161
|
+
import { createFromJSON } from '@teachinglab/omd';
|
|
162
|
+
|
|
163
|
+
// AI-generated or dynamic JSON data
|
|
164
|
+
const jsonData = {
|
|
165
|
+
omdType: 'numberLine',
|
|
166
|
+
min: 0,
|
|
167
|
+
max: 10,
|
|
168
|
+
dotValues: [2, 5, 8]
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
// Create the object - no switch statement needed!
|
|
172
|
+
const numberLine = createFromJSON(jsonData);
|
|
173
|
+
```
|
|
39
174
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
175
|
+
### Basic Equation
|
|
176
|
+
```javascript
|
|
177
|
+
import { omdDisplay, omdEquationNode } from '@teachinglab/omd';
|
|
43
178
|
|
|
44
|
-
|
|
45
|
-
|
|
179
|
+
const display = new omdDisplay(document.getElementById('container'));
|
|
180
|
+
const equation = omdEquationNode.fromString('2x + 3 = 11');
|
|
181
|
+
display.render(equation);
|
|
46
182
|
```
|
|
47
183
|
|
|
48
|
-
### Step-by-Step
|
|
184
|
+
### Step-by-Step Solution
|
|
49
185
|
```javascript
|
|
50
|
-
import { omdEquationStack
|
|
186
|
+
import { omdEquationStack } from '@teachinglab/omd';
|
|
51
187
|
|
|
52
|
-
// Create solution steps
|
|
53
188
|
const steps = [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
189
|
+
'2x + 3 = 11',
|
|
190
|
+
'2x = 8',
|
|
191
|
+
'x = 4'
|
|
57
192
|
];
|
|
58
193
|
|
|
59
|
-
|
|
60
|
-
|
|
194
|
+
const stack = new omdEquationStack(steps.map(s =>
|
|
195
|
+
omdEquationNode.fromString(s)
|
|
196
|
+
), {
|
|
61
197
|
toolbar: true,
|
|
62
198
|
stepVisualizer: true
|
|
63
199
|
});
|
|
@@ -65,74 +201,51 @@ const stack = new omdEquationStack(steps, {
|
|
|
65
201
|
display.render(stack);
|
|
66
202
|
```
|
|
67
203
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### **Nodes** - Building Blocks
|
|
71
|
-
Every mathematical element is a node in an expression tree:
|
|
72
|
-
- `omdEquationNode` - Complete equations (e.g., `2x + 3 = 11`)
|
|
73
|
-
- `omdConstantNode` - Numbers (e.g., `5`, `3.14`)
|
|
74
|
-
- `omdVariableNode` - Variables (e.g., `x`, `y`)
|
|
75
|
-
- `omdBinaryExpressionNode` - Operations (e.g., `+`, `-`, `*`, `/`)
|
|
76
|
-
|
|
77
|
-
### **Sequences** - Solution Steps
|
|
78
|
-
Group related equations for step-by-step solving:
|
|
204
|
+
### Coordinate Plane with Function
|
|
79
205
|
```javascript
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
206
|
+
import { omdCoordinatePlane } from '@teachinglab/omd';
|
|
207
|
+
|
|
208
|
+
const plane = new omdCoordinatePlane();
|
|
209
|
+
plane.loadFromJSON({
|
|
210
|
+
xMin: -10, xMax: 10,
|
|
211
|
+
yMin: -10, yMax: 10,
|
|
212
|
+
graphEquations: [
|
|
213
|
+
{ equation: 'y = x^2 - 4', color: '#e11d48', strokeWidth: 2 }
|
|
214
|
+
]
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
display.render(plane);
|
|
83
218
|
```
|
|
84
219
|
|
|
85
|
-
###
|
|
86
|
-
Handles layout, centering, and visualization:
|
|
220
|
+
### Number Line Visualization
|
|
87
221
|
```javascript
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
222
|
+
import { omdNumberLine } from '@teachinglab/omd';
|
|
223
|
+
|
|
224
|
+
const numberLine = new omdNumberLine();
|
|
225
|
+
numberLine.loadFromJSON({
|
|
226
|
+
min: 0,
|
|
227
|
+
max: 10,
|
|
228
|
+
dotValues: [2, 5, 8],
|
|
229
|
+
label: 'Number Line Example'
|
|
91
230
|
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Interactive Examples
|
|
95
|
-
|
|
96
|
-
Explore OMD's capabilities with our comprehensive examples:
|
|
97
|
-
|
|
98
|
-
| Category | Example | Description |
|
|
99
|
-
|----------|---------|-------------|
|
|
100
|
-
| **Getting Started** | [Minimal](examples/minimal.html) | Basic equation rendering |
|
|
101
|
-
| | [Simple Usage](examples/simple-usage.html) | Interactive features |
|
|
102
|
-
| **Advanced** | [Expression Playground](examples/expression-playground.html) | Full manipulation interface |
|
|
103
|
-
| | [Drag & Drop](examples/drag-and-drop-playground.html) | Intuitive interaction |
|
|
104
|
-
| **Educational** | [Worked Solutions](examples/worked-solution.html) | Step-by-step solving |
|
|
105
|
-
| | [Kids Interactive](examples/kids-interactive.html) | Child-friendly interface |
|
|
106
|
-
| **Components** | [Equation Stack](examples/equation-stack-test.html) | Stacked equations |
|
|
107
|
-
| | [Canvas Demo](examples/canvas-multiple-nodes.html) | Multi-expression layouts |
|
|
108
231
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
## Documentation
|
|
232
|
+
display.render(numberLine);
|
|
233
|
+
```
|
|
112
234
|
|
|
113
|
-
|
|
114
|
-
|----------|-------------|
|
|
115
|
-
| **[API Reference](docs/api-reference.md)** | Complete component documentation |
|
|
116
|
-
| **[User Guide](docs/user-guide.md)** | Getting started and tutorials |
|
|
235
|
+
## Dependencies
|
|
117
236
|
|
|
237
|
+
- **JSVG** (`@teachinglab/jsvg`) - High-performance SVG rendering
|
|
238
|
+
- **math.js** - Mathematical expression parsing
|
|
239
|
+
- **Modern Browser** - ES6 modules, SVG support required
|
|
118
240
|
|
|
119
|
-
##
|
|
241
|
+
## License
|
|
120
242
|
|
|
121
|
-
|
|
122
|
-
OMD Library Structure
|
|
123
|
-
├── Display Layer (omdDisplay)
|
|
124
|
-
├── Node System (Expression tree components)
|
|
125
|
-
├── UI Components (Toolbar, Step visualizer)
|
|
126
|
-
├── Core Systems (Simplification, Layout)
|
|
127
|
-
└── Utilities (Configuration, Helpers)
|
|
128
|
-
```
|
|
243
|
+
MIT License - see [LICENSE](../LICENSE) for details
|
|
129
244
|
|
|
130
|
-
##
|
|
245
|
+
## Contributing
|
|
131
246
|
|
|
132
|
-
|
|
133
|
-
- **math.js** - Mathematical expression parsing
|
|
134
|
-
- **Modern Browser** - ES6 modules, SVG support
|
|
247
|
+
We welcome contributions! See our [contributing guidelines](../CONTRIBUTING.md) for more information.
|
|
135
248
|
|
|
136
249
|
---
|
|
137
250
|
|
|
138
|
-
**Ready to get started?** Check out
|
|
251
|
+
**Ready to get started?** Check out the [Getting Started Guide](./guides/getting-started.md) or explore the [JSON Schemas](./json-schemas.md) for detailed component configurations.
|
package/README.old.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# OMD (Open Math Display)
|
|
2
|
+
|
|
3
|
+
OMD is a JavaScript library for creating interactive mathematical interfaces in web applications. Build everything from simple equation displays to complex step-by-step solution systems with rich visual feedback and user interaction.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
### **Interactive Math Rendering**
|
|
10
|
+
- High-quality SVG-based mathematical notation
|
|
11
|
+
- Real-time expression manipulation and visualization
|
|
12
|
+
- Automatic layout and alignment for complex equations
|
|
13
|
+
|
|
14
|
+
### **Step-by-Step Solutions**
|
|
15
|
+
- Visual step tracking with detailed explanations
|
|
16
|
+
- Simplification engine with rule-based transformations
|
|
17
|
+
- Provenance tracking for highlighting related elements
|
|
18
|
+
|
|
19
|
+
### **Rich UI Components**
|
|
20
|
+
- Built-in toolbar for common mathematical operations
|
|
21
|
+
- Drag & drop interface for intuitive manipulation
|
|
22
|
+
- Customizable canvas for multi-expression layouts
|
|
23
|
+
|
|
24
|
+
### **Educational Features**
|
|
25
|
+
- Interactive learning experiences
|
|
26
|
+
- Progressive step revelation
|
|
27
|
+
- Visual operation feedback and highlighting
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
### npm
|
|
32
|
+
```bash
|
|
33
|
+
npm install @teachinglab/omd
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Basic Usage
|
|
37
|
+
```javascript
|
|
38
|
+
import { omdDisplay } from '@teachinglab/omd';
|
|
39
|
+
|
|
40
|
+
// Create a math display
|
|
41
|
+
const container = document.getElementById('math-container');
|
|
42
|
+
const display = new omdDisplay(container);
|
|
43
|
+
|
|
44
|
+
// Render an equation
|
|
45
|
+
display.render('2x + 3 = 11');
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Step-by-Step Solutions
|
|
49
|
+
```javascript
|
|
50
|
+
import { omdEquationStack, omdEquationNode } from '@teachinglab/omd';
|
|
51
|
+
|
|
52
|
+
// Create solution steps
|
|
53
|
+
const steps = [
|
|
54
|
+
omdEquationNode.fromString('2x + 3 = 11'),
|
|
55
|
+
omdEquationNode.fromString('2x = 8'),
|
|
56
|
+
omdEquationNode.fromString('x = 4')
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
// Create interactive equation stack
|
|
60
|
+
const stack = new omdEquationStack(steps, {
|
|
61
|
+
toolbar: true,
|
|
62
|
+
stepVisualizer: true
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
display.render(stack);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Core Concepts
|
|
69
|
+
|
|
70
|
+
### **Nodes** - Building Blocks
|
|
71
|
+
Every mathematical element is a node in an expression tree:
|
|
72
|
+
- `omdEquationNode` - Complete equations (e.g., `2x + 3 = 11`)
|
|
73
|
+
- `omdConstantNode` - Numbers (e.g., `5`, `3.14`)
|
|
74
|
+
- `omdVariableNode` - Variables (e.g., `x`, `y`)
|
|
75
|
+
- `omdBinaryExpressionNode` - Operations (e.g., `+`, `-`, `*`, `/`)
|
|
76
|
+
|
|
77
|
+
### **Sequences** - Solution Steps
|
|
78
|
+
Group related equations for step-by-step solving:
|
|
79
|
+
```javascript
|
|
80
|
+
const sequence = new omdEquationSequenceNode([
|
|
81
|
+
equation1, equation2, equation3
|
|
82
|
+
]);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### **Display** - Rendering Engine
|
|
86
|
+
Handles layout, centering, and visualization:
|
|
87
|
+
```javascript
|
|
88
|
+
const display = new omdDisplay(container, {
|
|
89
|
+
fontSize: 36,
|
|
90
|
+
centerContent: true
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Interactive Examples
|
|
95
|
+
|
|
96
|
+
Explore OMD's capabilities with our comprehensive examples:
|
|
97
|
+
|
|
98
|
+
| Category | Example | Description |
|
|
99
|
+
|----------|---------|-------------|
|
|
100
|
+
| **Getting Started** | [Minimal](examples/minimal.html) | Basic equation rendering |
|
|
101
|
+
| | [Simple Usage](examples/simple-usage.html) | Interactive features |
|
|
102
|
+
| **Advanced** | [Expression Playground](examples/expression-playground.html) | Full manipulation interface |
|
|
103
|
+
| | [Drag & Drop](examples/drag-and-drop-playground.html) | Intuitive interaction |
|
|
104
|
+
| **Educational** | [Worked Solutions](examples/worked-solution.html) | Step-by-step solving |
|
|
105
|
+
| | [Kids Interactive](examples/kids-interactive.html) | Child-friendly interface |
|
|
106
|
+
| **Components** | [Equation Stack](examples/equation-stack-test.html) | Stacked equations |
|
|
107
|
+
| | [Canvas Demo](examples/canvas-multiple-nodes.html) | Multi-expression layouts |
|
|
108
|
+
|
|
109
|
+
**[Browse All Examples](examples/index.html)**
|
|
110
|
+
|
|
111
|
+
## Documentation
|
|
112
|
+
|
|
113
|
+
| Resource | Description |
|
|
114
|
+
|----------|-------------|
|
|
115
|
+
| **[API Reference](docs/api-reference.md)** | Complete component documentation |
|
|
116
|
+
| **[User Guide](docs/user-guide.md)** | Getting started and tutorials |
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
## Architecture
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
OMD Library Structure
|
|
123
|
+
├── Display Layer (omdDisplay)
|
|
124
|
+
├── Node System (Expression tree components)
|
|
125
|
+
├── UI Components (Toolbar, Step visualizer)
|
|
126
|
+
├── Core Systems (Simplification, Layout)
|
|
127
|
+
└── Utilities (Configuration, Helpers)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Dependencies
|
|
131
|
+
|
|
132
|
+
- **JSVG** - High-performance SVG rendering
|
|
133
|
+
- **math.js** - Mathematical expression parsing
|
|
134
|
+
- **Modern Browser** - ES6 modules, SVG support
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
**Ready to get started?** Check out our [examples](examples/index.html) or dive into the [documentation](docs/api-reference.md)!
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This document provides an overview of the organized NPM documentation structure for the OMD library.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Folder Structure
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
npm-docs/
|
|
@@ -18,7 +18,7 @@ npm-docs/
|
|
|
18
18
|
└── [individual component docs] # Copied from docs/api/
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Documentation Organization
|
|
22
22
|
|
|
23
23
|
The documentation follows the requested presentation order:
|
|
24
24
|
|
|
@@ -62,7 +62,7 @@ The documentation follows the requested presentation order:
|
|
|
62
62
|
- Step Visualizer
|
|
63
63
|
- Simplification Engine
|
|
64
64
|
|
|
65
|
-
##
|
|
65
|
+
## Quick Navigation
|
|
66
66
|
|
|
67
67
|
### For New Users
|
|
68
68
|
1. **Start Here**: `README.md`
|
|
@@ -75,7 +75,7 @@ The documentation follows the requested presentation order:
|
|
|
75
75
|
3. **Equations**: `guides/equations.md`
|
|
76
76
|
4. **API Details**: `api/api-reference.md`
|
|
77
77
|
|
|
78
|
-
##
|
|
78
|
+
## Key Files
|
|
79
79
|
|
|
80
80
|
### README.md
|
|
81
81
|
- **Purpose**: Main entry point for NPM documentation
|
|
@@ -138,7 +138,7 @@ The documentation follows the requested presentation order:
|
|
|
138
138
|
- Advanced features
|
|
139
139
|
- Complete working HTML example
|
|
140
140
|
|
|
141
|
-
##
|
|
141
|
+
## Verification Checklist
|
|
142
142
|
|
|
143
143
|
- [x] Main README.md created with proper organization
|
|
144
144
|
- [x] json-schemas.md corrected and verified
|
|
@@ -149,7 +149,7 @@ The documentation follows the requested presentation order:
|
|
|
149
149
|
- [x] API documentation copied to npm-docs/api
|
|
150
150
|
- [x] Documentation follows requested order: Global Context → Visualizations → Equations
|
|
151
151
|
|
|
152
|
-
##
|
|
152
|
+
## Next Steps (Before Publishing)
|
|
153
153
|
|
|
154
154
|
1. **Review the documentation**:
|
|
155
155
|
- Check `npm-docs/README.md` for accuracy
|
|
@@ -181,7 +181,7 @@ The documentation follows the requested presentation order:
|
|
|
181
181
|
npm publish
|
|
182
182
|
```
|
|
183
183
|
|
|
184
|
-
##
|
|
184
|
+
## Documentation Standards Used
|
|
185
185
|
|
|
186
186
|
- **Markdown formatting**: Proper headings, code blocks, tables
|
|
187
187
|
- **Code examples**: Syntax-highlighted JavaScript
|
|
@@ -193,28 +193,28 @@ The documentation follows the requested presentation order:
|
|
|
193
193
|
- **Navigation aids**: Table of contents, cross-references
|
|
194
194
|
- **Accessibility**: Clear descriptions, organized content
|
|
195
195
|
|
|
196
|
-
##
|
|
196
|
+
## Internal Link Structure
|
|
197
197
|
|
|
198
198
|
All documentation files are cross-linked:
|
|
199
199
|
- README.md → All guides and API docs
|
|
200
200
|
- Each guide → Related guides and API reference
|
|
201
201
|
- json-schemas.md → API reference and guides
|
|
202
202
|
|
|
203
|
-
##
|
|
203
|
+
## Coverage
|
|
204
204
|
|
|
205
205
|
The documentation covers:
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
206
|
+
- All visualization components
|
|
207
|
+
- All equation components
|
|
208
|
+
- Configuration system
|
|
209
|
+
- Step-by-step solution system
|
|
210
|
+
- JSON schemas for all components
|
|
211
|
+
- Installation and setup
|
|
212
|
+
- Integration guides (React, Vite, Webpack)
|
|
213
|
+
- Best practices
|
|
214
|
+
- Troubleshooting
|
|
215
215
|
|
|
216
216
|
---
|
|
217
217
|
|
|
218
|
-
**Documentation Status**:
|
|
218
|
+
**Documentation Status**: Complete and ready for review
|
|
219
219
|
|
|
220
220
|
**Do NOT publish to NPM until reviewed and approved!**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teachinglab/omd",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "omd",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"src/",
|
|
15
15
|
"omd/",
|
|
16
16
|
"docs/",
|
|
17
|
-
"npm-docs/",
|
|
18
17
|
"canvas/",
|
|
19
|
-
"jsvg/"
|
|
18
|
+
"jsvg/" ,
|
|
19
|
+
"npm-docs/"
|
|
20
20
|
],
|
|
21
21
|
"keywords": [
|
|
22
22
|
"math",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@teachinglab/jsvg": "^0.1.1",
|
|
34
|
-
"@teachinglab/omd": "^0.5.4",
|
|
35
34
|
"mathjs": "^14.5.2"
|
|
36
35
|
},
|
|
37
36
|
"scripts": {
|
|
@@ -54,3 +53,4 @@
|
|
|
54
53
|
"vite": "^5.4.0"
|
|
55
54
|
}
|
|
56
55
|
}
|
|
56
|
+
|