在Octopress中添加语法高亮
本文主要为你讲解如何在Octopress中支持语法高亮,主要参考了Octopress的官方文档,如果你有兴趣,可以直接参考它的官方文件shareing code snippets。
反引号的代码块
使用backtick_codelock
过滤器,可以使用Github的最适用的代码高亮块。使用三个反引号开始,后面跟着一个空格,接下来是高亮语言,具体如下所示:
语法
|
|
必选项
[language]
- 指明你所使用的语言: objc、js、html、bash、ruby…[title]
- 代码标题[url]
- 代码链接,点击这个可以下载你的代码[link text]
- 对链接的解释文本,默认是link
可选项
start:#
- 行号从哪里开始mark:#,#-#
- 标记某一行代码linenos:false
- 对高亮代码块不添加行号
example
一个有关app delegate的效果如下:
它使用的markdown代码如下:
|
|
注意:各个选择之间用空格分开,markdown会根据关键字自动识别相关的language,title,url条目。
如果引用的语句只有一段,不分行,可以用 ` 将语句包起来: `inline codeblocks`
使用Code Block的方式
目前自己的博客这种方式用的比较多,前面写的文章目前全部修改成为了这种方式,感觉这种方式和pygnment
的方式差不多,之前全部采用的是pygnment的方式,利用正则表达式把所有文章的代码高亮全部改成了使用code block
。它的具体语法如下所示:(与pygnment很相似,指定语言即可)
|
|
和之前描述的类似,中括号的内容是可选的。
使用转义字符串
转义字符串:&符号+实体名字+分号
或者 &符号+#实体编号+分号
。比如,要显示小于号(<),就可以写 <
或者 <
HTML ASCII 参考手册:http://www.w3school.com.cn/tags/html_ref_ascii.asp
使用正则表达式替换
这种方式可以替换博客内容,使得博客中所有文章的代码高亮使用Code Block
。自己使用的是sed
来完成的操作,似乎都没有用到正则表达式,只是简单的替换,做个简单的记录吧。
替换方法
进入到source/_posts
目录下,在终端输入如下代码:
上面将会把当前目录下的含有{\% highlight的文件的那行都显示出来,中间会将含有该特殊字符的行都打印出来,中间可以看到自己的博客内容都用到了哪些类型文件的语法高亮,将对应的代码高亮进行替换即可。
其实这种方式就是简单的搜索替换,应该算不上使用正则表达式了,只是写下来做下笔记了,防止以后再用具体操作如下所示:
Gist代码内嵌
当使用这种方式的代码高亮时,仅仅需要的是gist的id,对gist不了解的可以上google搜索下,个人的理解是,gist对每段用户上传的代码段都会有一个对应的id,当用户给出对应的代码的id后,将会从gist上面下载对应的已经高亮的html文件,最终在用户的页面上显示出来。
语法
|
|
example
|
|
上述代码的片段在Octopress中的markdown文件中输入之后,得到的效果如下: