github.io 是基于 Github 的 repo 管理,这意味着我们对其是有绝对的控制,这个跟放在第三方的平台比,可控性要好太多。html
使用 github pages 服务搭建博客的好处有:node
登陆 Github 新建一个名为你的 用户名.github.io
的仓库,好比说,若是你的 Github 用户名是 test,那么你就新建 test.github.io
的仓库(必须是你的用户名,其它名称无效,不区分大小写),未来你的网站访问地址就是 https://test.github.io
了。github
因而可知,每个 Github 帐户最多只能建立一个这样能够直接使用域名访问的仓库。shell
几个注意的地方:npm
1)建立一个仓库,存放咱们的项目文件。json
2)填写仓库的属性,以下:(注意:这个仓库名比较特殊,取名格式为 userName.github.io,userName 为 Github 的用户名)。浏览器
3)进入设置后,往下拉,找到 GitHub Pages 设置界面。安全
1)选择主题并提交。bash
2)选择后会自动返回,这里能够编辑主题元素。
在浏览器地址栏里输入前面建立的仓库名,验证建立的博客页面是否成功。
固然,你不绑定域名确定也是能够的,就用默认的 xxx.github.io 来访问,若是你想更个性一点,想拥有一个属于本身的域名,那也是 OK 的。
1)首先注册阿里云帐号,若是有淘宝帐号的,能够直接登陆。登陆之后,先进行实名认证(购买域名要用到)。认证信息提交完毕后,可能须要一两天的审核时间。
2)认证完毕后回到首页,上方导航栏,产品 -> 企业应用 -> 域名与网站 -> 域名注册,搜索本身想要的域名并进行购买(域名持有者选择我的,这里就用到以前的认证)。
3)购买完毕后,回到首页点击右上方的控制台,进入后点击上方导航栏的产品与服务,而后选择域名,点击进入域名解析列表,而后就能够看到刚刚买的域名了,接下来进行解析配置(绑定)。
在终端中使用 ping 博客地址
指令获取博客的 IP 地址。
$ ping qianchia.github.io
1)进入域名解析列表并对购买的域名进行解析。
2)删除默认的并添加如下解析。第一个红框为前面建立的博客仓库名称,第二个红框是上一步获取到的你的博客站点的 IP 地址。
3)若是须要设置二级域名,则须要在主机记录中添加二级域名的地址,如设置二级域名为 blog。
解析配置好了之后,登陆 Github,进入到博客站点对应的仓库,对域名进行设置。
到这儿还没结束,在你的本地博客站点路径下的 source 文件夹里,建立一个名为 CNAME 的文件(注意要大写),里面写上你以前购买的域名。
另外说一句,在你绑定了新域名以后,原来的你的 userName.github.io 并无失效,而是会自动跳转到你的新域名。
为何要配置这个呢?由于你提交代码确定要拥有你的 Github 权限才能够,可是直接使用用户名和密码太不安全了,因此咱们使用 ssh key 来解决本地和服务器的链接问题。固然,你不配置 SSH key 而是直接使用用户名和密码确定也是能够的。
1)在终端执行以下命令。
# 检查本机已存在的ssh密钥 $ cd ~/.ssh
2)若是提示:No such file or directory 说明你是第一次使用 git。而后按照下面的步骤操做。
$ ssh-keygen -t rsa -C "邮件地址"
3)若是就没有出现上面的提示,跳过上一步,在用户目录下,找到 .ssh\id_rsa.pub
文件,若是 id_rsa.pub 文件不存在,用上一步中的命令生成,记事本打开并复制里面的内容。
4)打开你的 github 主页,进入 我的设置 -> SSH and GPG keys -> New SSH key,将刚复制的内容粘贴到 key 那里,title 随便填,保存。
5)执行如下命令测试是否成功。
# 注意邮箱地址不用改 $ ssh -T git@github.com
Hexo 是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持 Markdown 格式,有众多优秀插件和主题。
GitHub 仓库:https://github.com/hexojs/hexo
在终端中执行如下命令安装 Hexo。
$ npm install -g hexo
_config.yml
文件,一个是根目录下的全局的 _config.yml
,一个是各个 theme 下的;常见命令
# 新建文章 $ hexo new "postName" # 新建页面 $ hexo new page "pageName" # 生成静态页面至 public 目录 $ hexo generate # 开启预览访问端口(默认端口 4000,'ctrl + c' 关闭 server) $ hexo server # 部署到 Github $ hexo deploy # 查看帮助 $ hexo help # 查看 Hexo 的版本 $ hexo version # 清理 public 目录的内容 $ hexo clean
缩写
$ hexo n == hexo new $ hexo g == hexo generate $ hexo s == hexo server $ hexo d == hexo deploy
组合命令
# 生成并本地预览 $ hexo s -g # 生成并上传 $ hexo d -g
在电脑的某个地方新建一个名为 Hexo 的文件夹(名字能够随便取),好比目录 ~/Hexo,因为这个文件夹未来就做为你存放代码的地方,因此最好不要随便放。
在终端执行下面命令。
$ cd ~/hexo $ hexo init
Hexo 会自动下载一些文件到这个目录,包括 node_modules,目录结构以下图:
执行如下命令以后,Hexo 就会在 public 文件夹生成相关 html 文件,这些文件未来都是要提交到 Github 去的:
# 生成 $ hexo g # 启动服务 $ hexo s
hexo s
是开启本地预览服务,打开浏览器访问 http://localhost:4000 便可看到内容,不少人会碰到浏览器一直在转圈可是就是加载不出来的问题,通常状况下是由于端口占用的缘故。
第一次初始化的时候 Hexo 已经帮咱们写了一篇名为 Hello World 的文章,默认的主题比较丑,打开时就是这个样子:
既然默认主题很丑,那咱们别的不作,首先来替换一个好看点的主题。
以 yilia 主题为例,首先下载这个主题:
$ cd ~/hexo/ $ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
下载后的主题都在这里:
修改博客根目录 _config.yml
中的 theme: landscape
改成 theme: yilia
,而后从新执行 hexo g
来从新生成。
若是出现一些莫名其妙的问题,能够先执行 hexo clean
来清理一下 public 的内容,而后再来从新生成和发布。
1)请确保 node 版本大于 6.2。
2)在博客根目录(注意不是 yilia 根目录)执行如下命令:
$ npm i hexo-generator-json-content --save
3)在根目录 _config.yml
里添加如下配置:
# yilia 主题显示全部文章列表 jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true
在上传代码到 Github 以前,必定要记得先把你之前全部代码下载下来(虽然 Github 有版本管理,但备份一下老是好的),由于从 Hexo 提交代码时会把你之前的全部代码都删掉。
hexo d
就搞定,固然关键仍是你要把全部东西配置好。
_config.yml
中有关 deploy 的部分,须要特别注意的地方是冒号后面必须有一个空格,不然可能会出问题。正确写法:
deploy: type: git repository: git@github.com:qianchia/qianchia.github.io.git branch: master
错误写法:这种写法是 hexo 2.x 的写法,如今已经不行了。
deploy: type: github repository: https://github.com/qianchia/qianchia.github.io.git branch: master
不管是哪一种写法,此时直接执行 hexo d
的话通常会报以下错误:
Deployer not found: github 或者 Deployer not found: git
缘由是还须要安装一个插件,执行下面命令安装,其它命令不肯定,部署这个命令必定要用 git bash,不然会提示 Permission denied (publickey)
。
$ npm install hexo-deployer-git --save
打开你的 git bash,输入 hexo d
就会将本次有改动的代码所有提交,没有改动的不会。
提交以后网页上一看,发现之前其它代码都没了,此时不要慌,一些非 md 文件能够把他们放到 source 文件夹下,这里的全部文件都会原样复制(除了 md 文件)到 public 目录的:
因为 Hexo 默认会把全部 md 文件都转换成 html,包括 README.md,全部须要每次生成以后、上传以前,手动将 README.md 复制到 public 目录,并删除 README.html。
GitHub Pages 有提供制做 404 页面的指引:Custom 404 Pages。
直接在根目录下建立本身的 404.html 或者 404.md 就能够。可是自定义 404 页面仅对绑定顶级域名的项目才起做用。
推荐使用腾讯公益 404。
定位到咱们的 Hexo 根目录,执行命令:
$ hexo new 'my-first-blog'
Hexo 会帮咱们在 _posts
下生成相关 md 文件:
咱们只须要打开这个文件就能够开始写博客了,默认生成以下内容:
固然你也能够直接本身新建 md 文件,用这个命令的好处是帮咱们自动生成了时间。
通常完整格式以下:
--- title: postName # 文章页面上的显示名称,通常是中文 date: 2013-12-02 15:30:16 # 文章生成时间,通常不改,固然也能够任意修改 categories: 默认分类 # 分类 tags: [tag1, tag2, tag3] # 文章标签,可空,多标签请用格式,注意: 后面有个空格 description: 附加一段文章摘要,字数最好在 140 字之内,会出如今 meta 的 description 里面 --- 如下是正文
hexo new page "my-second-blog"
生成以下:
最终部署时生成:hexo\public\my-second-blog\index.html
,可是它不会做为文章出如今博文目录。
默认状况下,生成的博文目录会显示所有的文章内容,如何设置文章摘要的长度呢?
答案是在合适的位置加上 <!--more-->
便可,例如:
# 前言 使用github pages服务搭建博客的好处有: 1. 全是静态文件,访问速度快; 2. 免费方便,不用花一分钱就能够搭建一个自由的我的博客,不须要服务器不须要后台; 3. 能够随意绑定本身的域名,不仔细看的话根本看不出来你的网站是基于github的; <!--more--> 4. 数据绝对安全,基于github的版本管理,想恢复到哪一个历史版本都行; 5. 博客内容能够轻松打包、转移、发布到其它平台; 6. 等等;
最终效果: