MathDox formula editor
Demo
really short term todo list
- parsing: 1/2*3/4 (not as expected, but correct)
- parsing: 1/2-3/4 (incorrect)
- install formulaeditor separately on dam02
- check/update really short todo list
- displaying mathml presentation in the page
- xsl transformation using js or web service to product gap/... output
- look into integration with tinyMCE
short term todo list
- manual: document editor1.input_box/editor1.*
- manual: document classnames
- manual: create manual for users (preferably in the webpage, list of symbols, linear input, meaning of symbols)
- manual: create manual for authors (with palette.xml description, options)
- manual: create manual for programmers (describe keywords, and integral/sum)
- manual: first version in english, possibly i18n support
- manual: describe support we offer (what do people have to do before asking us)
- think about generic function application: (f+g)(x) (problem: (x+1)(x+2) )
- add default css option
- reorganize short term todo list
- add support for all mathml symbols, add support for generic mathml described constructs
- vertical align 1/2*3/2
- --x doesn't parse... should this be fixed ? a--2 does parse ? is this desired
- keywords slanted/italic
- check slanted/italic symbols are described
- list symbols available, add more symbols
- look into extending with symbols not yet in sprite fonts (how)
- formulate challenges
- continual error indication (something red)
- multiple objects in one formulaeditor using enter/newlines (as a list ?)
- use classnames for formulaeditor html elements: mathdoxeditor mathdoxtextarea mathdoxinput, ...
- extra symbols: arith1.root: baselining (nicer display)
- speed up: redrawing
- speed up: cursor movement/inserting/deleting
- key repetition (key stays pressed, count as multiple inputs?, does not seem to be a problem under windows)
- speed up: code cleanup : move method to cache symbols/drawImage to a function
- palette: make palette floating with css
- palette: toggle button
- palette: add documentation about the custom palette
- palette customization: depending on user ?
- palette customization: depending on page ?
- extending: preference classes
- extending: documentation
- keywords: further distinction between constants and applications (do not allow pi(a); maybe also disallow 1+sin;) support already present in keyword, not used to check for pi(a)
- implement growing/shrinking matrices, vectors, lists, .... Idea: usepalette for growing/shrinking, as well as shortcuts
mid term todo list
- calculator: make a calculator powered by the formula editor like WIMS has
- show formulaeditor contents when printing
- moving fe around (hans has an url ?)
- option: placing the formulaeditor to the left
- use variable size brackets for abs and list
- getOpenMath/getMathML button
- list of all supported symbols
- slanted letters for variables
- fix vertical navigation with 1/2 inside a matrix
- palette: parse symbols from xml
- some symbols in blue: keywords/parentheses
- reload button
- add != (neq) symbol
- idea: backspace inside a fraction or a sqrt: quick delete
- adding units (like keywords):harder because of prefixes and m/s (which is one symbol)
- selection
- tooltips
- partial copy/paste
items done
- added options: size (and scaling with ctrl +/-), palette.xml origin (must be on the same site as the javascript)
- added sum, product, integral
- silent multiplication 3x becomes 3*x
- automatically require all automatically generate files
- create about popup with version
- created first version of the conversion page: openmath.html
- added support for generic cd.name (from and to openmath)
- added more space around cdot, -, + (no longer needed to make them larger)
- added symbols support for \ and _
- fixed palette on IE (race condition, which should only occur very rarely now, instead of everything palette.xml could be retrieved from cache)
- fixed a bug with navigating out of a vector with the cursor
- going left from a matrix: seems to work now
- OM parser: xml comment
support
(all are ignored) - added working integer1.factorial
- custom palette: how to enter blanks : editor1.palette_whitespace
- custom palette:parsing (infix) OMS symbols inside a paletterow: solved with support for keyword types: constant, function, infix
- custom palette: changed margin back to 10.0
- custom palette: now loading from org/mathdox/formulaeditor/palette.xml file (openmath input)
- custom palette: solved blocksymbol different sizes problem: implemented context dependent presentation
- custom palette: describing entries by openmath
- scalability: did enough of cmsy10 and < > pi
- palette: make showing palette optional
- now loading only a small number of files
- automatic versioning from build.xml
- no longer slow with multiple fields, see wortel: books/differentieren/exams/nl/exam1.xml
- fix race condition in main.js (only start loading after main.js)
- document.body.attachEvent race condition fixed (now setting a timeout if document.body does not exist yet)
- ORBEON field update only on blur
- sensible margin for palette/input canvas on mathdoxplayer
- allow toggling palette on/of from mathdoxplayer
- toggling palette on/off (per textarea)
- MS IE: fixed problem with ORBEON forms updating
- sqrt(x,2) when added from palette: problem with filling blue field, problem with clicking with sqrt(x,2)
- extra symbols: list1.list (using curly brackets)
- extra symbols: arith1.root: clicking and the right cursor position
- extra symbols: arith1.root: number above root
- extra symbols: arith1.root: sqrt special case
- extra symbols: arith1.root: convert to semantics
- extra symbols: arith1.root: convert to openmath
- add root(a,b) for bVa) NOTE: not root(a,b) but rt(a,b)
- relations work again (was missing $require in FormulaEditor.js)
- MS Internet Explorer support (first step)
- fixed problems with inserting the wrong item from the palette (this was caused by problems with a PArray inside another PArray and ``reuse'' of colInfo and rowInfo
- fixed problems with redrawing brackets (at least 3 heigh, custom length)
- create a more suitable test website with todo list
- palette: display vectors and matrices with (small) blocks
- scalability
- vector positioning like matrix
- F5 do not reload with error
- fix a index bug with inserting 2 symbols in an emptyrow (done)
- check which other symbols to add(done)
- palette: add symbols from mathadore : 2x2 matrix, 2x3 matrix 2 vector, 3 vector, sin(.) (done
- ignore spaces (done)
- growing brackets (done)
- palette: add palette to page (done)
- palette: add some basic symbols to palette (done)
- reload with F5 (done)
- More space around multiplication-cdot, '-' (done)
- palette: add symbol on 'current' position (done)
To see an OpenMath representation of the first formula above click here. This demonstrates that a semantic tree of the formula is stored, and not just a presentation tree. To see a MathML representation of the first formula above semantics rule. semantics index. semantics value. semantics value[0]. openmath. is row. is matrix. children. children length. child is row. child is matrix. example matrix. example matrix.