netwjx

混乱与有序

在Octopress中使用代码高亮

| 评论

Octopress中使用代码高亮, 实际就是JekyllPygments代码高亮, 效果如下

``` js Javascript Hello World 
    alert('hello world');
```

效果

Javascript Hello World
1
alert('hello world');

而默认安装Octopress时对代码高亮还是不支持的, 还需要安装Python, 我没有使用ActivePython, 而是CPython, 安装好后应该会有c:\Windows\System32\python27.dll.

但是现在还可能会出现Could not open library’.dll’的问题.

下面的修改会和版本有关, 我目前使用的Octopress版本是2.0 2012/3/8 Commit:9f40242b1e7eb0098f0ef3c508c7bed7e647b982

Gemfile.lock33行

pygments.rb (0.1.3)

修改为

pygments.rb (0.2.11)

以及40行

rubypython (0.5.1)

修改为

rubypython (0.5.3)

注意上面的修改不要改变原有的缩进, 然后在命令行下执行

bundle install

这将会使用bundler这个依赖管理工具安装新版本的pygments.rbrubypython.

如果还有问题请参考Windows 8安装Octopress记录部署Python部分.

Octopress代码高亮的工作原理

如果上面的还是不能使用代码高亮就需要了解原理之后在自行判断如何处理.

Octopress的代码高亮实际是Jekyll的代码高亮, 其中插件Backtick Code Blocks Code Blocks Include Code 这些插件都有代码高亮功能, 其代码高亮都使用Pygments Code插件, 这个插件如名字所示, 其使用的gem库是pygments.rb.

pygments.rb包含有pygments的代码, 可以在Ruby安装目录下的\lib\ruby\gems\1.9.1\gems\pygments.rb-0.2.11\vendor中看到.

使用bundler安装pygments.rb时会自动的安装它依赖的rubypython.

pygments.rb使用rubypython的方式为ffi, 这个是ruby中调用C语言写的库的工具, 在这里是调用python27.dll.

备用方案

上述的方法还是不能正常使用代码高亮的话, 还可以使用一些后备的方法.

Gist插件

github:gist上贴代码, 并使用类似下面的代码

{% gist 2436351 %}

将展示为

Gist Tag 插件的更多资料

jsFiddle插件

这个更适合用于web前端相关的html css js的展示, 使用类似下面的代码

{% jsfiddle 3h5A4/3 %}

将展示为

jsFiddle Tag 插件的更多资料

评论

Fork me on GitHub