分类: jekyll      标签:jekyll, tutorial     

Jekyll建站之旅

这是一个相当困难的过程⋯⋯

一周前,我还不知道Jekyll,也没有听说过markdown,尽管它们早就在那里已经很多年了。甚至查询文档,大多都是几年前的东西,自己的无知暴露无疑。只关注与日常工作相关的内容,渐渐成了井底之蛙。

看看我遇到的纠结问题,或许会让你少走些弯路。

意外邂逅

忘记是搜索什么问题了,偶然的撞进了一个人的博客,看到他的文章列表里很多都是在讲 Octopress 的东西,很好奇的进入,于是看到了 Jekyll ⋯⋯

鉴于对庞大 Wordpress 那么丁点的了解,很自然的认为 Octopress 也一样,庞大的要付出很多学习成本,即使会用了,对底层不够了解,心里仍然会觉得空落落的不放心。于是果断的准备要用它的本源 Jekyll 去构建自己的博客。

恶补各种知识⋯⋯

开始:补充基础知识点

最全面的资料莫过于官网的 Jekyll Wiki 了。强烈建议把它的 Home 页上所有的链接地址都点一遍,涵盖了 Jekyll 博客的所有知识。如果本文中有哪些Jekyll用到的知识没有介绍到链接地址,那么在这个Wiki中都可以找到。

开始自己对 Jekyll 相关知识的了解匮乏而混乱,发现哪儿不知道了,就去搜素、查找,对 Jekyll 没有一个全面的认识。等所有的都看过了,回过头来才发现 Jekyll Wiki 才是最全面的。⋯⋯从零开始,理解这些内容将是一个庞大的工程。

搭建:基于Jekyll Bootsharp建站

开始这个站点是通过拷贝 http://jekyllbootstrap.com 这个网站提供的github模板,但是并不是这个网站的代码。这个网站也是官方Wiki上推荐的教程,有详细的解释、示例和帮助文档。

*如果是国人建的网站肯定不会把简称定义为JB的:-<

对我来说,开始的过程还是喜欢用实例一步步构建,发现了一份迟到的文档 一步步构建Jekyll网站 ,这是一篇译文,但是对初学者理清概念相当不错,值得多读几遍。

仔细研究 Jekyll Bootsharp 的代码以对整个Jekyll网站有全面的了解,发现 _layout 中的文件绕了一个大圈去引用 _include 中定义的 Twitter Bootstrap 中的内容,感觉很不爽。于是根据教程放弃了这个框架,开始从最基本的文件构建,一切简简单单,去掉一切我不需要的东西,把一切都置于掌控之中,感觉很棒。

写作:没有GFM的纠结

网站建好了就开始写些东西。Markdown真的很让人有写作的欲望,一方面简单得几乎完全是我要写的东西,去掉一切样式,另一方面则是语法的优美,虽然不是完全的所见即所得,但能够看到的仍然是那么优美。

在GitHub上写评论都用它的GFM语法,尤其是 ``` 语法高亮让我痴迷,也想让自己的网站加上这个东西,但是几番折腾后,我还是放弃了。GitHub Pages 不允许用户运行自己的后台代码,因此基于 .rb 的插件都不能使用了。

如果不用GitHub Pages托管自己的网站,可以用这个插件:Jekyll plugins ,它可以支持Markdown应用 ``` 来定义语法高亮。另外作者还专门针对写插件的过程做了介绍:How to extend the Redcarpet 2 Markdown library? (GitHub上很多内容都是基于Redcarpet2来转换),有兴趣可以研究一二。我甚至跑去问这个插件的作者怎么办,他说目前只能先生成html再上传了,郁闷!

这个过程中还发现这里有关于怎么在Marked中使用GFM语法的介绍,我甚至还比较这个插件和上面插件的源码,他们都基于对Redcarpet的自定义,看得懂,试了几次却不知道怎么改==!!

*另外过程中还发现,RDiscount比Redcarpet似乎更好使,对自动转换格式更符合标准的Markdown语法

鉴于以上种种,最后不得不退回到最原始的 highlight language 的方式,这种方式目前我发现的最大缺点就是不能把整个代码块缩进排版,其实是对上下的关系没能解析对。先忍了,大不了注意点儿

总结

无论如何,纠结之后,能改的都改了,不能改变的只能默默忍受,期待大牛们的开发了。

对整个过程再做下总结:

  1. 阅读一步步构建Jekyll网站 ,对整个要做的事有基础的了解。
  2. 根据上一步不懂的去查阅资料,只要两个地方就很齐全了:

补充:在我搜索如何设置A记录和CNAME时,发现这里还有一篇从0开始建站的博客文章 使用Github Pages建独立博客

-EOF-


blog comments powered by Disqus