2016-01-10 56 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-」。我的觀點是,建議的前綴部分似乎是最薄弱的環節,我不希望看到任何一致性。當然,一個正式的規範會清楚這一點,但在那之前,我們只能用我們現有的東西來工作。