如何讓hexo代碼高亮?
在hexo上搭建了一個博客,在_config.yml中我也配置了代碼高亮。如下:
highlight: enable: true line_number: true auto_detect: truetab_replace:
為什麼在發布的博客中顯示的是下圖所示的這種效果,就沒有代碼高亮的,求教大神如何配置。
格式是
```+語言名(比如java)
//代碼內容```
CSS classes reference
這裡可以看代碼高亮支持的格式,還有化名。比如oc,你就可以 ```+上objectivec 或者是mm 或者是objc等由於hexo代碼使用的Markdown語法,Markdown的語法可以參考Markdown語法介紹。所以可以使用Markdown的方式實現代碼的高亮,通常有以下三種方式:
- 使用雙空格縮進的方式(這種方式在Hexo中代碼不支持高亮)
- 使用```code block```的方式(這種方式在部分情況下可以高亮,但是在我的機器上卻不能實現高亮)
- 使用代碼塊的語法,具體可以看Codeblock - Octopress
{% codeblock [lang:language] [title] [url] [link text] %}
code snippet{% endcodeblock %}
反正最終我使用這種方式在我的hexo博客代碼的高亮
hexo使用highlight.js. 在markdown中用
```cppthis 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
&
&
&
&
&
&
&
&
&
```
效果
語言名稱和別名: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編輯器嗎?