markdown 高亮代码

在hexo上写了几篇文章后,发现使用markdown的“`”语法插入代码后, 代码区域没有高亮、而且没有行号。。。郁闷,google了一下发现这篇文章里有解决方法,现在记录一下。

常用的“`”来框起一个单词或短句,Markdown最终会转化成<pre></pre><code></code>对于成段的代码块,使用这种方式后代码区域显示出来的没有语法高亮,也没有行号,一点美感都没有,查询Markdown语法,发现了另外一种格式:

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

其中

  • lang 语言
  • title 代码块上方的标题
  • url 为本段代码指定一个url,用于下载或引用
  • link text url显示的文字

以下三个用于控制行号显示

  • start:# 从第#行开始显示行号
  • mark:#,#-# 在第#行,以及第#-#行显示行号
  • linenos:false true 所有行都显示行号,false所有行都不显示行号
    对于lang,这里列出了支持的语言以及对应的字段名,如java,cpp等,以上字段均为可选字段,可以使用默认值,如:
    java代码实例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static void hashMap() {
    Map map1 = new LinkedHashMap();
    map1.put("a3", "aa");
    map1.put("a2", "bb");
    map1.put("b1", "cc");
    Iterator keysIterator = map1.values().iterator();
    while (keysIterator.hasNext()) {
    System.out.println(keysIterator.next());
    }
    }