標籤:

如何讓hexo代碼高亮?

在hexo上搭建了一個博客,在_config.yml中我也配置了代碼高亮。如下:

highlight:

enable: true

line_number: true

auto_detect: true

tab_replace:

為什麼在發布的博客中顯示的是下圖所示的這種效果,就沒有代碼高亮的,求教大神如何配置。


格式是

```+語言名(比如java)

//代碼內容

```

CSS classes reference

這裡可以看代碼高亮支持的格式,還有化名。

比如oc,你就可以 ```+上objectivec 或者是mm 或者是objc等


由於hexo代碼使用的Markdown語法,Markdown的語法可以參考Markdown語法介紹。所以可以使用Markdown的方式實現代碼的高亮,通常有以下三種方式:

  1. 使用雙空格縮進的方式(這種方式在Hexo中代碼不支持高亮)
  2. 使用```code block```的方式(這種方式在部分情況下可以高亮,但是在我的機器上卻不能實現高亮)
  3. 使用代碼塊的語法,具體可以看Codeblock - Octopress

{% codeblock [lang:language] [title] [url] [link text] %}

code snippet

{% endcodeblock %}

反正最終我使用這種方式在我的hexo博客代碼的高亮


hexo使用highlight.js. 在markdown中用

```cpp

this is cpp code

```

告訴hexo生成帶高亮的codeblock

然而highlight.js支持的格式較少而且好像不太好配置,unix user可以用我寫的一個hexo插件: GitHub - ppwwyyxx/hexo-tag-vimhighlight: Highlight code using vim in hexo.

這個插件調用vim, 把vim的代碼高亮嵌入html. vim里什麼顏色最後blog里就是什麼顏色.


你會發現,你自己渲染出來的是 `keyword` 這種 class ,但是 highlight.js 提供的卻是`hljs-keyword`這種形式,所以 hexo 提供了一個功能,就是給class加上自定義的前綴。

https://github.com/hexojs/hexo-util/blob/master/lib/highlight.js#L8-L10

在這邊加上

hljs.configure({
classPrefix: "hljs-"
});

即可


這個怎麼解決呢?


反引號代碼塊

``` [language] [title] [url] [link text]
code snippet
```

示例:

``` html /blog/index.html Tyrion Yu tyrionyu-blog

&

&

&

&

&Document&

&

&

&

&

```

效果

語言名稱和別名:CSS classes reference


我也有同樣的問題,我試過只放幾行代碼高亮是正常的,但是代碼稍長就不行了。


試試換個寫法。

我一般用

``` yaml

code

```

這種寫法,如果還不行,換下語言名稱如ini,我看你的代碼好像是配置文件,如果還是不能識別,那就使用原生的highlight.js吧,這是一個插件GitHub - Jamling/hexo-filter-highlight: Enhanced code highlighting using highlight.js for Hexo.

只要是highlight.js支持的語言,肯定能夠高亮。


感覺像是 highlight.js 的問題

等我自己弄成功了再來補

因為

我博客現在和你一樣的。。。

---------------------

我回來了

就是@庄鳴真 說的這個樣子

而我的博客沒有高亮是因為

我自己瞎改 css。。。

hexo 本來就有對這種

``` c
int main(){
return main();
}
```

markdown 代碼的自動解析

你只用按照他的格式寫就行了

都會變成換行了的 html 文件

顏色之類的就交給 theme 裡面的 css 解決


推薦閱讀:

github上Markdown不支持LaTeX嗎?
Markdown 圖片如何添加超鏈接?
markdown中插入圖片怎麼定義圖片的大小或比例?
有什麼好用的markdown編輯器嗎?

TAG:Markdown | Hexo |