|
|
We collect potential features. Note: This is not a discussion area but a presentation area for review.
|
|
|
|
|
|
* Speed Improvements
|
|
|
* reduce the number of measurements in the HTML-CSS output.
|
|
|
* get HTML-CSS up to SVG speed.
|
|
|
* 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)
|
|
|
* improve build tools (for combined configs & single-file versions)
|
|
|
* mini fetcher script to check for math in the page.
|
|
|
* 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](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),
|
|
|
* implement missing mtable attributes (e.g., rowspan, colspan)
|
|
|
* implement right-to-left support
|
|
|
* improve ContentMathML support
|
|
|
* see [[ContentMathML extension proposal]]
|
|
|
* 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
|
|
|
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
|
|
|
|
|
|
## Seamless MathJax
|
|
|
|
|
|
Use ShadowDOM/webcomponents to make MathJax appear as a seamless polyfill.
|
|
|
|
|
|
* Hide output in ShadowDOM
|
|
|
* leave (author preferred) source in the LightDOM
|
|
|
* use mutation observers to pickup rendering
|
|
|
* CSS inheritance
|
|
|
* getComputedStyle
|
|
|
* remapping to SVG
|
|
|
|
|
|
## 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
|
|
|
|
|
|
* 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
|
|
|
* 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)
|
|
|
|
|
|
### Speed Improvements
|
|
|
|
|
|
* Use local storage to reduce need for re-rendering content.
|
|
|
* collaborate with browser developers to improve MathJax speed
|
|
|
|
|
|
### Font improvements
|
|
|
|
|
|
* allow font mixing
|
|
|
* switch fonts within document (e.g.,
|
|
|
* 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
|
|
|
* 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 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
|
|
|
* Feynman diagrams; could use http://photino.github.io/jquery-feyn/index.html
|
|
|
* 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](https://en.wikipedia.org/wiki/User_story)).
|
|
|
|
|
|
### 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](https://en.wikipedia.org/wiki/Comparison_of_server-side_JavaScript_solutions).
|
|
|
* possibly using [this one](http://dlippman.imathas.com/asciimathtex/AMT.html)
|
|
|
* Create MathJax-TeX-to-Content-MathML generator
|
|
|
|
|
|
### Testing speed
|
|
|
### Output improvements
|
|
|
|
|
|
Authors want to know how fast MathJax should be. Authors and Developers want to track down performance bottlenecks.
|
|
|
* improve our “tweaked” native MathML output that works around browser implementation deficiencies.
|
|
|
* investigating new output formats
|
|
|
* canvas
|
|
|
|
|
|
We want to be able to test speed enhancements.
|
|
|
#### integrate graphical component
|
|
|
|
|
|
### Accessibility
|
|
|
* expand internal format 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)
|
|
|
|
|
|
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.
|
|
|
### Extensions
|
|
|
|
|
|
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.
|
|
|
* list of requested extensions / ideas / potential user contributiosn
|
|
|
* chemfig
|
|
|
* Feynman diagrams; could use http://photino.github.io/jquery-feyn/index.html
|
|
|
* mathapedia (pstricks)
|
|
|
* SageTeX
|
|
|
* chemdoodle, kitware (chemistry)
|
|
|
|
|
|
### Documentation
|
|
|
|
|
|
### Internal Testing
|
|
|
|
|
|
### TeX input enhancements
|
|
|
* improve fuzz testing
|
|
|
* integrating MathJax testing into other testing environments
|
|
|
|
|
|
Authors want the convenience of TeX packages in MathJax.
|
|
|
### Outreach activities
|
|
|
|
|
|
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] |
|
|
\ No newline at end of file |
|
|
* 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. |