2014-09-04 2 views
0

Просто интересно, удалось ли мне сделать фрагменты кода в блоге/сообщениях с болтом?Фрагменты кода в Bolt CMS

В настоящее время я использую Google Code Prettify для выполнения моих фрагментов кода, но часто Bolt не позволяет мне сохранять или публиковать сообщения и запись, потому что я думаю, что болт не позволяет пользователю публиковать определенный код в сообщении в блоге. Например, при отправке некоторых фрагментов кода PHP, когда я добавляю функцию «substr» в Bolt, я не буду оставлять запись.

Много другого кода, в который я могу положить его, но некоторые вещи, которые он не позволит мне опубликовать.

Есть ли способ обойти это?

Заранее благодарен!

P.S: Использование GitHub 'Gists' отлично работает, но я бы предпочел не использовать этот метод.

ответ

1

Bolt позволяет вам определить поле как Markdown в вашем файле конфигурации contenttypes.yml.

В поле Markdown, то вы можете ввести код в два набора тройных обратные кавычки, как так:

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

или заверните его в предварительно тэгом:

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

Я повторно в библиотеку JavaScript CodeMirror уже присутствующих в Болте.

В моей _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> 

Далее в JavaScripts/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 с сайта codeMirror и добавьте их к включенным ссылкам на скрипт.

В целом, это дало мне синтаксис, выделенный код sniplets, без красивой печати заранее. Я сожалею о конструкции textarea, но могу заменить его частью jQuery, которая преобразует блок в блок textarea. Я разрешаю редактирование кода как удобство, но CodeMirror очень настраиваем, и вы можете это прекратить.

NB: Я только начинаю с Bolt, поэтому может быть лучший способ для этого. Возможно, мне нужно создать расширение Bolt для этого.