2016-01-10 24 views
0

有几个标签用于代码语法荧光笔,例如precode。如何使它们在同一个站点兼容?如何使代码语法荧光笔兼容?

# Use PreCode for Windows Live Writer 
<pre class="brush: py; toolbar: false;"> 
... 
</pre> 

# Install the plugin SyntaxHighlighter Evolved (for WordPress), the source codes will render as: 
<div id="highlighter_539499" class="syntaxhighlighter python"> 
... 
</div> 

# in markdown, insert code blocks by: 
```python 
... 
``` 
# will render as: 
<pre><code class="python"> 
... 
</code></pre> 

# OR 
[code lang=python] 
... 
[/code] 

PS:我安装插件演进SyntaxHighlighter的,使用前置码在Windows Live Writer进行离线博客和网上博客WP降价编辑

回答

2

令人沮丧的是,这没有标准。 HTML5规范提供了一个suggestion,但后来专门统计,这是不是一个正式的规范:

没有正式的方式来表示计算机代码被标记了的语言。希望使用所用语言标记code元素的作者,例如以便语法突出显示脚本可以使用正确的规则,可以使用class属性,例如,通过向元素添加前缀为“language-”的类。

一个例子还提供了:

下面的例子说明了如何一个代码块可以使用预先与代码元素被标记。

<pre><code class="language-pascal">var i: Integer; 
begin 
    i := 1; 
end.</code></pre> 

在该示例中使用了一个类来指示使用的语言。

由于这只是一个建议,没有人需要关注它。我的建议是使用任何不支持HTML5建议格式的语法高亮项目来提交错误报告。如果他们不想打破与现有用户的向后兼容性(可以理解),他们总是可以添加第二种格式(有些项目已经这样做了)。如果每个人都这样做,那么最终每个人都会使用相同的格式,而当前的差距将不再存在。如果您需要一些关于为什么HTML5规范是好格式的论点,我相当长的analysis(从几年前开始)可能会有所帮助。

关于“language-”前缀的最后一句话。虽然一些荧光笔确实接受它,但我没有看到任何需要它的东西。而且,实际上,大多数Markdown实现(支持[非标准]隔离代码块)不会插入前缀。如果你真的想要的前缀,那么你可以自己添加到您的减价:

```language-python 
... 
``` 

我也接触过一些荧光笔也接受替换的前缀:“lang-”。我的观点是,建议的前缀部分似乎是最薄弱的环节,我不希望看到任何一致性。当然,一个正式的规范会清楚这一点,但在那之前,我们只能用我们现有的东西来工作。