只是想知道我是否能够用bolt在博客/入门文章中做代码片段?
我目前正在使用谷歌代码Pretify来做我的代码片段,但博尔特通常不让我保存或发布和输入,因为我认为博尔特会阻止用户在博客中发布某些代码。例如,在发布一些PHP代码片段时,当我在Bolt中放入"substr"函数时,将不允许我保存条目。
我可以把它放在很多其他代码中,但有些东西它不会让我发布。
有办法解决这个问题吗?
提前感谢!
p.S:使用GitHub的Gists很好,但我不想使用那种方法。
Bolt允许您在contenttypes.yml配置文件中将字段定义为Markdown。
在Markdown字段中,您可以在两组三重回溯中输入代码,如下所示:
```php
substr('abcdef', 1, 3);
```
或者将其包装在预标签中:
<pre class="brush: php">
substr('abcdef', 1, 3);
</pre>
我重用了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构造感到遗憾,但可以用jQuery部件来替换它,该部件将块转换为textarea块。为了方便起见,我让代码可以编辑,但CodeMirror是非常可配置的,您可以停止这种情况。
NB:我刚从博尔特开始,所以可能有更好的方法。。也许我应该创建一个Bolt扩展来实现这一点。