Jump to content

Цитаты контента, полученного с помощью плагина Mathjax в CKEditor

Featured Replies

Posted
comment_182498

Всем привет!

Имеется форум на движке Invision Community версии 4.6.12 с установленным плагином MathJax в штатном редакторе. При создании сообщений проблем нет, формулы вставляются корректно и отображаются при редактировании тоже правильно. Но стоит только процитировать что-либо уже содержащее формулу mathjax, то в цитате всё ломается, формула теряется и результат (сообщения) выглядит совершенно некорректно:

image.png.8f5655cc635759a1464a0784e70ff3e4.png

Сверху правильно отображаемая формула, внутри цитаты она же, но после цитирования. Видно, что её содержимое поплыло.

В чём может быть проблема цитирования кода, в составе которого есть mathjax?

comment_182499

dmakc привет.

может в настройках редактора по копаться? может чего получиться? просто такую кнопку себе не ставил. ничего сказать точно не могу

Спойлер

43.thumb.png.1d2781e9a838aec5e07c2174f93283b7.png

 

  • Author
comment_182501
5 минут назад, SlawkA сказал:

может в настройках редактора по копаться? может чего получиться? просто такую кнопку себе не ставил. ничего сказать точно не могу

В настройках все на минималках, конфигурирование идёт через config.js в директории ckeditor. Но там, как я понял, к этой проблеме ничего относящегося поменять не получится.

Как я понимаю логика такая: при выделении или при нажатии на кнопку "Цитата" в сообщение вставляется оттранслированный MathJax HTML из DOM. А нужно, чтобы вставлялся исходный код MathJax, как будто бы до трансляции. MathJax для себя оставляет исходный нетранслированный код под тегом script с атрибутом type="math/tex", как заставить обработчик вставки цитаты правильно его оттуда выдернуть я не понимаю.

comment_182505

dmakc мне кажется это редактор не правильно вставляет, и причина точно в нем, а не в движке.

но блин редактор пока мной не изучен полностью.

может кто подскажет другой

  • 5 месяцев спустя...
comment_187948

 

@Desti Спасибо.

Я думаю, что важно понимать, как работает MathJax, чтобы решить эту проблему. Позвольте мне привести пример:

- Содержание поста, сохраненное в базе данных: «У нас есть $a^2 + b^2 = c^2$».

- Если на стороне клиента включен javascript, то MathJax проанализирует формулу, и она будет отображаться как: «У нас есть a2 + b2 = c2»

- Если javascript отключен, то пользователь увидит «У нас есть $a^2 + b^2 = c^2$» (как хранится в базе данных, MathJax требует javascript, который отключен, поэтому формула не анализируется).

Теперь при нажатии на кнопку «Цитировать» текущее поведение заключается в том, что он будет цитировать отображаемый контент, а не то, что находится внутри базы данных, что не очень хорошо. Есть ли способ заставить редактора цитировать фактическое содержание сообщения, которое хранится в базе данных?

(Извините, я перевел этот пост с английского, поэтому он может быть не очень понятен.)

comment_187954
11 часов назад, n00b сказал:

Есть ли способ заставить редактора цитировать фактическое содержание сообщения, которое хранится в базе данных?

Вылезет куча проблем, начиная от определения необходимости делать такой запрос (если в цитате нет MathJax, то запрос не нужен) и заканчивая поиском нужного фрагмента при частичном цитировании (если, например, процитировать только формулу, то ее не получится найти в сообщении в базе). 

Как вариант - доработать скрипт MathJax так, чтобы он создавал не только свой объект, но и невидимый объект с оригиналом формулы и при цитировании использовать его. 

 

 

comment_187968

@DestiЭто кажется слишком сложным. Я не уверен, почему эта проблема характерна только для IPS, потому что я тестировал другое программное обеспечение (включая Xenforo), и оно просто работает: исходные (неразобранные) формулы цитируются вместо разобранных.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.