Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • M MathJax
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 304
    • Issues 304
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MathJax
  • MathJax
  • Wiki
  • Mathjax backlog

Mathjax backlog · Changes

Page history
update after 2.4 release authored Jul 02, 2014 by Peter Krautzberger's avatar Peter Krautzberger
Hide whitespace changes
Inline Side-by-side
Mathjax-backlog.md
View page @ 2ae4d8a1
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.
Clone repository

MathJax Wiki

  • Contributing
    • Contributor License Agreement etc
    • Quick guide to translating mathjax
  • Development
    • Development Process
      • Release Process Checklist
      • Documentation Update Process
      • Source Control Policies
    • Design Documents
      • MathJax Roadmap
      • CDN Hosting
        • CDN requirements
        • CDN Hosting at Google Cloud Storage
      • Performance Discussion
      • Profiling and Diagnostics Tools
      • Documentation generation guide
      • Testing
        • Platforms supported
        • Test Machines
  • MathJax web presence
  • Drafts