只是想知道我是否能够用螺栓在博客/条目帖子中做代码片段?
我目前正在使用 Google Code Prettify 来制作我的代码片段,但 Bolt 通常不会让我保存或发布和条目,因为我认为 Bolt 会阻止用户在博客文章中发布某些代码。例如,当我将“substr”函数放入 Bolt 时发布一些 PHP 代码片段时,我不会保存条目。
我可以放入许多其他代码,但某些内容不允许我发布。
有没有办法解决?
提前致谢!
PS:使用 GitHub 'Gists' 工作正常,但我宁愿不使用这种方法。
只是想知道我是否能够用螺栓在博客/条目帖子中做代码片段?
我目前正在使用 Google Code Prettify 来制作我的代码片段,但 Bolt 通常不会让我保存或发布和条目,因为我认为 Bolt 会阻止用户在博客文章中发布某些代码。例如,当我将“substr”函数放入 Bolt 时发布一些 PHP 代码片段时,我不会保存条目。
我可以放入许多其他代码,但某些内容不允许我发布。
有没有办法解决?
提前致谢!
PS:使用 GitHub 'Gists' 工作正常,但我宁愿不使用这种方法。
Bolt 允许您在 contenttypes.yml 配置文件中将字段定义为 Markdown。
在 Markdown 字段中,您可以在两组三重反引号内输入代码,如下所示:
```php
substr('abcdef', 1, 3);
```
或者将其包装在 pre 标签中:
<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 构造感到遗憾,但可以将其替换为将块转换为 textarea 块的 jQuery 部分。我让代码可编辑是为了方便,但 CodeMirror 是非常可配置的,你可以停止它。
注意:我刚开始使用 Bolt,所以可能有更好的方法。也许我应该创建一个 Bolt 扩展来做到这一点。