You are here: Home » Math Editor » Connexions MathML Editor (in Beta)
 

Connexions MathML Editor (in Beta)

Try it out!

(works in Firefox, Safari, and Chrome)

Features

It is a WYSIWYG Math Editor that can be used in any webpage that displays a text box. The editor offers:

  • A way to create math equations on the web
  • Editing Content MathML or Content with Presentation MathML
  • Keyboard navigation
  • Mouse navigation and selection
  • OS Cut/Paste between other instances of the editor or other programs
  • Written in Javascript and XSLT

Documentation

  1. The Basics
  2. Intermediate Examples
  3. Manual

Source

The source code can be checked out using SVN from https://software.cnx.rice.edu/svn/rhaptos/packages/Products.MathEditor/Products/trunk/MathEditor/.

Derived Projects

Upcoming/TODO

  • Integrate with Google Wave as a Widget to offer editable math inside documents
  • Support several text parsing/serializing formats using Sentido's formula editor.
  • Support Internet Explorer, Safari, and Chrome using jsMath for rendering.

Technical Details

  1. The editor works in Mozilla's Firefox web browser because Firefox is able to render MathML natively and allows inserting HTML elements into the presentation math.
  2. The editor manipulates custom MathNode objects and converts to/from Content MathML nodes.
  3. There are templates for each Content MathML operation (http://www.w3.org/TR/MathML2/chapter4.html).
  4. Each template contains mmled:block's that are insertion points for more data.
  5. Then, the Content MathML runs through an XSLT (modified from http://www.w3.org/Math/XSL) to create Presentation MathML with input boxes for the mmled:block's.
  6. Navigation is accomplished by moving an (almost) invisible input box which represents the cursor.
  7. Since access to the clipboard is restricted in Firefox, the editor "notices" Cut/Paste operations by changes to content in the input cursor.
  8. When an input box loses focus, the Content MathML is updated, and re-rendered.

Contact

Created by Philip Schatz under NSF Partnerships for Innovation : Award 0538934