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
moved to tracker. authored Mar 17, 2015 by Peter Krautzberger's avatar Peter Krautzberger
Show whitespace changes
Inline Side-by-side
Mathjax-backlog.md
View page @ 2cacfe16
We collect potential future features. Note: This is not a discussion area but a presentation area for review. The backlog has been moved to https://github.com/mathjax/MathJax/milestones/Backlog and other milestones.
\ No newline at end of file
## Completing MathML 3 support
* implement full elementary math support (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
* implement in-table alignments
* improve annotation-xml support
* embed annotations in a more HTML5 way (OA, ARIA etc)
## API improvements
* Investigate 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., optionally 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)
* might end up somewhat limited for lack of rendering context
## 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
* retire PNG fonts
* possibly make them a separate extension, possibly merge as data-uri
* improve TeX fonts
* is http://sourceforge.net/projects/cm-unicode/ an option?
* 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
#### add 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)
* move beyond math (e.g., ChemML)
* add TeX extensions (e.g., modeled after tikz or xypic)
### 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
### Testing
* implement CI with SauceLabs
* possibly switch test runners
* improve fuzz testing
* integrating MathJax testing into other testing environments
### Outreach activities
* MathJax workshop / conference
* MathJax community meetups
* Math accessibility workshop
* 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