|
We collect potential features. Note: This is not a discussion area but a presentation area for review.
|
|
We collect potential future features. Note: This is not a discussion area but a presentation area for review.
|
|
|
|
|
|
* Speed Improvements
|
|
## Completing MathML 3 support
|
|
* reduce the number of measurements in the HTML-CSS output.
|
|
|
|
* get HTML-CSS up to SVG speed.
|
|
* implement the elementary math elements (mlongdiv, mstack etc)
|
|
* multi-pass rendering
|
|
* [MML spec](http://www.w3.org/Math/draft-spec/chapter3.html#presm.elementary)
|
|
* enable a first, faster but less precise pass, followed by a second, precise pass.
|
|
* [mlongdiv example](http://www.w3.org/Math/testsuite/build/main/Presentation/GeneralLayout/menclose/rec-enclose1-form.xhtml),
|
|
* develop “simple” HTML-output (faster but potentially lower quality)
|
|
* [longdiv extension example](https://github.com/mathjax/MathJax-third-party-extensions/tree/master/longdiv)
|
|
* integrate jqmath as output option
|
|
* add TeX macros to match
|
|
* [[Improve loading behavior]]
|
|
* implement missing mtable attributes
|
|
* improve loading techniques and behavior (review current state of art)
|
|
* rowspan, colspan
|
|
* improve build tools (for combined configs & single-file versions)
|
|
* allow HTML5 foreign content
|
|
* mini fetcher script to check for math in the page.
|
|
* tolerate HTML in mtext
|
|
* investigate webservice for building combined configurations
|
|
* switch to HTML parser
|
|
* create lazy loading extension (prefetch MathJax components after typesetting is complete)
|
|
* implement right-to-left support
|
|
* leverage latest browser technologies (IE9+)
|
|
* improve linebreaking support
|
|
* Create lazy typesetting extension (typeset the viewport)
|
|
* align@id
|
|
* Leverage local storage technologies to reduce need for re-rendering content.
|
|
* linebreaking characters
|
|
* Leverage server-side preprocessing (TeX to MathML, MathML to SVG, image previews etc)
|
|
* linebreaking in token elements
|
|
* collaborate with browser developers to improve MathJax speed
|
|
* inline math linebreaking support
|
|
* Completing MathML 3 support
|
|
* improve annotation-xml support
|
|
* implement elementary math elements ([mlongdiv, mstack etc](http://www.w3.org/Math/draft-spec/chapter3.html#presm.elementary))
|
|
* embed annotations in a more HTML5 way (OA, ARIA etc)
|
|
* [mlongdiv example](http://www.w3.org/Math/testsuite/build/main/Presentation/GeneralLayout/menclose/rec-enclose1-form.xhtml),
|
|
* use specific annotations as preview (image, TeX etc)
|
|
* implement missing mtable attributes (e.g., rowspan, colspan)
|
|
* implement in-table alignments
|
|
* implement right-to-left support
|
|
|
|
* improve ContentMathML support
|
|
## Seamless MathJax
|
|
* see [[ContentMathML extension proposal]]
|
|
|
|
* improve annotation-xml support
|
|
Use ShadowDOM/webcomponents to make MathJax appear as a seamless polyfill.
|
|
* provide options to use specific annotations as preview (image, TeX etc)
|
|
|
|
* implement in-table alignments
|
|
* Hide output in ShadowDOM
|
|
* HTML5 foreign content
|
|
* leave (author preferred) source in the LightDOM
|
|
* tolerate HTML in mtext, switch to HTML parser
|
|
* use mutation observers to pickup rendering
|
|
* Accessibility
|
|
* CSS inheritance
|
|
* Improve UI (MathJax Menu) accessibility
|
|
* getComputedStyle
|
|
* finalize discovery-mode of the UI
|
|
* remapping to SVG
|
|
* Investigate ShadowDOM potential for accessibility
|
|
|
|
* speech-text extension.
|
|
## Improved loading & typesetting behavior
|
|
* collaborating with other open source solutions from Benetech or Google ChromeVox
|
|
|
|
* embedding alternative source formats of math (TeX, MathML, OpenMath, computer algebra notation)
|
|
* lazy typesetting extension
|
|
* Add APIs for accessibility tools (AT) to interact with MathJax rendering as if it was native MathML. This includes
|
|
* typeset the viewport first, followed by rest of page
|
|
* handing MathML over to AT
|
|
* linebreaking for responsive design extension
|
|
* enable user navigation
|
|
* lazy typesetting after viewport size changes (tablet rotation etc)
|
|
* enable synchronized highlighting
|
|
* 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
|
|
* embed speech-text generation from AT
|
|
* pre-loading extension
|
|
* interact with accessibility preferences coming from AT
|
|
* prefetch remaining MathJax components after typesetting is complete
|
|
* compatibility with user style sheets
|
|
* tiny fetcher script to check for math in the page and load MathJax
|
|
* Server side MathJax
|
|
* improve build tools
|
|
* enable MathJax outside the DOM (e.g. nodejs, rhino)
|
|
* evaluate switching to JS tools (grunt, gulp etc)
|
|
* enable server-side pre-processing
|
|
* simplify combined configuration building
|
|
* server side testing
|
|
* enable single-file builds
|
|
* production environment testing
|
|
* investigate webservice for building combined configurations
|
|
* UI improvements
|
|
* investigate local storage
|
|
* copy&paste (share mechanisms, microdata, rdf, shadow dom, web components)
|
|
* load components into local storage
|
|
* discoverability of math on the page
|
|
See also [[Improve loading behavior]]
|
|
* menu extensions
|
|
|
|
* search menu (enabling math search engines such as symbolab, wolfram alpha, Springer LaTeX search etc)
|
|
|
|
* Font improvements
|
|
## Accessibility and UI
|
|
* allow font mixing (different math fonts, supplementing character coverage, generic font support in HTML output)
|
|
|
|
* Support for ubiquitous commercial fonts (local installation only)
|
|
* Improve UI (MathJax Menu) accessibility
|
|
* Lucida Sans, Apple symbol fonts, Arial unicode
|
|
* enable call of menu from keyboard navigation
|
|
* crowdsource font-metric generation for local fonts
|
|
* use modern ARIA
|
|
* Input improvements
|
|
* finalize discovery-mode of the UI
|
|
* Create jqmath input jax
|
|
* haze
|
|
* Improve asciimath input
|
|
* marker
|
|
* Improve asciimath to MathML converter
|
|
* 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
|
|
* Create asciimath to TeX converter
|
|
* possibly using [this one](http://dlippman.imathas.com/asciimathtex/AMT.html)
|
|
* possibly using [this one](http://dlippman.imathas.com/asciimathtex/AMT.html)
|
|
* Create MathJax-TeX-to-Content-MathML generator
|
|
* 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).
|
|
|
|
|
|
|
|
### 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.
|
|
* MathJax workshop / conference
|
|
|
|
* MathJax community meetups
|
|
Authors want easy ways to input diagrams like xypics, pstricks and tikz.
|
|
* Math accessibility workshop (AIM)
|
|
|
|
* MathJax in education (web literacy, authoring, annotation)
|
|
Users want documentation for writing TeX input extensions.
|
|
* 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. |
|
### 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 |
|
|