RTL и MathJax

Всем привет :slight_smile:
У меня небольшой вопрос о том, как использовать темы, в которых сочетаются английский язык и языки с направлением письма справа налево (RTL), например иврит, особенно при использовании плагина MathJax. На нашем форуме Discourse это выглядит так:

Итоговый результат отличный! Единственная проблема — написание этих уравнений. Это может стать действительно сложным, если уравнения длинные. Я понимаю, что смешение RTL и LTR может вызывать проблемы, но интересно, возможно ли это решить? Есть ли способ это исправить?

Попробуйте включить настройку сайта «поддержка смешанного направления текста». Подробную информацию о этой настройке можно найти здесь: Supporting mixed text directions.

При включении этой настройки в редакторе появится кнопка «Переключить направление»:

Я не тестировал это с плагином MathJax, но это должно значительно упростить написание длинных уравнений. Если вы попробуете эту настройку и столкнётесь с какими-либо проблемами, пожалуйста, сообщите нам.

Спасибо за ответ!
На самом деле я пробовал это сделать ещё до публикации этой темы, но забыл упомянуть об этом. Это помогает лучше отображать уравнения, разделённые с помощью $$-$$, но не работает для уравнений в одну строку. Кроме того, это преобразует текст с направлением справа налево (RTL) в направление слева направо (LTR), поскольку нельзя изменить направление только для одной строки, что тоже выглядит небрежно. У вас есть другие идеи?
Ещё раз спасибо за ответ :slight_smile:

Всем привет :slight_smile:
Снова пытаю удачу. Можно ли как-то добиться LTR между блоками кода и MathJax? В форумах с направлением RTL писать код или формулы кажется неловким:

Это должно выглядеть так:

Есть ли способ этого добиться?

Да, это может быть сложно. Это не идеальное решение, но вы можете добавить переключатель направления в редактор с помощью компонента темы. Это позволит переключать направление всей области редактирования редактора на LTR (слева направо) при написании кода. Приведённый ниже код извлечён из кода, который используется, когда включена настройка сайта «поддержка смешанного направления текста». Если направление по умолчанию на вашем сайте — RTL, оставьте код без изменений. Если направление по умолчанию — LTR, замените 'rtl' в тернарном операторе на 'ltr', чтобы не приходилось дважды кликать при первом использовании переключателя.

<script type="text/discourse-plugin" version="0.8.32">
    api.onToolbarCreate(toolbar => {
        toolbar.addButton({
            id: "toggle-direction",
            group: "extras",
            icon: "exchange-alt",
            shortcut: "Shift+6",
            title: "Переключить направление",
            perform: () => {
                const $textArea = $(".d-editor-input");
                let currentDir = $textArea.attr("dir") ? $textArea.attr("dir") : 'rtl', // установите значение по умолчанию на направление текста вашего сайта.
                    newDir = currentDir === "ltr" ? "rtl" : "ltr";
                $textArea.attr("dir", newDir).focus();
            }
        });
    });
</script>

Нажмите на значок «Переключить направление», чтобы изменить направление редактора: