Skip to content

Mathjax backlog

Peter Krautzberger edited this page Jun 2, 2014 · 31 revisions

We collect potential features. Note: This is not a discussion area but a presentation area for review.

  • Speed Improvements
    • multi-pass rendering
      • enable a first, faster but less precise pass, followed by a second, precise pass.
      • develop “simple” HTML-output (faster but potentially lower quality)
        • integrate jqmath as output option
    • Improve loading behavior
      • improve loading techniques and behavior (review current state of art)
        • investigate webservice for building combined configurations
      • create lazy loading extension (prefetch MathJax components after typesetting is complete)
      • leverage latest browser technologies (IE9+)
    • Create lazy typesetting extension (typeset the viewport)
    • Leverage local storage technologies to reduce need for re-rendering content.
    • Leverage server-side preprocessing (TeX to MathML, MathML to SVG, image previews etc)
    • collaborate with browser developers to improve MathJax speed
  • Completing MathML 3 support
    • implement elementary math elements (mlongdiv, mstack etc)
    • implement missing mtable attributes (e.g., rowspan, colspan)
    • implement right-to-left support
    • improve ContentMathML support
    • improve annotation-xml support
      • provide options to use specific annotations as preview (image, TeX etc)
    • implement in-table alignments
    • HTML5 foreign content
      • tolerate HTML in mtext, switch to HTML parser
  • Accessibility
    • Improve UI (MathJax Menu) accessibility
    • finalize discovery-mode of the UI
    • Investigate ShadowDOM potential for accessibility
    • speech-text extension.
      • collaborating with other open source solutions from Benetech or Google ChromeVox
    • embedding alternative source formats of math (TeX, MathML, OpenMath, computer algebra notation)
    • Add APIs for accessibility tools (AT) to interact with MathJax rendering as if it was native MathML. This includes
      • handing MathML over to AT
      • enable user navigation
      • enable synchronized highlighting
      • embed speech-text generation from AT
      • interact with accessibility preferences coming from AT
      • compatibility with user style sheets
  • Server side MathJax
    • enable MathJax outside the DOM (e.g. nodejs, rhino)
    • enable server-side pre-processing
    • server side testing
    • production environment testing
  • UI improvements
    • copy&paste (share mechanisms, microdata, rdf, shadow dom, web components)
    • discoverability of math on the page
    • menu extensions
    • search menu (enabling math search engines such as symbolab, wolfram alpha, Springer LaTeX search etc)
  • Font improvements
    • allow font mixing (different math fonts, supplementing character coverage, generic font support in HTML output)
    • Support for ubiquitous commercial fonts (local installation only)
      • Lucida Sans, Apple symbol fonts, Arial unicode
    • crowdsource font-metric generation for local fonts
  • Input improvements
    • Create jqmath input jax
    • Improve asciimath input
      • Improve asciimath to MathML converter
    • Create asciimath to TeX converter
    • Create MathJax-TeX-to-Content-MathML generator
  • Output improvements
    • improve our “tweaked” native MathML output that works around browser implementation deficiencies.
    • investigating new output formats such as canvas
  • Extensions
    • official third party extension repository
    • integration of existing extensions
      • XyJax (xypic), mathapedia (pstricks), computer algebra (e.g. Sage Cell), chemdoodle, kitware (chemistry)
    • community outreach: TeX-macro extensions
    • ideas for extension writing
  • Documentation
    • improve community involvement
    • Building a collection of code samples
    • document plugin using MathJax in other systems, e.g., CMS, LMS.
  • Internal Testing
    • improve fuzz testing
    • integrating MathJax testing into other testing environments
  • Outreach activities
    • MathJax workshop / conference
    • MathJax community meetups
    • Math accessibility workshop (AIM)
    • MathJax in education (web literacy, authoring, annotation)
    • MathJax in authoring tool chains for research and publishing
  • Native browser MathML development in Gecko and WebKit
    • Develop a long term project that would allow for Gecko/Firefox and WebKit/Safari development.

User stories

Collecting user stories).

Using MathJax outside the DOM

Developers want to use MathJax outside the DOM for testing. MathJax depends on the DOM and parts of its functionality does not make sense outside the DOM. We want to enable MathJax outside the DOM to the extent possible and provide APIs for servers-side javascript implementations.

Testing speed

Authors want to know how fast MathJax should be. Authors and Developers want to track down performance bottlenecks.

We want to be able to test speed enhancements.

Accessibility

Users want their AT tools to pick up MathJax-generated content just as well as regular MathML.

AT vendors want to use a robust API to seamlessly integrate with MathJax rendering. This currently includes User preference negotiation, Highlighting, Sync-Highlighting and copy & paste.

Open source solutions (like Benetech's prototype or possibly ChromeVox) want to integrate into MathJax to provide math speech text and other data for passive AT on mobile platforms.

TeX input enhancements

Authors want the convenience of TeX packages in MathJax.

Authors want to easily input commutative diagrams.

Authors want easy ways to input diagrams like xypics, pstricks and tikz.

Users want documentation for writing TeX input extensions.

Speed related enhancements

Authors don't want to worry about very large equations locking up the browser while rendering. Similarly, community driven content can't afford to have a page lock up because of "vandalism" with huge MathML equations. Compare: [#425], [#409]

Clone this wiki locally