Ghost代码高亮

Ghost本身的代码高亮是很粗糙的,如下:

//This is code sample
int x = 0;
int y = 1;
x = y++;
...

但是代码至少应该像下面这样才好看啊!

//This is code sample
int x = 0;
int y = 1;
x = y++;
...

翻了翻ghost的论坛,发现了prism,使用可以参考这里

下载css/js的时候可以选择自己需要的高亮语言等。

这样就又需要修改server上用来更新ghost的bash了:

#copy prism js/css to content and use it (to highlight codes)
cp ~/prism/prism.js ./content/themes/casper/assets/js/
cp ~/prism/prism.css ./cotent/themes/casper/assets/css/
sed -i 's~<link rel="stylesheet" type="text/css" href="{{asset "css/screen.css"}}" />~<link rel="stylesheet" type="text/css" href="{{asset "css/screen.css"}}" /><link rel="stylesheet" type="text/css" href="{{asset "css/prism.css"}}" />~g' ./content/themes/casper/default.hbs
sed -i 's~<script type="text/javascript" src="{{asset "js/index.js"}}"></script>~<script type="text/javascript" src="{{asset "js/index.js"}}"></script><script type="text/javascript" src="{{asset "js/prism.js"}}"></script>~g' ./content/themes/casper/default.hbs

~Tada~

开始愉快的贴代码吧~


其实这里和ghost是有一点冲突的。

在ghost里,markdown对code的语法是:

 ```language-markdown
 code here
(**注意**:Prism依赖language;而Ghost对language的识别,要求起始和结束的```前面不能有tab/空格,不然就遇到了下面的情况)

或者
```language-markdown
	code(注意前面的tab/空格)

这一般情况下OK,但是markdown还有分组的语法也是通过tab/空格,如下

- A
	- Aa
    - Ab
- B
	-Ba
    -Bb
- C
	-Ca
    -Cb

所以冲突就在这里:在分组里面的code,如果想高亮(用prism)的话,就需要打破用于标识分组的tab/空格,而这会导致后续的分组显示不正确(尤其是在使用数字标号来分组的情况下,数字的累加就重置了)。

从冲突的优先级来看(识别language < tab/空格来标识code),Ghost应该不会改了。。。T_T