Discourse Math

:discourse2: Summary Discourse Math uses MathJax (default) or KaTeX to render maths in your Discourse forum.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

Enabling Math

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

Math settings

Features

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

You can render blocks of math 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.

LaTeX Delimiters

When enabled via site settings, you can also use standard LaTeX delimiters:

  • Inline: \(...\) - Example: \(E=mc^2\)
  • Block: \[...\] - Example:
    \[
    \frac{1}{2}
    \]
    

AsciiMath (MathJax only)

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

Composer Integration

The composer includes an Insert Math button in the toolbar with keyboard shortcut Shift+M. This opens a modal where you can:

  • Toggle between inline and block mode
  • Write your LaTeX expression
  • Preview and insert into your post

In the rich text editor, math expressions appear as editable nodes with an edit button to modify the expression.

Chat Support

Math expressions are also rendered in Discourse Chat messages using the same settings and rendering engine.

Rendering Engines

MathJax (Default)

  • Version: 4.1
  • Output formats: HTML (default) or SVG
  • Features:
    • Contextual menu (right-click on math)
    • Accessibility enrichment for screen readers
    • Zoom on alt-click (175% zoom)
    • AsciiMath support

KaTeX (Alternative)

  • Features:
    • Fast rendering
    • Mhchem extension for chemical equations
    • CopyTex extension - click math to copy LaTeX source to clipboard
    • Cross-reference support with \label, \ref, and \eqref macros

Site Settings

See all relevant site settings by searching your admin settings for “math”.

Name Description
discourse math enabled Enable Discourse Math plugin (adds special processing to $ and $$ blocks)
discourse math provider Math rendering provider: mathjax (default) or katex
discourse math enable latex delimiters Enable LaTeX-style delimiters: \(...\) for inline and \[...\] for block math
discourse math mathjax output MathJax output format: html (default) or svg (MathJax only)
discourse math enable menu Enable contextual menu for math expressions (MathJax only)
discourse math enable accessibility Enable accessibility features like text enrichment (MathJax with menu only)
discourse math zoom on click Zoom 175% on alt-click interaction (MathJax with menu only)
discourse math enable asciimath Enable asciimath processing with % delimiter (MathJax only)

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

Last edited by @sam 2026-01-16T05:05:47Z

Check documentPerform check on document:
70 лайков

2 сообщения были перенесены в новую тему: Добавить поддержку форматирования email для MathJax

2 поста были перенесены в новую тему: Можно ли обновить Mathjax до версии 3?

6 сообщений были перенесены в новую тему: Добавлена поддержка блоков и строчных формул в стиле LaTeX для математики

Пост был разделен на новую тему: Формулы не отображаются корректно в блоках

Пост был разделен на новую тему: Математика не отображается в предпросмотре

15 сообщений были перенесены в новую тему: Математика и обходные пути ИИ

26 сообщений были перенесены в новую тему: Обновление Mathjax до версии 4

Просто краткое (позитивное) замечание из реальной практики после перехода на новую интеграцию MathJax (v4.1) в Discourse Math.

Одно улучшение качества жизни, которое я заметил, заключается в том, что MathJax теперь выдаёт очень конкретную и локализованную обратную связь, когда ввод некорректен или макрос не определён:

  • Он по-прежнему корректно отображает окружающую валидную структуру (например, \frac{...}{...}, скобки и т. д.)
  • Но неопознанную команду оставляет видимой буквально (например, показывая \sinc как текст), вместо того чтобы полностью прерывать выражение или выдавать запутанную частичную ошибку.

На практике это сразу делает очевидным, что нужно исправить, не скрывая при этом уже корректные части — что особенно полезно в образовательном контексте и при доработке постов с большим количеством математики.

Например, вместо того чтобы полагаться на то, что \sinc будет определён, надёжный подход — явно записать его как оператор:

\frac{\Delta}{T}\operatorname{sinc}\!\left(\frac{\omega_r\Delta}{2}\right)

где:

\operatorname{sinc}(x)=\frac{\sin x}{x}

В целом такое поведение «отображай то, что можешь, остальное показывай явно» ощущается как значительное улучшение удобства использования по сравнению со старыми или менее прозрачными режимами обработки ошибок. Спасибо всем, кто участвовал в работе по обновлению MathJax.

3 лайка

Хочу предупредить всех, кто пришёл сюда через Google, что этот плагин недоступен для бесплатного тарифа хостинга. :expressionless_face:

Здравствуйте, я понимаю ваше разочарование. Мне жаль, что вы так себя чувствуете. В будущих случаях вы можете ознакомиться с каталогом плагинов по тарифному плану здесь.

Плагин для математики не указан на этой странице как плагин для тарифов Pro, Business или Enterprise. Следовательно, можно предположить, что он доступен для бесплатного тарифа. Я не предлагаю предоставлять его бесплатно. Я лишь считаю, что эту информацию следует сделать немного более понятной.

1 лайк

Верно. Страница Discourse pricing | Discourse - Civilized Discussion содержит все тарифные планы и их ограничения, включая плагины, где вы можете быстро увидеть, какие плагины разрешены.

1 лайк