Bolt CMS中的代码片段

时间:2014-09-04 01:48:00

标签: php code-snippets bolt-cms

只是想知道我是否能够使用bolt在博客/条目帖子中进行代码片段?

我目前正在使用Google Code Prettify来执行我的代码段,但是Bolt通常不会让我保存或发布和输入,因为我认为bolt会阻止用户在博客帖子中发布某些代码。例如,在我放置" substr"时发布一些PHP代码片段。 Bolt中的功能不允许我保存条目。

很多其他代码我可以把它放进去,但某些事情它不会让我发布。

有什么方法吗?

提前致谢!

P.S:使用GitHub' Gists'工作正常,但我宁愿不使用那种方法。

2 个答案:

答案 0 :(得分:1)

Bolt允许您在contenttypes.yml配置文件中将字段定义为Markdown。

在Markdown字段中,您可以在两组三重反引号中输入代码,如下所示:

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

或者将其包装在预标签中:

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

答案 1 :(得分:0)

我重用了Bolt中已存在的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>

接下来在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> 

您可以从codeMirror站点添加突出显示js文件的语法,并将其添加到包含的脚本链接中。

总而言之,这给了我语法突出显示的代码片段,而不需要提前打印。我确实后悔textarea构造,但可以用一个将块转换为textarea块的jQuery部分替换它。我让代码可以编辑,但是CodeMirror非常易于配置,你可以停止它。

注意:我刚刚开始使用Bolt,所以可能有更好的方法。也许我应该创建一个Bolt扩展来做到这一点。