Mar 18th, 2012 | Comments
我写这篇文章的目的是帮助没有用过gihub和jekyll的童鞋尽快掌握使用流程。学习使用github网页的最好办法就是clone别人的代码,看懂他们的代码,并修改成自己喜欢的样子。这篇文章介绍了从最初安装软件到使用的过程。
先假设读者对ruby完全没有了解,仅对html有初步的了解(<title>
等标签知道是什么意思,如果懂点儿CSS更好)。基本的linux命令(ls
、cd
、mkdir
、rm
等,不会也没关系,就用到这几个命令,自己百度一下就好)。
本文标题所说的“极简”是基于下面的原则:
- 安装尽量少的软件
- 使用尽量少的命令
- 接触尽量少的概念
如果想了解用Github Pages写博客的理念,可以看这篇文章
- 《理想的写作环境:git+github+markdown+jekyll》
下面开始一步步讲解Github Pages的使用流程:
一、如果想在本地预览页面,跳过这步到二;如果不想在本地预览,则在windows下安装msysgit,最新版本为Git-1.7.9-preview20120201.exe,然后按照BeiYuu的博文里的过程配置git和github,再到四
如果你的系统是linux的,按照Git Hub官方帮助文件操作,然后跳到四。
如果想深入了解Git,请看10篇写给Git初学者的最佳教程。
二、在windows下安装ruby环境。推荐安装RailsInstaller,里面包含了Ruby、Rails、Bundler、Git、Sqlite、TinyTDS、SQL Server support和DevKit。
不过最近的RailsInstaller里包含的ruby版本升到了1.9.3,如果以后要使用Octopress的话必须使用ruby1.9.2,建议使用以前的版本,我把以前的版本放到了这里。
三、紧接着上一步,配置git和github
在RailsInstaller安装结束时安装程序会提示是否配置Git环境(这样的话给配置git和github带来极大的方便,又减少了几条命令)。选择”是”,然后出现下面的提示
填写github注册时的用户名和邮箱,就完成了公钥和密钥的生成,在C:\Documents and Settings\用户名
下,有个隐藏目录名为.ssh
,id_rsa.pub文件就是公钥,id_rsa就是密钥。
在Github网站找到 “Account Settings” > Click “SSH Keys” > Click “Add SSH key”
用文本编辑器打开id_rsa.pub文件,并把里面的内容(包括空格和新行)复制出来,填到Github的账户设置的SSH设置里。
在开始菜单里找到RailsInstaller –> Git Bash,执行它,就打开了下面的命令窗口,以后的操作都是在这个窗口下进行的
注意: 在窗口里我们可以看到当前路径显示为/c/Sites
,其实它表示的是C:\Sites
,这个目录是RailsInstaller在安装的时候建的。
用下面的命令测试一下git是否连接正常
ssh -T git@github.com
想了解普通配置方法的,可进一步阅读:
- Github上的帮助
- BeiYuu的博文
- window下建立github连接
四、安装jekyll和相关的包
稍微对配置做一下修改,把淘宝的镜像加到gem的镜像列表里
gem sources --remove http://rubygems.org/
gem sources -a http://ruby.taobao.org/
然后用gem sources -l
看看现在源列表
*** CURRENT SOURCES ***
http://ruby.taobao.org
如果是上面这样就可以安装jekyll了
gem install jekyll
Jekyll需要用到directory_watcher、liquid、open4、maruku和classifier这几个包,用上面的命令 可以自动安装。Jekyll默认用maruku来解析markdown语言,你也可以用别的程序来解析,比如rdiscount或kramdown,都给 装上吧:
gem install rdiscount kramdown
以上命令涉及到gem install
的时候,如果你用的是linux系统,就要用sudo gem install
代替。
五、建立github pages。
这一步是本文的重点,也是本文异于网络上其他文章的地方,我在这里用到了Github提供的Github pages generator的功能,减少了使用的命令数量,也绕开了远程代码库这个概念(省略了与git remote相关的操作,不过随着github使用的加深,这些概念也是不能避免的)
- 在github.com上创建代码库,比如新建一个名为example的代码库:登录到自己的Github账户,选择New repository
- 在线生成pages: 点上图中的Admin
接下来的页面可以不用填,直接点Create Page,马上会转到一个404页面,不要慌,要过一会系统才会帮你把网页生成好。如下图:
- 克隆自己的代码库
git clone git@github.com:yanping/example.git
这样git会把存放在github上的代码库文件下载到本地的,生成名为example的目录。删除该目录下的index.html,这是系统生成 的,不是我想要的页面,注意不要把.git目录删除,这是个隐藏目录,里面包含这个代码库的配置信息,以上的步骤都是为了得到这些配置信息且避免了使用命 令。
要注意的几点
- 我的github用户名为yanping,如果我建立名为yanping.github.com的代码库,必须在master分支下的才 可以看到页面。在本例中我建的是普通的项目代码库,系统自动生成的github pages是在gh-pages这个分支下的。在以上的操作中,我并没有对分支进行任何操作,都是系统自动完成的。
- 创建个人主页面username.github.com的步骤请看GotGithub教程
- git@github.com:yanping/example.git 是example的路径,它的规则是 git@github.com:用户名/代码库名.git
- 克隆别人的代码库。在本地另一位置,克隆别人的代码库,比如
git clone git@github.com:mojombo/mojombo.github.com.git
删掉.git目录,然后把文件都复制到自己的本地代码库example下
- 删除_post下的文件(可保留一两篇作为模板),修改example里的文件,尤其是配置信息,比如_config.yml、disqus的配置,CNAME文件等,更进一步,按照自己的喜好修改网页的布局和样式,这些都可在后期慢慢摸索。然后执行下面的操作
-
git add .
表示添加当前目录下的所有文件 -
git commit -am "message"
表示提交所有更改,这是提交到本地,”message” 换成自己的注释信息 -
git push
把在本地的更改提交到远程服务器
要写博客的时候,在_post里新建一个markdown文件,文件名和文件里面的头部信息(学名叫YAML front matter)按照模板的格式改,编辑好内容后,再依次执行上面三条命令。
如果你不熟悉markdown语法,请看这里。
进一步阅读:
- Github Pages的官方说明文件
- jekyll主页上提供的示例网站,可以clone他们的网站折腾一翻
- 在github上建立pages的过程
- 关于jekyll静态网站的介绍,请看我翻译的文章
- 像黑客一样写博客——Jekyll入门
其他技巧:
- 优化Jekyll站点的SEO技巧
- 为Jekyll博客添加category 分类
- 搭建Jekyll博客的一些小技巧
六、关于代码高亮(如果你不贴代码,请跳过这步)
- 用js插件:DlHightLight或Google Code Prettify
- 用gist:强烈推荐菜鸟使用,省心省事,支持语言多
- 用pygment:要安装python以及python的包管理软件,又是个大坑,不建议菜鸟使用,尤其是使用windows的
七、关于公式(如果你不贴公式,请跳过)
- 使用maruku来解析markdown文件,可以把LaTeX解析成图片,优点是网页加载速度快。但是在windows下安装复杂,且需要安装有LaTeX
- Mathjax,请看我博文的介绍,缺点是动态加载,速度慢。
八、评论
国外的Disqus和国内的友言
其他社会化服务
- 分享:国内的jiathis和国外的addthis
- 图片:国内的yupoo 、poco,国外的Flickr、imgur
九、关于域名
在本地代码库里新建名为CNAME的文本文件,把域名地址放进去。假设你的域名是domain.com,可以用命令
echo 'domain.com' > CNAME
然后
git add CNAME
git commit -am "CNAME file added"
git push
接着在自己的域名注册商那里改一下指向就行了。如果想对github域名绑定的机制有更多的了解,请看我的三篇博文:文1,文2和文3
十、其他可供选择的模板,推荐两款比较好用的
- Octopress:windows下的教程1、教程2,ubuntu下的教程
- Jekyll Bootstrap
十一、常犯的错误
- 明明要给是要做项目主页,却在master分支下上传页面。只有名为username.github.com的是个人主代码库,username是你的github用户名,向这个代码库推送的网页默认的是master分支,直接就可以浏览。其他代码库都是项目代码库
- clone别人的代码库到本地后,没有把它的.git目录删除
- 没有把别人页面里的配置部分彻底改掉,比如disqus的配置,CNAME文件,<title>等
ypchen发布于 Mar 18th, 2012 分类: github, jekyll