Jekyll
我自己倒一直都有很强的写博客的欲望,不过至今未遂,究其缘由,除了太懒,各种博客站点功能花哨,而真正我需要的又往往没有也是一个重要原因。一堆无用功能堆砌起来的复杂工具,往往让我用起来一股抹不掉的鸡肋感,异常别扭,何况写文章当然文字本身最重要了,所有的主题配色字体图片都该是文字的不抢镜的陪衬,可是无论tumblr、点点或者Wordpress,我发现更多时候我是在为是这个模版好看呢还是那个模版好看而纠结。写文字倒成了可有可无的陪衬,所以至今没能写成几篇倒也好像情有可原了。
不过无论如何,欲望确实越来越强烈,鸡肋就鸡肋吧,摩拳擦掌想不如今儿就搭个Wordpress小站,网上搜教程的时候无意却见到另外一个东西:Jekyll。隐隐约约倒好像正是我想要的那个。其实我想要什么呢,很简单:一个让我不分心的能写文章的东西,简简单单就好。而折腾了一下午后,我发现,咦,不多不少,Jekyll就是这样一个东西,我自己还挺兴奋的,当你想要的东西可能还没有那么明确但又确实一直在脑中回旋时,你偶遇一个东西,居然就是你脑中那个混沌欲望的清晰表达,那种妙不可言感,一击即中。
Jekyll是一个利用你预先定义的模版,将你写好的带各式标记的文章转化为静态页面的工具。那相比Wordpress,它好在哪儿?
虽然我说了文章嘛当然文字本身最重要了,可是排版什么的其实大家也在乎的,Wordpress当然可以排出各种你想要的样式,可是往往这得要靠各种零零碎碎的插件或者那个奇丑无比的悬在文首的格式化工具栏来支持,行文一半,兴致刚起却突然发现喂等等,去找插件,扫兴。而Jekyll支持markdown一类的标记语言来完成排版,用文本标记即可,不用比如要支持代码高亮,还得折腾半天去找个后来发现其实效果也不过差强人意的插件而已。
另外呢,用Jekyll写文章时,只需动用纯文本即可,相比博客站点上那些虽然也很直观的格式化文本的工具条,纯文本给人一种更加尽在掌握的错觉,当你在Wordpress上选中一行文字,点颜料板点红色改文字为红时,发生了什么?为什么后面接着写的文字也自作聪明的变成了红色?粘贴进去的一行为什么字体这么丑而大?这一切诡异的行为都在你直觉之外,等好不容易攻克这一个个难关后,你还记不记得其实你只是想写一片文章,而已。
另外Jekyll的一个好处可能只是对我而言,它是使用git管理的,这样每篇文章的改动都会有历史纪录,你可以看到一篇文章的演化过程,对我,这很重要。从初中起我写文章就喜欢乱涂乱画。来回涂改,大篇章删节,或者段落前后挪移再正常不过,我自己是很享受那种大涂大改的感觉,一篇文章最后纸面一团混乱到处都是删除插入和满篇引来引去的箭头才让我有一篇文章完工的感觉。而这几乎在电脑上无法找回了,查看历史版本的迁移算是一个补偿,另外markdown好像也支持cross line,我又能到处瞎删了。
还有Jekyll生成的页面是静态的,相比那些还需各种解释执行的脚本们,它给我一种很轻的感觉,这种感觉很好,毕竟写博客也不是杀猪卖猪肉,太重了没用。
Jekyll的安装很简单,如下即可:
$ gem install jekyll
这之后按照Jekyll能理解的格式来组织你的博客目录Jekyll就能理解并根据你的文本生成静态文件了:
.
|-- _config.yml
|-- _includes
|-- _layouts
| |-- default.html
| |-- post.html
|-- _posts
| |-- 20011-10-25-open-source-is-good.markdown
| |-- 20011-04-26-hello-world.markdown
|-- _site
|-- index.html
|-- assets
|-- css
|-- style.css
|-- javascripts
-
_config.yml
Stores configuration data. -
_includes
This folder is for partial views. -
_layouts
This folder is for the main templates your content will be inserted into. You can have different layouts for different pages or page sections. -
_posts
This folder contains your dynamic content/posts. the naming format is required to be@YEAR-MONTH-DATE-title.MARKUP@
. -
_site
This is where the generated site will be placed once Jekyll is done transforming it. -
assets
This folder is not part of the standard jekyll structure. The assets folder represents any generic folder you happen to create in your root directory. Directories and files not properly formatted for jekyll will be left untouched for you to serve normally.
(read more: https://github.com/mojombo/jekyll/wiki/Usage)
当然完全手工去这样一个文件一个文件的创建也太老实了,有一个算是帮助kick off的项目,直接clone即可:
$ git clone https://github.com/plusjade/jekyll-bootstrap.git USERNAME.github.com
$ cd USERNAME.github.com
$ git remote set-url origin git@github.com:USERNAME/USERNAME.github.com.git
$ git push origin master
这样进到这个项目后:
jekyll --server
你就能在本地4000端口看到你的博客了,当然你可能马上发现这个模版不是你想要的,你可以去http://themes.jekyllbootstrap.com/看看,我用的一个叫tom的模版,还不错,简单的很,后来翻博客才发现这模版就是Jekyll的作者写的,英雄所见略同什么的。不过我还是对这个模版小做了一些修改,这种修改可能就需要对Jekyll有个大致的了解了,这篇文章不错:http://jekyllbootstrap.com/usage/jekyll-quick-start.html
写文章也很简单,安装Jekyll时,顺带的安装了一些rake task,比如:
rake post title="Hello World"
做的事情很简单,就是在_post目录下生成一个post,并把文章标题设好。
值得一提的是,我怀着激动的心情尝试写第一篇文章时,发现老是内容出不来,后来才知道是默认用的markdown渲染引擎对中文支持有问题,在_config里设置
markdown: rdiscount
即可。
总之,相当愉快,既然整个博客都是用这个工具搭建的,第一篇也就献给这个工具了。算是一个开始。