The main changes here are that the "select the text in" step was modified to select only the
first text node in the editor field, and to focus on it's parent instead of the entire editable div.
Some tests had to be modified to match the new behaviour, and another "real" bug was found in the table plugin.
* Remove all traces of mathjax from the atto equation editor - it is filter agnostic
* Add a M.core.event module for core events that can be published/subscribed to by plugins (loose coupling)
* Add a FILTER_CONTENT_UPDATED event so plugins can tell the filter system when nodes are added to the page
* Implement a listener for this event in the MathJax filter
* Fire this event from the equation editor and from the glossary filter
* Add a nolink tag to the mathjax filter, so equations will not be processed by the other filters
* Add a smarter throttle function to the equation editor preview updates (Y.throttle is dumb)
If MathJax is loaded by any means, the editor should use it instead of the filter. This prevents
slow ajax requests and gives much better rendering. MathJax could be loaded by the filter,
or it could just be done the old way by sticking the include in the page header.
This removes alot of complex, hard to test, hard to debug code from the editor so
we can focus on the things we want to spend time on. Rangy seems a good choice for
browser support, stability and features.
This equation editor relies on whatever the currently configured filter is to do the rendering.
If there is no filter that handles latex ($$ blah $$) - this plugin will not show up.
This will not work with the solutions on the forums of adding MathJax in the header of the page,
but it will work with a real mathjax filter written for Moodle (work in progress). It works with
the existing tex filter.