一段废话:
其实早就知道可以用google-code-prettify来设置高亮,但是比较懒,现在才折腾了一下。看见好看的代码高亮,心情都变好啦~
感觉博客园的代码高亮,尤其是Markdown编辑模式下的,可定制性好差。可是在博客园发博客比在自己的独立博客发要比较方便(我的独立博客用的是hexo静态博客),而且也习惯了在这里发布。
首先说一下用pretty的缺点
- 之前的TinyMCE编辑器下发布代码,如果是插入代码的两个按钮里的右边的那个,pretty渲染后会变成错乱的,
<span>
标签都会显示出来。
解决方法就是手动去改以前的文章(这个过程可以让你逃避一下复杂的现实世界,还可以回顾一下以前写过的东西,好吧。。其实就是要花很长时间去干重复的工作)。 - 如果要设置行号,Markdown编辑模式的代码会渲染成一行一块,很奇怪,因为每一行都有
<code>
标签,所以只好选择不要行号。
接下来是设置的步骤
首先要确保你已经开启js功能。
jQuery博客园已经自动加载了。就不用我们加了。
prettify.js是在这里下载的:https://code.google.com/p/google-code-prettify/
我把它传到了博客的文件里。
博客设置页面的页脚Html代码:
<script src="http://files.cnblogs.com/files/flipped/prettify.js"></script>
<script type="text/javascript">
(function() {
$("pre").addClass("prettyprint");
prettyPrint();
})();
</script>
- 配色和字体
默认的配色不喜欢,可以设置css,推荐参考https://jmblog.github.io/color-themes-for-google-code-prettify/
例如我的就是:
/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */
.pln{color:#4d4d4c}ol.linenums{margin-top:0;margin-bottom:0;color:#8e908c}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#fff;list-style-type:decimal!important;}@media screen{.str{color:#718c00}.kwd{color:#8959a8}.com{color:#8e908c}.typ{color:#4271ae}.lit{color:#f5871f}.pun{color:#4d4d4c}.opn{color:#4d4d4c}.clo{color:#4d4d4c}.tag{color:#c82829}.atn{color:#f5871f}.atv{color:#3e999f}.dec{color:#f5871f}.var{color:#c82829}.fun{color:#4271ae}}
/*下面是我设置背景色,字体大小和字体*/
.cnblogs-markdown code{
background:#fff!important;
}
.cnblogs_code,.cnblogs_code span,.cnblogs-markdown .hljs{
font-size:16px!important;
}
.syntaxhighlighter a, .syntaxhighlighter div, .syntaxhighlighter code, .syntaxhighlighter table, .syntaxhighlighter table td, .syntaxhighlighter table tr, .syntaxhighlighter table tbody, .syntaxhighlighter table thead, .syntaxhighlighter table caption, .syntaxhighlighter textarea {
font-size: 16px!important;
}
.cnblogs_code, .cnblogs_code span, .cnblogs-markdown .hljs{
font-family:consolas, "Source Code Pro", monaco, monospace !important;
}
- 然后就大功告成啦~~O(∩_∩)O~~