<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>SeanLou的博客</title>
  <link href="http://lxj.name/atom.xml" rel="self"/>
  <link href="http://lxj.name/"/>
  <updated>2011-05-27T06:51:48-07:00</updated>
  <id>http://lxj.name/</id>
  <author>
    <name>SeanLou</name>
    <email>louxiaojian@gmail.com</email>
  </author>
  
    <entry>
      <title>(转载)应用jekyll构建基于github page的博客</title>
      <link href="http://lxj.name/github/2010/09/20/saberma-github-page-blog-build-with-jekyll.html"/>
      <updated>2010-09-20T00:00:00-07:00</updated>
      <id>http://lxj.name/github/2010/09/20/saberma-github-page-blog-build-with-jekyll</id>
      <content type="html">&lt;p&gt;基于github page的博客好处:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简单至极，且完全免费&lt;br /&gt;
可以支持rss订阅，评论功能&lt;br /&gt;
依赖于git，文章原生支持版本控制(对比)，更有利于知识库类文章&lt;br /&gt;
可以使用vim编写文章，写的时候像在写代码，更符合程序员的习惯&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本博客此次除了启用全新个人域名saberma.me，将做以下调整&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;美化网站风格，更加的清新:)&lt;br /&gt;
页面布局调整为html5、css3架构&lt;br /&gt;
文章可按分类显示&lt;br /&gt;
代码增加高亮显示&lt;br /&gt;
增加rss feed输出&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;挑个新的博客模板&lt;/h2&gt;
&lt;p&gt;要求是基于html5、css3的免费模板，google之，发现个好地方: &lt;a href=&quot;http://freehtml5templates.com&quot;&gt;http://freehtml5templates.com&lt;/a&gt;&lt;br /&gt;
一页一页的挑吧，总会找到自己喜欢的，可以根据右下角的Tag Cloud进行筛选，现在看到本站的新样子就是找好久才看中的模板&lt;/p&gt;
&lt;h2&gt;绑定独立域名&lt;/h2&gt;
&lt;p&gt;在godaddy中注册 &lt;a href=&quot;http://saberma.em&quot;&gt;saberma.me&lt;/a&gt; 域名，.me专用于博客类型，但比.com贵一些，且没有优惠&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;注册完域名后，在域名管理中增加A record并指向207.97.227.245&lt;/li&gt;
	&lt;li&gt;在你的github项目下增加CNAME文件，内容为你的域名，如 &lt;a href=&quot;http://github.com/saberma/saberma.github.com/blob/master/CNAME&quot;&gt;http://github.com/saberma/saberma.github.com/blob/master/&lt;span class=&quot;caps&quot;&gt;CNAME&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;具体参考 &lt;a href=&quot;http://pages.github.com&quot;&gt;http://pages.github.com&lt;/a&gt; 中 &lt;code&gt;Custom Domains&lt;/code&gt; 部分的内容&lt;/p&gt;
&lt;h2&gt;pygments代码高亮&lt;/h2&gt;
&lt;h3&gt;安装pygments&lt;/h3&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# On Ubuntu 安装&lt;/span&gt;
sudo apt-get install python-pygments
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/install&quot;&gt;完整安装说明&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;生成高亮显示的css文件&lt;/h3&gt;
&lt;p&gt;选择喜欢的样式，记下名称&lt;br /&gt;
&lt;a href=&quot;http://pygments.org/demo/6622&quot;&gt;http://pygments.org/demo/6622&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我选择的是fruity style，作为pygmentize命令style的参数值&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# 生成相应的css&lt;/span&gt;
pygmentize -S fruity -f html &amp;gt; stylesheets/syntax.css
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://pygments.org/docs/quickstart/&quot;&gt;参考pygments Command line usage&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;如何使用&lt;/h3&gt;
&lt;p&gt;语法高亮的代码段&lt;/p&gt;
&lt;pre&gt;
{% highlight ruby %}
def foo
  puts 'foo'
end
{% endhighlight %}
&lt;/pre&gt;
&lt;p&gt;highlight后面第一个参数为language，如php，也可以是ruby控制台irb，更多lanuages可以查询 &lt;a href=&quot;http://pygments.org/docs/lexers/&quot;&gt;http://pygments.org/docs/lexers/&lt;/a&gt;&lt;br /&gt;
第一个参数为必填，不填会导致_site目录生成不了相应的html文件，第二个参数显示行号&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/liquid-extensions&quot;&gt;参考jekyll说明&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Markdown标记与Liquid逻辑处理&lt;/h2&gt;
&lt;h3&gt;两个知识点&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;为避免直接编写html代码，编写文章时，内容需要加入标记信息，即Markdown&lt;/li&gt;
	&lt;li&gt;博客中都是需要经过处理的，比如逻辑判断处理、循环处理，jekyll应用liquid模板语言进行这些处理&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Markdown&lt;/h3&gt;
&lt;p&gt;标记语言有很多种，如textile&lt;br /&gt;
这些标记语言会被标记引擎转换，输出成相应的目标格式（大部分情况是输出成html）&lt;br /&gt;
引擎也有很多种，不同的编程语言有不同的实现，ruby常用的引擎有RedCloth&lt;/p&gt;
&lt;h3&gt;Liquid&lt;/h3&gt;
&lt;p&gt;简单来说，凡是看到{{}}或者{% %}包含的内容都是会被Liquid引擎处理的&lt;/p&gt;
&lt;p&gt;比如*将日期格式化*的liquid语句&lt;/p&gt;
&lt;pre&gt;
Liquid error: undefined method `strftime' for &quot;{{ post.date | date_to_string&quot;:String }}
&lt;/pre&gt;
&lt;p&gt;除了标记的Liquid语法外，jekyll还扩展出了几个便利的方法，其中有上面介绍的highlight方法&lt;br /&gt;
&lt;a href=&quot;http://wiki.github.com/mojombo/jekyll/liquid-extensions&quot;&gt;jekyll liquid扩展&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://github.com/tobi/liquid/wiki/Liquid-for-Designers&quot;&gt;liquid参考资料&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;整合评论&lt;/h2&gt;
&lt;p&gt;由于github page最终生成的都是静态html页面，所以是没有评论功能呢&lt;br /&gt;
但我们利用disqus实现在线评论功能，先到 &lt;a href=&quot;http://disqus.com&quot;&gt;http://disqus.com&lt;/a&gt; 注册帐号(免费)&lt;br /&gt;
注册成功后，为简单起见，只要把 &lt;code&gt;_includes/post.html&lt;/code&gt; 中的saberma替换为你的注册帐号就行了(disqus_url输入你实际的域名)&lt;/p&gt;
&lt;h2&gt;整合rss订阅&lt;/h2&gt;
&lt;p&gt;因为jekyll可以生成blogs列表，所以我们可以编写atom.xml，由jekyll生成最终xml结果&lt;br /&gt;
&lt;a href=&quot;/atom.xml&quot;&gt;这是我的atom.xml文件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;将生成的xml地址提交至 &lt;a href=&quot;http://www.feedsky.com&quot;&gt;feedsky.com&lt;/a&gt; ，由feedsky进行管理和美化&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://elemel.se/2009/01/25/setting-up-an-atom-feed-at-github-pages.html&quot;&gt;Setting Up an Atom Feed at GitHub Pages&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;你也想弄一个github page博客?&lt;/h2&gt;
&lt;p&gt;最快的做法是 &lt;a href=&quot;http://github.com/saberma/saberma.github.com&quot;&gt;fork我的博客&lt;/a&gt; ，git clone到你的电脑&lt;br /&gt;
然后修改成你的，具体需要调整的地方是:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;删除_posts中的文章&lt;/li&gt;
	&lt;li&gt;按上面介绍的[整合评论]修改 &lt;code&gt;_includes/post.htm&lt;/code&gt; 文件&lt;/li&gt;
	&lt;li&gt;按上面介绍的[整合rss]修改 &lt;code&gt;atom.xml&lt;/code&gt; 文件&lt;/li&gt;
	&lt;li&gt;修改CNAME的内容为你的独立域名&lt;/li&gt;
	&lt;li&gt;运行jekyll，看看效果&lt;/li&gt;
	&lt;li&gt;上传!ok，访问你的blog地址看看&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;参考资源&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.envylabs.com/2009/08/publishing-a-blog-with-github-pages-and-jekyll/&quot;&gt;publishing-a-blog-with-github-pages-and-jekyll&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://github.com/mojombo/jekyll/wiki&quot;&gt;jekyll wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://pages.github.com&quot;&gt;http://pages.github.com&lt;/a&gt;&lt;/p&gt;</content>
    </entry>
  
</feed>

