关于为什么写博客,以及为什么用GitHub写,这其实是和博客同样古老的话题,一百个人能给出一千个理由来。很多文章都有过介绍,推荐大家参考和菜头的《开始写作吧》,刘未鹏的《为什么你应该(从现在开始就)写博客》,李笑来的《为什么你一定要学会写作》,以及 Joshua Becker 的《Why you should write blog》。


这里直接介绍怎样使用GitHub搭建博客,搭建后的效果如链接:https://liclong.github.io


一、学习使用GitHub


首先进入GitHub并申请账号,Google(也可以是度娘)输入github,点击第一条进入,如下图。


wKiom1j0wwqQGd_UAAlnuI_lhHM707.png-wh_50


想了解GitHub的童鞋可参见知乎:https://www.zhihu.com/question/19968479/

进入GitHub主页后请首先注册账号。并创建一个 Repositories,命名为”username.github.io”。注意,这里,username 是你刚才注册的 GitHub 账号名,我的账号名是 liclong,因此这里填: “liclong.github.io”。

wKioL1j0w7Sz_MTvAAMk5oXrrJI287.png-wh_50

二、建立本地与GitHub的连接

1. 本地电脑安装 git

接下来我们在本地环境中实际安装 git,并进行各种设置。如果使用 Mac 可以忽略安装过程,因为系统已默认集成了这一功能,使用 Ubuntu 和 Windows 的童鞋可以参考:《Getting Started - Installing Git》

下面我们对本地计算机里安装的 git 进行设置,首先设置的是使用 Git 时的姓名和邮箱地址。

$ git config --global user.name "firstname lastname"
$ git config --global user.email "youemail@gmail.com"


设置完毕后可通过 ~/.gitconfig 文件进行更改。这里设置的姓名和邮箱地址会用在 Git 的提交日志。由于在 GitHub 上公开仓库后,这里的姓名和邮箱地址也会被一并公开,所以注意不要使用不便公开的隐私信息。


此外,在 GitHub 上公开博客或源码后,前来参考的程序员可能来自世界任何地方,所以不要使用汉字,很多外国友人的中文水平远不如我们的英文水平。当然,如果不想使用真名,完全可以使用网络上的昵称。


2. 本地创建密钥

GitHub上连接已有仓库时的认证,是通过使用 SSH 的公开密钥认证方式进行的。现在我们来创建公开密钥认证所需的 SSH Key,并将其添加至GitHub。如果已经创建过,可以使用现有的密钥进行设置。

运行下面的命令创建 SSH Key。

$ ssh-keygen -t rsa -C "youremail@gmail.com

3. 添加公钥到 GitHub

在GitHub上添加公钥,今后就可以用私钥进行认证了。

点击右上角的账户设定按钮(Account Settings),选择 SSH and GPG Keys 菜单,就会出现如下界面。点击 Add SSH Key,会出现 Title 和 Key 两个输入框。在 Title 中输入适当的密钥名称,Key 部分粘贴 id_rsa.pub 文件里的内容。

wKiom1j0xKTBl-LHAAQBsr5PrQk156.png-wh_50


如此一来,本地电脑和远端的 GitHub 服务器就建立了可信的连接。以后可以通过 git 命令快捷的从 GitHub 克隆项目,并将修改后的项目更新到 GitHub。

三、先走一遍流程

要了解一个项目,最快捷的方法就是先从头到尾过一遍。所以,我们首先创建一个最简单的网页,介绍从创建 GitHub 到访问网页到整个流程,以帮助大家理解。打开终端输入如下命令:

$ git clone https://github.com/liclong/liclong.github.io

这样可以将刚才在 GitHub 上创建的 Repositories 克隆到本地,你会发现在当前路径下多了一个文件夹:“liclong.github.io”。然后后续操作可以在本地进行,只需将最终版本再上传回 GitHub 即可。我们在克隆到本地的 liclong.github.io 目录下新建一个文件:index.html,这是网站的入口。文件编辑如下:

<!DOCTYPE html>

<html>

    <head>
        <title>liclong.github.io</title>
    </head>

    <body>
        <p><a href="http://www.google.com">Link to another page</a>.</p>
    </body>
</html>

随后,将修改的文件同步回 GitHub。现在我们看一下如何将修改的东西同步回去。

$ git status                //查看仓库中文件修改状况
$ git add index.html        //将文件加入暂存区
$ git commit -m "the content of update"
$ git push                  //现在,GitHub 上的仓库被更新了

打开你的浏览器,输入你刚建的 Repository 的文件名,例如我的是 liclong.github.io。如下图所示,You get it!

wKioL1j0xdKyISHuAADsdF_COcw387.png-wh_50

说白了,GitHub 提供了这样一种页面解析功能,你既可以拿它制作博客,也可以拿它做个人主页,功能就在那里,用途任你选择。详情可参考 GitHub Pages 官方主页。

四、使用Jekyll进行本地调试

有一个问题,每次微调后都要同步回 GitHub 查看页面修改结果? NO!

理想的方式应该是,本地进行调试和预览,只把最终的版本上传至 GitHub 供大家浏览。幸运的是,Jekyll 提供这样的功能。

打开 terminal, 安装 Ruby (Mac上已经预装了Ruby)。可以输入 $ ruby –version 去验证是否安装。

接下来,输入sudo gem install github-pages,安装 Jekyll (gem update github-pages命令可以用来更新 Jekyll,以免 Github 服务器更新导致网站本地和线上表现不同)

之后你需要在 master 下新建一个 file,命名为 Gemfile,输入

source 'https://rubygems.org'
gem 'github-pages'

运行 terminal,使用命令行移至 repository 根目录下(也就是刚才从 GitHub 上克隆下来的 liclong.github.io 目录)。之后运行

$ bundle exec jekyll serve

注意,如果没有前面创建的 Gemfile 文件,这个命令是执行不通过的。

下面,就可以使用 Jekyll 啦,本地测试在浏览器输入 http://localhost:4000 即可。

五、学会使用Jekyll个性化博客

从零写一个漂亮的博客时间成本太高。更何况,每写一篇博客还要重复大量以往的工作,既耗时又耗力。为美化博客且最大限度的实现代码复用,我们充分发挥拿来主义精神,它山之石可以攻玉。

浏览器中登录 GitHub 网站,进入自己的 liclong.github.io 仓库(再次强调,liclong是我的用户名,大家在实际操作是将它改成自己的用户名)。

随后,进入 liclong.github.io 仓库,并点击菜单栏中的 Settings。

wKioL1j0xmjCeimGAA_Nt2L7gOA796.png-wh_50


在 theme 中,选择你喜欢的主题。这里我们以 slate 主题为例,如下图所示:


wKioL1j0xrHxPU8UAATKdITzqZk461.png-wh_50


可以查看它在 GitHub 中的代码,并 git clone 到本地。现在将里面的代码全部复制到本地的 liclong.git.io 目录,文件名重复的直接 replace。然后,进入 liclong.github.io 目录,并执行:

$ git status        //查看哪些文件做过修改
$ git add .         //多个文件修改时,可以直接用.的方式实现全选
$ git commit -m "this is an update"
$ git push          //推送到 GitHub

打开浏览器,登录 http://liclong.github.io,你会看到 slate 主题的网页里。修改 index.html 文件即可进行修改。具体细节可实际摸索。

注意,目前的 GitHub 进行了改版,以前各教程中提到的 theme 中的 “automatic page generator” 已经不在,大家不必纠结。

wKioL1j0xvqwo2zFAARoXOg4eo8048.png-wh_50



以上。