2014-02-20 36 views
0

我正在努力解決以下問題:我想在我的頁面上包含一些代碼示例。他們大多是php,而且還有htmljsTwig,輸出轉義和語法高亮JS插件

我最好的選擇是使用一些基於js的語法熒光筆。我選擇SyntaxHighlighter,因爲很多人在SO和其他網站上推薦這個。

但是輸出在樹枝中逃逸怎麼樣?當然,默認轉義會導致代碼顯示漂亮的轉義,但這不能正常工作。使用|raw來使這項工作產生其他顯而易見的問題:如果呈現html,它會中斷頁面​​,或者如果呈現javascript,則會中斷腳本。

另一個問題是,所有我需要逃脫混合輸出,如:

(some text, with html formatting) 

<code class="someclass"> 
    (block of code) 
</code> 

(some another text) 

<code class="anotherclass"> 
    (another block of code) 
</code> 

擁有所有這些事實,我想 - 讓我們寫我們自己的枝條過濾器!這聽起來不錯,但即使我能夠讓它運行,我也不會按照我想要的方式工作。

他們以爲我爲什麼要重新發明輪子? Twig和Symfony2已經出現多年了,可能其他人已經解決了這個問題,並且做得很好,安全。

我要找的四兩件事之一:

  1. 定製樹枝過濾器來處理這個問題,或
  2. 更好的語法着色腳本,將處理由嫩枝逃脫輸出,或
  3. 一些其他解決方案,或
  4. 任何有用的提示。
+0

有'{%verbatim%}'標記,也許這就是你要找的東西(?)http://twig.sensiolabs.org/doc/tags/verbatim.html –

+0

是的,沒有。查看我的變量內容示例(text-code-text-code) - 只有代碼應該被轉義。 jnunez提供了有趣的答案,我會給它一個鏡頭。 – ex3v

回答

1

看一看本手冊:

http://isometriks.com/geshi-symfony2-and-twig-extensions

它爲我工作。

+0

看起來很有希望!當我回家時,我會試試看。謝謝! – ex3v

+0

過了一段時間,我得到了它的工作。我必須解決的問題是弄清楚沒有包含CSS,所以我必須自己寫。不管怎樣,謝謝! :) – ex3v