2015-12-21 5 views
0

после многих поисков в google, похоже, что моя проблема не очень хорошо документирована.совместимость с symfony и mathjax

Я разрабатываю блог symfony, который содержит математику. Поэтому я попытался использовать mathjax. Он работает хорошо, но проблема в том, что символ «&» и «\\» не отправляются, как на веб-странице (когда я смотрю в исходном коде firefox, символы: «& amp;» и '& # 92;').

Содержимое хранится в базе данных, а символы в базе данных верны. Есть ли чистый способ решить проблему? Может быть, со стороны Mathjax или Symfony?

Я попытался использовать сырой фильтр ветви, но символ все тот же в исходном коде.

Большое спасибо :)

EDIT: Я использую knplabs/ПКН-уценки-расслоением с фильтром по умолчанию для печати содержание сообщения: post.content|markdown, и когда я выйду на пенсию в |markdown символы являются правильными, но у меня нет преобразования уценки ...

EDIT 2: После утреннего поиска я нашел, в чем проблема. Me, я анализирую уценку на задний конец (php), а затем javascript анализирует html (markdown -> mathjax). Но обычно все делается с помощью javascript в этом смысле: mathjax -> markdown. как в этом приложении: https://github.com/kerzol/markdown-mathjax.

Итак, мой новый вопрос: есть ли способ сделать mathjax обратным парсером уценки?

+0

Вы можете попробовать отключить autoescape: http://twig.sensiolabs.org/doc/tags/autoescape.html. Если у вас все еще есть трудности, то обновите свой вопрос с помощью какой-нибудь пробной ветки. – Cerad

+0

Можете ли вы дать больше информации? Как он хранится? Как вы извлекаете контент? В Symfony нет ничего особенного, что помешает вам делать то, что вы хотите. – Ryan

+0

@Cerad «Символы в базе данных верны» и печатается следующим образом: '' post.content | markdown''. Сегодня утром я попытался удалить фильтр уценки, и он показывает мне, что именно этот фильтр преобразует символы. Я использую ** knplabs/knp-markdown-bundle ** с фильтром по умолчанию – onda47

ответ

0

Я нашел ответ самостоятельно, но он не очень изящный. Я хочу, чтобы разглядеть текст между $ $ и $$ $$. Так что я сделал это:

$html = $this->container->get('markdown.parser') 
    ->transformMarkdown($post->getContent()); 
$html = str_replace('&', '&', $html); 
$html = str_replace('\', '\\\\', $html); 
$html = str_replace('<em>', '_', $html); 
$html = str_replace('</em>', '_', $html); 

$post->setContent($html); 

и в представлении:

{{ post.content|raw }} 

Это работает, но это не совсем прекрасной.

Смежные вопросы