2015-12-21 80 views
0

經過很多谷歌搜索,似乎我的問題沒有很好的記錄。symfony和mathjax的兼容性

我正在開發一個包含數學的symfony博客。所以我試圖使用mathjax。它的效果很好,但問題是,字符'&'和'\'不會像網頁中那樣發送(當我查看Firefox的源代碼時,字符是:'& amp;'和'\')。

內容存儲在數據庫中,數據庫中的字符正確。 有沒有乾淨的方法來解決問題?也許由Mathjax方面或Symfony方面?

我試過使用原始樹枝過濾器,但字符在源代碼中仍然是一樣的。

非常感謝你:)

編輯: 我用knplabs/KNP-降價束過濾器的默認打印帖子內容:post.content|markdown,當我退休|markdown人物是正確的,但我沒有降價轉換...

編輯2:好了一個搜索的早晨後,我發現我的問題是什麼。我,我解析減價到後端(PHP),然後JavaScript解析HTML(markdown - > mathjax)。但通常,所有這些都是在這個意義上用javascript來完成的:mathjax - > markdown。就像在這個應用程序:https://github.com/kerzol/markdown-mathjax

所以我的新問題是,有沒有辦法讓mathjax逆轉markdown解析器?

+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 }} 

這是工作,但,這不是美麗的。