Gecko has a "core" editor
to edit HTML content, which is used in Thunderbird, SeaMonkey, Kompozer,
BlueGriffon etc. This editor can also be enabled
in Web pages via the contenteditable
attribute as in the
MDN Wiki or in the present page. Unfortunately, this editor is not aware
of MathML specificities. For example if you select a subexpression in the formulas below and delete them, you are likely to get "invalid-markup". If
you enter something like x+7
this is likely to be interpreted
as a single "x+7"
variable rather than
the sum of x and seven. The idea would hence be to
implement low-level editing features in the core C++ editor
(parsing small ascii math expressions typed by the user ;
checking tree integrity when deleting or inserting math nodes ; better
cursor navigation)
as it is
the case in Amaya.
Another aspect of the project is to develop a high-level XML+Javascript User Interface to insert mathematical constructions similar to what exists in e.g. FireMath. For example create a math panel with several buttons like . When you click on it, a new square root with empty placeholder will be created at the current insertion point. If the user has selected an expression, this will add a square root around that expression. Do that for all basic MathML constructions like etc The math panel could also have predefined constructions like