在octopress中设置语法高亮

看下文章的发布时间,就知道本屌又折腾了好几个小时才把这高亮弄出来,为了让大家少走弯路,都没去陪女朋友睡觉,明天一顿搓衣板是少不了了,大家觉得本文要是有用,就点击下方的赞助,我这顿搓衣板也算没白跪。

闲话不多说,大家在写博文的时候,作为程序员肯定少不了贴代码,而装完octopress后,默认没有语法高亮的功能,让文章看上去着实不爽啊,下面就给大家介绍如何让代码高亮。

以下是Octopress官方的原文:

Sharing code is important, and blogging about it should be easy and beautiful. That’s why Octopress is packed with features to make blogging your code a breeze. Though Jekyll comes with support for Pygments syntax highlighting, Octopress makes it way better. Here’s how.

  • A Sass port of Solarized syntax highlighting created specifically for Octopress.
  • Gist code embedding – by Brandon Tilly.
  • Insert code snippets from your filesystem with a download link.
  • Easy inline code blocks with <figureand <figcaptionand optional download links.
  • Pygments caching – a Jekyll community plugin.

译文: 在博客上共享代码片段应该是简单的,并且代码应该具有简单的高亮功能。Octopress也具有这种功能,在jekyll上,其使用的是pygment来实现代码高亮的功能,Octopress实现的更好。在Octopress上面有下面几种选择:
– 使用Solarized高亮主题来实现
– 从自己的文件系统中插入代码片段,该代码具有下载链接。
– 简单的内嵌代码块带有<div class='bogus-wrapper'><notextile><figure><figcaption>和可选的下载链接。
– Pygments caching。

这里我们选用 Pygments 实现语法的高亮,来到我们的 Pygments官网 在左边栏我们可以看到:

pip install Pygments

所以,我们需要先安装 pip ,才能继续安装 Pygments,下面详细介绍安装的步骤:

1、安装python

在window下面安装python真是so easy,直接在官网下载后,全部 next 安装,但是注意python的版本选择非常重要,我今晚就是卡在这里了,本屌以前觉得python非常屌,而且本屌一向是只装最新版不装稳定版,在很久以前装了python 3.x的版本,导致用语法高亮后 rake generate 一直报错,最后把python版本换成2.7后才成功,所以到今天(2014-05-10应该是11号)你必须选择 python 的版本为2.7,装完之后,记得把python的目录加入到环境变量中,这里也可以预先将 script 目录同时加入到环境变量中,因为之后用pip时需要。

2、安装easy_install

装这个是为了下一步安装pip,先去下载 ez_setup.py ,然后进行安装

1
py ez_setup.py install

3、安装pip

下载pip,解压后,切换到pip目录,进行安装。

1
2
3
cd pip
python setup.py install
easy_install pip #需要将python目录下的script加入到环境变量中

4、安装Pygments

pip install Pygments
gem install pygments.rb #安装pygments.rb,gem 在上一篇中搭建blog的时候已经安装

5、修改_config.yml

1
2
#pygments: false # default python pygments have been replaced by pygments.rb
pygments: true

以上步骤,语法高亮的配置全部完成,这时你可以进行测试:

```c c's code
#include<stdio.h>
int main(void) {
    printf("Welcome to zhangzy's blog");
    return 0;
}
```
``` java java's code
public class Test {
    public static void main(String[] args) {
        System.out.print("Welcome to zhangzy's blog");  
    }
}
```

显示如下:

c’s code
1
2
3
4
5
#include<stdio.h>
int main(void) {
  printf("Welcome to zhangzy's blog");
  return 0;
}
java’s code
1
2
3
4
5
public class Test {
  public static void main(String[] args) {
      System.out.print("Welcome to zhangzy's blog");  
  }
}

Comments