|
|
We collect potential future features. Note: This is not a discussion area but a presentation area for review.
|
|
|
|
|
|
## Completing MathML 3 support
|
|
|
|
|
|
* implement the elementary math elements (mlongdiv, mstack etc)
|
|
|
* [MML spec](http://www.w3.org/Math/draft-spec/chapter3.html#presm.elementary)
|
|
|
* [mlongdiv example](http://www.w3.org/Math/testsuite/build/main/Presentation/GeneralLayout/menclose/rec-enclose1-form.xhtml),
|
|
|
* [longdiv extension example](https://github.com/mathjax/MathJax-third-party-extensions/tree/master/longdiv)
|
|
|
* add TeX macros to match
|
|
|
* implement missing mtable attributes
|
|
|
* rowspan, colspan
|
|
|
* allow HTML5 foreign content
|
|
|
* tolerate HTML in mtext
|
|
|
* switch to HTML parser
|
|
|
* implement right-to-left support
|
|
|
* improve linebreaking support
|
|
|
* align@id
|
|
|
* linebreaking characters
|
|
|
* linebreaking in token elements
|
|
|
* inline math linebreaking support
|
|
|
* improve annotation-xml support
|
|
|
* embed annotations in a more HTML5 way (OA, ARIA etc)
|
|
|
* use specific annotations as preview (image, TeX etc)
|
|
|
* implement in-table alignments
|
|
|
|
|
|
## API improvements
|
|
|
|
|
|
* ShadowDOM/webcomponents aka make MathJax a seamless polyfill.
|
|
|
* Hide output in ShadowDOM
|
|
|
* leave (author configured) source in the LightDOM
|
|
|
* use mutation observers to detect changes to LightDOM (for updates).
|
|
|
* improve CSS inheritance
|
|
|
* e.g., use getComputedStyle to map MathML stylesheets to MathJax output
|
|
|
* subexpression APIs
|
|
|
* a method that accepts string input and returns a string containing output (a self-contained SVG, CommonHTML output etc.)
|
|
|
* useful for canvas rendering, see [this discussion on mathjax-users](https://groups.google.com/d/msg/mathjax-users/RhWayOM8t_A/gjuEuaX3cdwJ)
|
|
|
|
|
|
## Improved loading & typesetting behavior
|
|
|
|
|
|
* lazy typesetting extension
|
|
|
* typeset the viewport first, followed by rest of page
|
|
|
* linebreaking for responsive design extension
|
|
|
* lazy typesetting after viewport size changes (tablet rotation etc)
|
|
|
* leveraging server-side preprocessing: using MathJax-node to produce MathML line-broken for desired viewport sizes, pick up viewport size before rendering, render the fitting equation
|
|
|
* pre-loading extension
|
|
|
* prefetch remaining MathJax components after typesetting is complete
|
|
|
* tiny fetcher script to check for math in the page and load MathJax
|
|
|
* improve build tools
|
|
|
* evaluate switching to JS tools (grunt, gulp etc)
|
|
|
* simplify combined configuration building
|
|
|
* enable single-file builds
|
|
|
* investigate webservice for building combined configurations
|
|
|
* investigate local storage
|
|
|
* load components into local storage
|
|
|
See also [[Improve loading behavior]]
|
|
|
|
|
|
|
|
|
## Accessibility and UI
|
|
|
|
|
|
|
|
|
See also [[Accessibility goals]], [this user group discussion](https://groups.google.com/group/mathjax-users/browse_thread/thread/d9141c849835300e/8361b101a1f504ef?lnk=gst&q=readwrite#8361b101a1f504ef)
|
|
|
|
|
|
* Improve UI (MathJax Menu) accessibility
|
|
|
* enable call of menu from keyboard navigation
|
|
|
* use modern ARIA
|
|
|
* finalize discovery-mode of the UI
|
|
|
* haze
|
|
|
* marker
|
|
|
* switch to hamburger icon? generic math symbol? (like sections on docs or github markdown)
|
|
|
* smoother menu interaction (roll under/over etc)
|
|
|
* optional permanent marker
|
|
|
* 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
|
|
|
* subexpression APIs
|
|
|
* embed speech-text generation from AT
|
|
|
* interact with accessibility preferences coming from AT
|
|
|
* compatibility with user style sheets
|
|
|
* Investigate ShadowDOM / web components potential for accessibility
|
|
|
* improve copy&paste
|
|
|
* share mechanisms (webintents, mathproc://)
|
|
|
* microdata support (rdfa, schema.org)
|
|
|
* copy&paste with web components
|
|
|
* menu extensions
|
|
|
* search menu (enabling math search engines such as symbolab, wolfram alpha, Springer LaTeX search etc)
|
|
|
* Globally placed menu (incl. an accessibility menu for options such as "present speech-text" vs "present source" etc)
|
|
|
*
|
|
|
|
|
|
### Speed Improvements
|
|
|
|
|
|
* Use local storage to reduce need for re-rendering content.
|
|
|
* collaborate with browser developers to improve MathJax speed
|
|
|
|
|
|
### Font improvements
|
|
|
|
|
|
* switch to [CSS Font Loading Module Level 3](http://dev.w3.org/csswg/css-font-loading/) on Chrome 35+
|
|
|
* supplementing character coverage
|
|
|
* if the selected font does not cover a Unicode character, load a second font to provide it.
|
|
|
* enable dev-tools to produce such "mixed" fontdata (e.g., "combine Font X with fallbacks from STIX-MathJax").
|
|
|
* allow font mixing
|
|
|
* switch fonts within document (e.g., some equations use STIX, others Neo Euler perhaps depending on the CSS of their context (e.g., textbook problems vs solutions))
|
|
|
* generic font support in HTML output
|
|
|
* Support for ubiquitous commercial fonts (local installation only)
|
|
|
* Lucida Sans, Apple symbol fonts, Arial unicode
|
|
|
|
|
|
### Input improvements
|
|
|
|
|
|
* Create jqmath input jax
|
|
|
* Improve asciimath input
|
|
|
* Improve asciimath to MathML converter
|
|
|
* Create asciimath to TeX converter
|
|
|
* possibly using [this one](http://dlippman.imathas.com/asciimathtex/AMT.html)
|
|
|
* 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
|
|
|
* canvas
|
|
|
|
|
|
#### integrate graphical component
|
|
|
|
|
|
* expand internal format (e.g., with SVG)
|
|
|
* move beyond MathML 3
|
|
|
* diagrams, graphs, etc.
|
|
|
* visualizations
|
|
|
* dynamic graphics (e.g., commutative diagram being drawn)
|
|
|
* enable manipulation of diagrammatic content (e.g. allow reader to rearrange nodes of a graph)
|
|
|
|
|
|
### Extensions
|
|
|
|
|
|
* list of requested extensions / ideas / potential user contributions
|
|
|
* LaTeX packages
|
|
|
* braket
|
|
|
* siunitx
|
|
|
* bordermatrix (needs colspan/rowspan?; requested on various SE sites)
|
|
|
* algorithms, listings
|
|
|
* babel macros (e.g., [Russian (see 6.4)](http://www.ctan.org/tex-archive/macros/latex/contrib/babel-contrib/russian) via twitter)
|
|
|
* fontpackages (stmaryd, wasysym etc) via unicode
|
|
|
* Q-circuit (via xyjax) see [this discussionhttps://groups.google.com/forum/?fromgroups#!searchin/mathjax-users/macros/mathjax-users/ORLZ3Fm1qIs/8kNkSYz_XWgJ
|
|
|
* mathapedia (pstricks)
|
|
|
* SageTeX
|
|
|
* chemfig
|
|
|
* Feynman diagrams (cf. http://photino.github.io/jquery-feyn/index.html)
|
|
|
* chemdoodle, kitware (chemistry)
|
|
|
* LaTeX macros for MathML constructs (mtable)
|
|
|
* options for TeX packages to benefit from things that are easier in MathML, e.g, equalcolumns/rows
|
|
|
|
|
|
### Documentation
|
|
|
|
|
|
### 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. |