Github Pages 是 github 公司提供的免费的静态网站托管服务,用起来方便而且功能强大,不仅没有空间限制,还可以绑定自己的域名。在 https://pages.github.com/ 首页上可以看到很多用
Github Pages 托管的网站,很漂亮。另外很多非常著名的公司和项目也都用这种方式来搭建网站,如微软和 twitter 的网站,还有 谷歌的
Material Design 图标
 网站。

分类和文档

到 https://pages.github.com/ 上,看到可以创建的网站有两类,一类是为自己或者是自己的组织创建站点,就是新建一个仓库,仓库的名字叫做,username.github.io
或者是 orgnizationname.github.io ,注意这里的 username 和 orgnizationname 要严格替换成你自己的用户名或者组织名,大小写也要区分,不然就会有问题。然后就往仓库里面放页面内容就行了。第二类是为项目创建网站,这个其实主要步骤都是一样的,只不过稍微比创建用户或组织网站复杂一点点,下面就以它为例来演示。

建一个项目网站的详细步骤在 https://pages.github.com/ 页面上是有的,如下图

选择 Project Site 然后下面有两项,一个是用自动生成器自动生成( Generate a site )一个漂亮的网站,另一个方案是自己手写,咱们选后者,因为这个方案比较能展示清楚整个 Github Pages 的使用原理。

一路沿着文档给出的步骤坐下来,网站就有了。下面实际来动手弄弄。

制作过程

首先来到项目首页,例如 https://github.com/happypeter/coco 。

上图中,点 master 按钮,弹出的输入框中输入 gh-pages ,注意拼写和大小写都不要写错。然后回车,就可以创建出新分支
gh-pages 了。如下图

上图中看到,现在项目以及切换到了 gh-pages 分支,如大箭头所指。虽然 coco 项目不是开源的,但是我们放到 gh-pages 分支上的内容是会被公开成网页的,这个要注意。点击大圆圈中的加号,来添加第一个文件。

名字一定要叫 index.html ,里面的内容就随便写了。保存之后,过几分钟就可以到 username.github.io/project 这个链接中看到页面了,对于这类的情况就是 http://happypeter.github.io/coco/ 这个链接就是网站的公网 url 了。后面可以继续添加 HTML,CSS 和 JS 进来,丰富网站功能。

上面这些还只是展示了 Github Pages 的托管静态页面的功能,但是其实故事并不停在这个地方。在https://pages.github.com/ 的最低端还可以看到下面三个事情:

最后一项“指南”大家可以用来参考。下面分别来介绍一下 Jekyll 和绑定自己域名的功能。

jekyll

Jekyll 是一个简单的,支持博客结构的,静态网站生成器。

上面这段话是 Jekyll 之父 Tom 在一篇文章叫做 blogging-like-a-hacker 中说的。

Jeklly 的具体使用本身跟 Git 没有直接联系,所以这里就不细说了。它主要能完成的功能有下面几项:

  1. 页面不用 html 来写了,而用更为简单的 markdown 格式来写
  2. 可以使用布局文件和片段文件
  3. 代码高亮支持
  4. 可以使用变量

详细内容参考 jekyll 官网 。 我也录了一期详细的 Jekyll 使用视频,放在我的好多视频网站上。

绑定自己的域名

有一个功能其实很重要,就是绑定自己的域名。想想如果有天 github 网站被依法和谐了,那怎么办?如果一开始就是用自己的域名,那就简单了,直接换一台服务器就好了。

绑定域名的具体的操作步骤在这里 不详细说明 。

到这里,如果有人访问 我自己的域名blogloading.com 就可以指向 github 了,但是 github pages 上面网站众多,如何能找到我自己的那个特定网站呢?要到 happypeter/gitbeijing项目的
gh-pages 分支,创建 CNAME 文件,里面的内容为

blogloading.com

这样操作结束,当然还要稍微等几个小时给 DNS 扩散。晚上做完上面的操作,第二天早上访问blogloading.com 已经可以访问到我的网站了。

总结

喜欢分享是一个好程序员的标志,我给我的很多初学编程的朋友的建议就是,先学习如何用 Github Pages 搭建自己的个人网站,一来可以锻炼一些基本的网站开发技巧,二来可以建立一个分享的阵地。

[GitHub]第八讲:GitHub Pages的更多相关文章

  1. GitHub详解(GitHub for Windows)

    GitHub详解 GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath ...

  2. 基于github for windows&github的团队协作基本操作

    首先,我们要在github上团队协作.先要建立一个team.这个自行百度,在github上操作就是. 点击打开链接 这是我的有道文章(假设看不到图片的话) 今天主要讲的是怎么操作github for ...

  3. github 入门教程之 github 访问速度太慢怎么办

    github 是全世界最流行的开源项目托管平台,其代表的开源文化从根本上改变了软件开发的方式. 基本上所有的需求都能从 github 上或多或少找到现成的实现方案,再也不用重头开始造轮子而是自定义轮子 ...

  4. Stanford机器学习---第八讲. 支持向量机SVM

    原文: http://blog.csdn.net/abcjennifer/article/details/7849812 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回 ...

  5. 《ArcGIS Engine+C#实例开发教程》第八讲 属性数据表的查询显示

    原文:<ArcGIS Engine+C#实例开发教程>第八讲 属性数据表的查询显示 第一讲 桌面GIS应用程序框架的建立 第二讲 菜单的添加及其实现 第三讲 MapControl与Page ...

  6. [个人翻译]GitHub指导文件(GitHub Guides[Hello World])

    [个人翻译]GitHub指导文件(GitHub Guides[Hello World]) Mirage_j个人翻译,欢迎转载,最好标明出处http://www.cnblogs.com/mirageJ/ ...

  7. PE格式第八讲,TLS表(线程局部存储)

    PE格式第八讲,TLS表(线程局部存储) 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶复习线程相关知识 首先讲解 ...

  8. 逆向知识第八讲,if语句在汇编中表达的方式

    逆向知识第八讲,if语句在汇编中表达的方式 一丶if else的最简单情况还原(无分支情况) 高级代码: #include "stdafx.h" int main(int argc ...

  9. Linux第八讲随笔 -tar / 系统启动流程

    linux 第八讲1.tar 参考 作用:压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的. 语法:tar[必要参数][选择参数][文件] 参数:必要参数有如下: -A 新增压缩文件到 ...

随机推荐

  1. 第三次C语言作业

    (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 输入输出样例1: Enterr x: 10.0 f(10.0) = 0.1 输入输出样例2: En ...

  2. css3中-moz、-ms、-webkit各什么意思

    1.-moz代表firefox浏览器私有属性 2.-ms代表ie浏览器私有属性 3.-webkit代表safari.chrome私有属性 这些是为了兼容老版本的写法,比较新版本的浏览器都支持直接写:b ...

  3. IOI2016Day2. Messy

    题目链接:http://uoj.ac/problem/239 题目大意: 这是一道交互题,交互库维护了一个数据结构,可以存储n为二进制串,一开始你可以向空的数据结构中插入若干二进制串, 接下来这个数据 ...

  4. 用burpsuite暴力破解后台

    [实验原理] Burp Suite是Web应用程序测试的最佳工具之一,其多种功能执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登录表单,执行会话令牌等多种的随机性检查. Burp ...

  5. Unity CommandBuffer的一些学习整理

    1.前言 近期在整理CommandBuffer这块资料,之前的了解一直较为混乱. 算不上新东西了,但个人觉得有些时候要比加一个摄像机再转RT廉价一些,至少省了深度排序这些操作. 本文使用两个例子讲解C ...

  6. 上篇:python的基本数据类型以及对应的常用方法(数字、字符串、布尔值)

    为了日后便于查询,本文所涉及到的必记的基本字符串方法如下: "分隔符".join(字符串)    #将字符串的每一个元素按照指定分隔符进行拼接.split("字符串&qu ...

  7. 通过ajax和spring 后台传输json数据

    在通过ajax从页面向后台传数据的时候,总是返回415(Unsupported media type)错误,后台无法获取数据.如下图所示: 在尝试解决这个问题的时候,我们首先要理解一下概念: @req ...

  8. Android开发技巧——使用Drawable实现小红点

    在产品的设计中,总难免需要我们开发去实现各种各样的小红点,小红点,小红点. 通常,我们可能会这样做: 用一个View实现小红点,放在相对布局里,设置好内边距或外边距,让它位于图片的右上角. 或者是给图 ...

  9. JS——2048(支持触屏及键盘操作)

    <html> <head> <title>2048</title> <style type="text/css"> ta ...

  10. linux网络编程之二-----多播(组播)编程

    多播编程实例 服务器端 下面是一个多播服务器的例子.多播服务器的程序设计很简单,建立一个数据包套接字,选定多播的IP地址和端口,直接向此多播地址发送数据就可以了.多播服务器的程序设计,不需要服务器加入 ...