一、环境准备

使用Github Pages搭建个人博客,一劳永逸,可以让我们更加专注于博客的撰写。博客的更新是通过将新建或改动的博客放在指定文件夹并推送到远程Github仓库来完成的,所以我们本地需要有Git环境,如果还没有安装Git,可以看下面的文章:

  1. 安装Git
  2. Git关联远程GitHub仓库

二、搭建博客

1、新建仓库

username.github.io作为仓库名字。

2、本地克隆

本地创建文件夹,用于存放远程仓库,打开所创建的文件夹,右键选择git bash here,表示在当前目录打开git bash程序,然后执行如下命令,将刚才创建的仓库克隆到本地:

git clone https://github.com/AmazingChen/amazingchen.github.io.git

如果步骤1中创建仓库时,没有勾选Initialize this repository with a README,将有如下提示:

warning,可以忽略,或手动在远程仓库创建一个readme.md,然后重新clone

3、新建主页

在仓库文件夹下创建index.html

<!DOCTYPE html>
<html>
<head> </head>
<body>
<p>hello, my first page!</p>
</body>
</html

4、推送到远程仓库

在仓库文件夹下,右键选择git bash here,然后执行命令:

git add --all
git commit -m "add index.html"
git push origin master

5、验证

成功push到远程仓库后,访问 username.github.io,看到如下界面,就表示成功通过Github Pages搭建了个人的博客。

三、更换主题

上面裸奔的博客主页,跟原始人类一样,你一定不满意,我们穿越几千年文明,直接站在巨人的肩膀上,选一套主题吧。

Github Pages基于Jekyll构建,Jekyll 可以帮助我们把纯文本转换为静态博客网站,实现一劳永逸。

你可以在JekyllThemes找到喜欢的主题,也可以在其他地方找。

"I want you, Vno-Jekyll." 我选择Vno。

1、下载主题

下载后,首先将我们仓库文件夹下的文件清空,但是要保留.git文件夹:

然后将下载的主题压缩包解压到仓库文件夹下,结果如下:

访问 Jekyll-目录结构 详细了解每个文件夹的功能:

.
├── _config.yml
├── _drafts
| ├── begin-with-the-crazy-ideas.textile
| └── on-simplicity-in-technology.markdown
├── _includes
| ├── footer.html
| └── header.html
├── _layouts
| ├── default.html
| └── post.html
├── _posts
| ├── 2007-10-29-why-every-programmer-should-play-nethack.textile
| └── 2009-04-26-barcamp-boston-4-roundup.textile
├── _site
├── .jekyll-metadata
└── index.html

2、搭建Jekyll环境

只有主题文件是不够的,我们需要搭建Jekyll环境,通过遵循Jekyll的规范,让Jekyll帮助我们生成静态网站。

(1) 安装Ruby:Ruby安装教程

(2)打开CMD,执行命令安装Jekyll:

gem install jekyll

(3)进入仓库文件夹,执行命令:

bundle install

注意,必须进入仓库文件夹下再执行上述命令,否则会有如下提示,表示bundle找不到gemfile文件:

Rails 3中引入Bundle来管理项目中的所有Gem依赖,该命令只能在一个含有Gemfile的目录下执行,bundle install 命令将尝试更新系统中已存在的gem包。更多参考:bundle install 命令

(4)启动Jekyll服务

bundle exec jekyll serve

启动Jekyll服务时,可能会遇到如下错误:

  Conversion error: Jekyll::Converters::Scss encountered an error
while converting 'css/main.scss':
Invalid GBK character "\xE2" on line 10
jekyll 3.4.0 | Error: Invalid GBK character "\xE2" on line 10

很明显,是编码问题,参考网上方法解决 Invalid GBK character "\xE2" 过程中的发现,找到D:\RailsInstaller\Ruby2.3.3\lib\ruby\gems\2.3.0\gems\sass-3.7.2\lib\sass.rb文件,在require后追加:

Encoding.default_external = Encoding.find('utf-8')

然后重新启动Jekyll服务,看到如下打印,表示启动成功:

(5)验证

访问 http://127.0.0.1:4000,当你发现你的博客首页从一个原始人变成光鲜亮丽的现代人时,表示博客主题已经应用成功了。

(6)推送到远程仓库

做完上述操作后,由于还没有将修改提交到远程仓库,所以当你访问username.github.io时,你看到的还是一个光溜溜的原始人,执行以下命令完成进化吧皮卡丘:

git add .
git commit -m "apply theme"
git push origin master

成功推送到远程仓库后,等待几分钟,访问username.github.io,OK,成功。天黑请闭眼,有问题请留言。

四、发布博客

在仓库文件夹下,进入_posts目录,所有的文章都必须放在_posts文件夹下,访问 Jekyll-目录结构 详细了解每个文件夹的功能。

以markdown文档为例,按照如下格式创建md文件。

yyyy-MM-dd-filename.md

完成后push到远程仓库,即可完成更新。

五、修改主题

将网站的信息改成自己的,修改_config.yml文件:

# Basic
title: 陈贤靖
subtitle: 井与陆地,海和岛屿。
description: Android Developer.
creator: <a href="http://onev.cat">@onevcat</a> url: "https://amazingchen.github.io/#blog" permalink: /:year/:month/:title/ # Format
highlighter: rouge # supported colors: blue, green, purple, red, orange or slate. If you need clear, leave it empty.
# cover_color: red # The blog button should not be removed.
blog_button:
title: Blog
description: Visit blog # Navigation buttons in the front page.
nav:
- {title: Projects, description: My Projects, url: 'https://github.com/AmazingChen/VHabit'}
# - {title: Another Button, description: A button, url: 'http://example.com'} # Pagination
plugins: [jekyll-paginate]
paginate: 10
paginate_path: "page/:num/" # Comment
comment:
disqus: vno-jekyll
# duoshuo: # Social
social:
github: AmazingChen
mail: shixianjingla@gmail.com # Google Analytics
ga:
# id: your_ga_id
# host: your_host

如果你对这套主题不太满意,并且具备web基础,可以动手修改。

如果不想博客数据被人轻易获取,建议将github仓库设置为私有。

修改之后,我的博客长这样:陈贤靖


完。

使用github pages搭建个人博客的更多相关文章

  1. 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  2. 基于 Hexo + GitHub Pages 搭建个人博客(二)

    在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...

  3. 基于 Hexo + GitHub Pages 搭建个人博客(三)

    一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...

  4. 使用Hexo + GitHub Pages 搭建个人博客

    一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...

  5. 基于 Hexo + GitHub Pages 搭建个人博客(一)

    前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之. 很快到了 16 年,开始接触网上各大博客网站,接触最多的当属 CSDN,萌生了注册一个博客 ...

  6. Hexo + Github Pages 搭建个人博客

    之前一直想搭建自己的博客,由于自己的懒惰拖到现在.好了,废话不多说!直接上干货! 安装Node.js 安装Git Github Pages配置 安装Hexo及主题设置 进阶篇-高级定制 其它实用功能 ...

  7. Hugo + Github Pages 搭建个人博客

    尝试过 Hexo .GatsbyJs. Vuepress 搭建博客后,对这些工具最大的不满,就是运行速度以及打包速度. 后来看到 Hugo ,号称最快的静态站点生成器后. 尝试搭建博客,发现不管是运行 ...

  8. 使用 jekyll + github pages 搭建个人博客

    1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...

  9. 基于Hexo+Github Pages搭建的博客

    概念 Github Pages可以被认为是用户编写的.托管在github上的静态网页.使用Github Pages可以为你提供一个免费的服务器,免去了自己搭建服务器和写数据库的麻烦.此外还可以绑定自己 ...

随机推荐

  1. ubuntu 命令整合1

    一.linux命令基本格式 命令名[选项] [参数] 注意: 命令名区分字母大小写 命令名必须有 选项.参数可以没有,选项一般使用减号开头二.具体Linux命令 1.who 显示登录系统中的用户的信息 ...

  2. Data_r_and_w(csv,json,xlsx)

    import osimport sysimport argparsetry:    import cStringIO as StringIOexcept:    import StringIOimpo ...

  3. Java线程池中submit() 和 execute()方法的区别

    两个方法都可以向线程池提交任务, execute()方法的返回类型是void,它定义在Executor接口中, 而submit()方法可以返回持有计算结果的Future对象,它定义在ExecutorS ...

  4. Linux 操作系统基础知识

    1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制.查询指令: cat /proc/cpuinfo•内存: 大脑中的记忆区块,将皮肤.眼睛等所收集到的信息记录起来 ...

  5. java基础 lang包 详细介绍

    Java.javax和org.其中以java开头的包名是JDK的基础语言包,以javax开头的属 (org是organization的简写).而在JDK API中还包含了一些以com.sun开头的包名 ...

  6. Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)

    在前面章节的讨论中,我们一直基于一个假设:Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工 ...

  7. FPGA学习笔记(一)——初识FPGA

    ###### [该随笔部分内容转载自小梅哥]       ######### FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可 ...

  8. DOM元素的Attribute(特性)和Property(属性) 【转载】

    1.介绍: 上篇js便签笔记http://www.cnblogs.com/wangfupeng1988/p/3626300.html最后提到了dom元素的Attribute和Property,本文简单 ...

  9. SVN学习之windows下svn的安装

    svn是apache的一个开源项目,全称为subversion.是一个基于版本的项目管理软件,一般在多人开发的项目中使用,目前svn已经替代了原来的cvs.大多数情况下,svn服务安装在linux服务 ...

  10. Android 深入理解Android中的自定义属性

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45022631: 本文出自:[张鸿洋的博客] 1.引言 对于自定义属性,大家肯定 ...