2014-09-04 66 views
0

想知道我是否能夠用螺栓在博客/入口帖子中做代碼片段?Bolt中的代碼片段CMS

我目前使用Google Code Prettify做我的代碼片段,但通常Bolt不會讓我保存或發佈和條目,因爲我認爲螺栓防止用戶在博客文章中張貼某些代碼。例如,當我在Bolt中放置「substr」函數時,發佈一些PHP代碼片段不會讓我保存條目。

很多其他代碼我可以把它放進去,但某些東西它不會讓我發佈。

有沒有辦法解決這個問題?

在此先感謝!

P.S:使用GitHub'Gists'工作正常,但我寧願不使用該方法。

回答

1

Bolt允許您在contenttypes.yml配置文件中將字段定義爲Markdown。

在減價場,那麼你可以在裏面兩套三重反引號的輸入代碼如下所示:

```php 
substr('abcdef', 1, 3); 
``` 

或者在預先標記包裝它:

<pre class="brush: php"> 
substr('abcdef', 1, 3); 
</pre> 
0

我重用CodeMirror javascript庫已經出現在博爾特內。

在我自己的_footer.twig我加了以下幾行:

<link rel="stylesheet" href="{{ paths.app }}view/lib/ckeditor/plugins/codemirror/css/codemirror.min.css"> 
<script src="{{ paths.app }}view/lib/ckeditor/plugins/codemirror/js/codemirror.min.js"></script> 

接下來的的JavaScript/app.js我說:

$(function() { 
    $("textarea.code").each(function(i,el) { 
    CodeMirror.fromTextArea(el, { 
     lineNumbers : true 
    });  
    }); 
}); 

現在,當我創建了一塊內容代碼在其中我將視圖更改爲代碼並將代碼放在標記之間:

<textarea class="code""> 
10 Print "Hello" 
20 goto 10 
</textarea> 

您可以添加語法highlighti ng代碼鏡像站點中的js文件並將其添加到包含的腳本鏈接中。

總之,這給了我語法高亮的代碼sniplets沒有提前漂亮的打印。我對textarea構造感到後悔,但可以用一個將塊轉換爲textarea塊的jQuery部件替換它。我讓代碼作爲一種方便的方式進行編輯,但CodeMirror是非常可配置的,你可以阻止它。

注意:我剛開始使用螺栓,因此可能有更好的方法。也許我應該創建一個螺栓擴展來做到這一點。