一个月前开始尝试用Jekyll搭建自己的个人博客,也因此开始了解Markdown这个轻量级标记语言。当然刚开始不是很熟悉,只是照葫芦画瓢,生搬硬套,没有仔细了解Markdown的语法,一开始没有遇到什么问题,顺风顺水,以为自己就会了。顶多遇到一些语法问题,自己去查一查文档(比如这个Markdown语法说明(简体中文版))就好了。

最近的一篇博客中,尝试着使用列表(list),但是显示出来的结果总是不对。

下面是中文列表:
- 结论一
- 结论二
- 结论三

上面的结果得到的却是下面这样:

下面是中文列表: - 结论一 - 结论二 - 结论三

很明显这不是我们想要的结果。在网上查找了一些资料,很多都说是Jekyll默认的Markdown引擎maruku导致的。然后我修改了配置文件,把Markdown引擎设置成rdiscount,但是也没有解决这个问题。

而且奇怪的是,在Markdown编辑器中,这个是可以显示正确的:

list in markdown

也就是说Markdown其实可以正确地解释并显示中文列表,但是Jekyll中却不行。很奇怪。

参考了官方文档,仔细研究了很久也没有发现到底怎么回事。最后只能用一个最笨的方法,找一些中文博客,参考他们是如何处理这个问题的。于是找啊找,想找一个使用了列表的中文博客也没那么简单,好歹最后还是让我找到了。仔细对比了每一行,发现好像没有别的差别,唯一的就是中间少了一空行。加上空行之后,显示结果正确了!

下面是中文列表:

- 结论一
- 结论二
- 结论三

正确显示的结果:

下面是中文列表:

  • 结论一
  • 结论二
  • 结论三

注意冒号的下一行应当空出来,然后再是列表项。原来是空行的问题!再去阅读了文档之后才知道,原来Jekyll段落之间是用空行来区分的,多个空行效果一样。所以这里应当是我的书写不规范造成的,但是有意思的是,Markdown中却能正确处理并显示出来。可见Jekyll的解释器和Markdown并不完全一致,不知道是什么原因造成的。

The end.