Discourse Math

:discourse2: Summary Discourse Math uses MathJax (default) or KaTeX to render maths in your Discourse forum.
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-math
:open_book: Install Guide How to install plugins in Discourse

Enabling Math

The Math plugin can be enabled from its settings, accessed from your admin/plugins page:

Features

Once enabled, you can render inline math by wrapping with a single $ like so: $E=mc^2$.

You can render blocks of maths by wrapping with $$

$$
\sqrt{(-1)} \; 2^3 \; \sum \; \pi
$$

Discourse Math uses a heuristic to ensure that sentences such as: โ€œI spent 20$ and another 100$โ€ do not get converted.

When using MathJax, you can also enable asciimath processing which uses % as a delimiter: %E=mc^2%

Site Settings

  • See all relevant site settings by searching your admin settings for โ€œmathโ€
Name Description
discourse math enabled Enable Discourse Math plugin (will add special processing to $ and $$ blocks)
discourse math provider Default math rendering provider [mathjax/katex]
discourse math zoom on hover Zoom 200% on hover (MathJax only)
discourse math enable accessibility Enable accessibility features (MathJax only)
discourse math enable asciimath Enable asciimath (will add special processing to % delimited input) (MathJax only)

:discourse2: Hosted by us? This plugin is available on all of our hosting tiers Math | Discourse - Civilized Discussion

61 Likes

5 posts were split to a new topic: Is there a way to relieve the pressure on the browser with many mathjax equations?

Hi, the Math plugin seems to rely on the frontend for rendering. Therefore, our email users cannot receive the rendered math formula.
Is there any way to solve this problem?

Technically, yesโ€ฆ but it is tricky. We would need to load mathjax in mini racer (or node) simulate the DOM and render to an SVG.

I am sure it was done before by some people but can not find easy examples in the wild that are maintained. Probably worth testing if the node package even works for starters.

2 Likes