使用Github搭建个人博客

github 是全球最大的社交编程及代码托管网站,GitHub可以托管各种git库,并提供一个web界面,但与其它像SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。这里着重写如何使用Github的page功能搭建个人博客。

目录

1.github博客概述

为什么我选择github写博客呢?最开始在CSDN、新浪等博客平台写过博客,也在印象笔记中做过笔记,但是都只是满足了我一部分的需求。对于理工科而已,良好的数学编辑环境、支持博客分类、博客搜索等功能也必不可少,这样也方便自己以后查找和回顾。这一切,在github page中都可以实现。甚至包括添加社交评论、分享等功能,也可以使用百度统计来查看博客的访问情况等功能。另外,github本身的版本控制也非常方便我进行编辑博客、与他人一起合作编辑等等。

但是,毕竟自己搭建博客是一个相对需要一点技术的事情,尤其是使用Markdown进行博客写作,也与传统的Word写作方式不一样,都需要付出时间来学习。然而,学会之后,确实很有帮助!

GitHub,是全球最大的社交编程及代码托管网站,一个拥有无数多开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。上面也很多人开源项目,包括Python的机器学习库sklearn,深度学习库theano、pylearn2、BootStrap、Node.js、CoffeScript等等!

Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完整的可发布的静态网站,你可以发布在任何你喜爱的服务器上。Jekyll 也可以运行在 GitHub Page 上,也就是说,你可以使用 GitHub 的服务来搭建你的项目页面、博客或者网站,而且是完全免费的。

注意:本文只是介绍在github上搭建blog,不考虑本地博客环境。此外,本文列出了许多可以参考的文档,感兴趣深入的同学可以深入了解!

2.搭建博客

一般的教程是在本地搭建好jekyll环境,之后一步一步的使用github搭建博客。但是,这里我没有在本地搭建环境。所以,如果想在本地搭建环境的,需要去其他地方找资料了。 步骤流程参考Github Page,这里只是简单的介绍下!

2.1新建项目

首先需要大家建立一个去建立一个github账号。注册成功之后,我们新建一个项目,注意项目名称!,如下图:

之后可以设置该项目的属性,在项目的右侧的Settings,可以设置允许有wiki等,注意GitHub Pages不要选择automatic page generator!

2.2Git下载

在项目建立完之后,我们下载Github。我自己电脑上装的是通用版的Git,无法下载的童鞋,可以去网上搜索下载。也可以下载Github自己的客户端。 根据Github Page所说,你需要根据自己下载的东西进行操作。比如你选择了Github的客户端,你可以按照上面说的Clone the repository,一步一步的操作。 我个人是用的是a terminal,之后Clone 操作(选择一个自己喜欢的文件夹下进行clone操作)。我个人博客clone如下: “git clone https://github.com/chrispher/chrispher.github.com.git”。 之后,我们会在本地的看到与自己项目名称一致的文件夹。

2.3设置主题

我们可以去Jekyll自己收集的一些主题,这里罗列了许多主题,大家可以去点击看看页面的效果,如果喜欢,就去对应的source链接里,能够查看到该主题的所有代码! 我这里比较推荐大家使用博客主题Jekyll Light, 由pexcn设计,我在该版本上增加了站内搜索多种社交关注标签页页面标签链接留言板支付宝捐赠、重设百度统计功能、删除了豆瓣阅读和其他一些细节上的修改。。

看中自己喜欢的主题之后,可以去主题项目下下载他的项目。比如到到我的博客项目, 页面右侧有Download ZIP。下载到本地之后,解压之后可以看到各种乱七八糟的文件夹。大家可以把.git(默认文件是隐藏的,需要打开显示隐藏文件夹选项!)文件夹以外的所有东西拷贝到自己的项目下。

大家如果想关注本博客,可以在我的博客项目右上角,点击Watch Star Fork。其中Fork是把我的博客复制到自己的项目空间去。

这里简单的介绍主要文件夹的意思和内容:

  • _config.yml:保存了站点的配置信息, 详细配置在这里, 中文翻译看这里.
  • _includes:该目录存放可以与_layouts和_posts混合,匹配并重用的文件. 这里可以使页面的页脚、评论功能、百度统计等功能.
  • _layout:该目录存放用来插入帖子的网页布局模板, 注意是模板, 具体数据在_posts中.
  • _posts:发表的博文的内容, 其下文件的命名格式为: YEAR-MONTH-DAY-title.md(使用markdown语法写的文件), 另外还支持textile和html文件.
  • res:这里存放了博客使用的各种字体、js、css等东西。不同的人存放的地点也可以不一致。也可以使用默认的字体(默认字体对中文支持不太好)
  • _site:这里是Jekyll用以存放最终生成站点的根路径位置, 编译好的html文件都放在这里, 最好把这个目录加到 .gitignore 列表中.
  • index.html:博客的首页
  • CNAME 是你申请的域名,如果你没有申请域名并绑定,那么你需要删除这个文件!

对于其他的一些东西,大家慢慢摸索,用的多了就会懂了,也可以多去看看Jekyll官网。开始,最重要的是搭建起来,其他的慢慢调整!

2.4设置博客

一般所需要做的核心设置在_config.yml 中,用文本打开:

blog:
    name: chrispher guan       # 博客名称
    description: Data Science  # 博客描述
    title: Data Science        # 网页标题
    url: http://chrispher.github.com  # 博客地址,即你的项目名称
    duoshuo: chrispher2012            # 多说ID
    tongji: 3F27793c8b949a643c724f32bcf5058791 # 百度统计ID
author:
    name: chrispher guan       # 作者名称
    email: chrispher2012@gmail.com # 邮箱地址
    weibo: 2917650677  # weibo ID
    github: chrispher  # github ID
    linkedin: chrispher-guan/5a/a68/6b8 # linkedIn ID
    gplus: 110552447039675960964  # G+ ID
    logo: http://chrispher.github.com/images/op_we_are_brothers.png # logo地址

如果没有对应的账号,可以直接不填!如果填我的账号信息,那么你的博客就相当于我的一个子博客了,哈哈!

2.5修改与提交

如果你都修改好了之后,你可以上传你的项目了。同样,如果你使用Github客户端,同步一下就可以了。我个人是terminal,需要使用以下几个命令。 以下是示范,井号后面是注释说明,不需要输入!可以参考一些简单教程

git add --all  # 添加所有文件
git commit -a -m 'first commit' # 'first commit'表示你为这次提交写的备注,方便自己回顾和查看
git push # 上传所有文件,之后输入自己的用户名和密码即可

之后,10min左右,你的博客就好建好了,在网址栏输入chrispher.github.com即可访问博客(注意用户名!)

其他的一些常用Git命令,建议大家去学习一些Git的基本操作教程!当然,你可以不在乎乱七八糟的东西,专注于几个常用命令即可(除了上面提到的命令外,git pull表示把)。

3.写作与格式

这里简单的介绍下如何利用markdown进行文章的写作。大家可以随意选择一个文本编辑器,这里我推荐使用Sublime Text2,关于sublime的一些常用设置可以参考我的博客My sublime text2 setting

我们可以在”_posts”里随便的建立文件夹(一般按照自己的类别或者兴趣建立文件夹),也可以不建立。Jekyll支持多种格式的文本解析,这里指介绍markdown!新建文本文件,只有文件命名的规范是2014-8-12-My sublime setting.md, 即日期-文章标题.md,注意markdown文件以md或markdown结尾。

在文章开头是关于文章主题的设置,如下(井号后面是注释说明):

---                   # 默认文章主题设置起始标识符
layout: post          # 使用post模板,在_layouts里多个模板可以用
title: My sublime text2 setting #文章标题
comments: true        # 增加评论功能
category: Application # 设置文章的类别
tags: [sublime, setting] # 设置文章的tag,方便自己以后搜索用
---          # 默认结束标识符

windows下sublime text2的一些设置和调整 #正文

Makrdown的简单语法,可以参考Markdown 语法说明简体中文版

4.写作的一些技巧

这里额外讲一下几个我在博客里比较常用的语法;

4.1添加目录

更具基本的语法我们知道中括号[] 后面跟着小括号() 表示对中括号内容做了超链接,而链接地址是小括号内容。目录就是根据这个思路去做的。即如下:

### 目录 - [1.github博客概述](#1.github博客概述)

之后在每个需要添加的目录地方,增加 ### 1.github博客概述

这里是使用了html的一些语法,注意内容的一致性。另外,网上也也其他的不是有html语法的目录创建方式。但是,有些Jekyll不支持,比如直接使用TOC。也有自动侧边栏生成,可以自行搜索”Markdown自动生成侧边栏目录”等内容。

另外,如果你使用的是markdown: kramdown,那么你可以在开头加入下面几行,实现自动的目录。

###目录
{:.no_toc}

* 目录
{:toc}

4.2插入图片

官方的语法是 ![Alt text](image_path "Optional title") ,这里是一个惊叹号!,接着一个方括号,里面放上图片的替代文字 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 ‘title’ 文字。这种方式不能自动的适应屏幕,所以我个人比较喜欢适应html的格式,即 <img src="img_path" height="100%" width="100%"> 这里的100%是指相对屏幕的大小。

4.3文章简介

在博客的首页,通常只显示了文章的一部分内容,这是怎么实现的呢?一般而言,我们写作时,会在开头写一下整篇文章的概述,之后在增加一行 <!-- more -->,那么一般显示的时候就只显示 <!-- more --> 之前的文本,只有点击阅读进入这篇文章才能看到全部内容。当然,这里也是跟html语法相关的,在index.html里的设置了分割的方式.

4.4代码高亮

代码高亮语法是:在代码开始的地方标注 {% highlight python %} ,在代码结束的地方标注 {% endhighlight %},那么中间的代码就是使用了Python的代码高亮风格!

注意: 对于最新的代码高亮,统一为highlighter: rouge, 可以查一下rougify style monokai.sublime > assets/css/syntax.css 生成高亮文件

注意:有些时候我们用的字符和markdown或者系统的字符重合,导致编译错误,我们可以用全角来替换,本文写作技巧中,部分符号用了全角替换!

另外需要注意,不同的markdown解析器,使用的语法也有一些差距。有些markdown的编辑器比如本文用的kramdown,可以使用波浪号来表示代码块等等。具体的语法扩展可以参考官网。

本文总阅读量