diff --git a/src/HtmlUtils.tsx b/src/HtmlUtils.tsx
index da3eb3b128..ca718cd9aa 100644
--- a/src/HtmlUtils.tsx
+++ b/src/HtmlUtils.tsx
@@ -28,7 +28,7 @@ import EMOJIBASE_REGEX from 'emojibase-regex';
import url from 'url';
import katex from 'katex';
import { AllHtmlEntities } from 'html-entities';
-import SdkConfig from './SdkConfig';
+import SettingsStore from './settings/SettingsStore';
import {MatrixClientPeg} from './MatrixClientPeg';
import {tryTransformPermalinkToLocalHref} from "./utils/permalinks/Permalinks";
@@ -412,7 +412,7 @@ export function bodyToHtml(content: IContent, highlights: string[], opts: IOpts
if (isHtmlMessage) {
isDisplayedWithHtml = true;
safeBody = sanitizeHtml(formattedBody, sanitizeParams);
- if (SdkConfig.get()['latex_maths']) {
+ if (SettingsStore.getValue("feature_latex_maths")) {
const mathDelimiters = [
{ pattern: "
(.|\\s)*?
", display: true },
{ pattern: "(.|\\s)*?", display: false },
diff --git a/src/Markdown.js b/src/Markdown.js
index 9914cff85a..329dcdd996 100644
--- a/src/Markdown.js
+++ b/src/Markdown.js
@@ -16,7 +16,7 @@ limitations under the License.
import commonmark from 'commonmark';
import {escape} from "lodash";
-import SdkConfig from './SdkConfig';
+import SettingsStore from './settings/SettingsStore';
const ALLOWED_HTML_TAGS = ['sub', 'sup', 'del', 'u'];
@@ -30,7 +30,7 @@ function is_math_node(node) {
}
function is_allowed_html_tag(node) {
- if (SdkConfig.get()['latex_maths'] &&
+ if (SettingsStore.getValue("feature_latex_maths") &&
(is_math_node(node) ||
(node.literal.match(/^<\/?code>$/) && is_math_node(node.parent)))) {
return true;
diff --git a/src/editor/serialize.ts b/src/editor/serialize.ts
index 02194a1d59..9f24cd5eb2 100644
--- a/src/editor/serialize.ts
+++ b/src/editor/serialize.ts
@@ -19,6 +19,7 @@ import Markdown from '../Markdown';
import {makeGenericPermalink} from "../utils/permalinks/Permalinks";
import EditorModel from "./model";
import { AllHtmlEntities } from 'html-entities';
+import SettingsStore from '../settings/SettingsStore';
import SdkConfig from '../SdkConfig';
export function mdSerialize(model: EditorModel) {
@@ -42,7 +43,7 @@ export function mdSerialize(model: EditorModel) {
export function htmlSerializeIfNeeded(model: EditorModel, {forceHTML = false} = {}) {
let md = mdSerialize(model);
- if (SdkConfig.get()['latex_maths']) {
+ if (SettingsStore.getValue("feature_latex_maths")) {
const displayPattern = (SdkConfig.get()['latex_maths_delims'] || {})['display_pattern'] ||
"\\$\\$\\$(([^$]|\\\\\\$)*)\\$\\$\\$";
const inlinePattern = (SdkConfig.get()['latex_maths_delims'] || {})['inline_pattern'] ||
diff --git a/src/settings/Settings.ts b/src/settings/Settings.ts
index 737c882919..2f817c264c 100644
--- a/src/settings/Settings.ts
+++ b/src/settings/Settings.ts
@@ -116,6 +116,12 @@ export interface ISetting {
}
export const SETTINGS: {[setting: string]: ISetting} = {
+ "feature_latex_maths": {
+ isFeature: true,
+ displayName: _td("LaTeX math in messages"),
+ supportedLevels: LEVELS_FEATURE,
+ default: false,
+ },
"feature_communities_v2_prototypes": {
isFeature: true,
displayName: _td(