前言

有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客。

推荐理由:

  1. 免费:github提供gh-pages服务是免费的,有300MB空间;
  2. 开源:由于github开源的原因,有很多人参与其中,自然技术支持很好。
  3. 便捷:博客完全托管在github上,基本上不需要花时间去管理,博客使用Markdown语法,上手很容易。

需要了解的内容(能掌握更好):

  • html+css+javascript
  • git基本语法
  • markdown语法
  • nodejs

目前,在github上搭建博客系统使用最多就是HexoJekyll

Hexo是基于Nodejs开发的,Jekyll是基于Ruby开发的。

通过两个系统使用的比较,个人习惯喜欢Hexo,所以本文介绍的是Hexo搭建博客,如果你对Jekyll也有兴趣,可自行学习。

安装Git客户端

已安装过的用户略过

  1. 下载Git客户端:下载地址
  2. 安装Git客户端:Windows用户直接Next就可以了。Mac和Linxu系统的用户可通过命令方式安装,这里不详细介绍了。

注册GitHub

老手和已注册过的用户略过

  1. 打开GitHub官网:https://github.com/
  2. 填写注册信息进行注册操作:没有登录的用户打开网站首页就会显示注册的操作(如图所示),或者是点击Sign up按钮进入注册详情页。

  3. 填写好注册信息,点击Sign up for GitHub(注册)按钮后,接下来是选择协议部分。根据自己的情况选择相关的协议,一般人选的都是免费的那一项。

创建仓库

  1. 登录github账号:在github首页点击Sign in按钮进入登录页面。填写用户名或邮箱和密码,点击Sign in按钮登录。

  2. 点击创建仓库:点击在登录的用户图像左边的+号和下三角符号按钮。

  3. 填写创建仓库信息:

    仓库名称必须是用户名.github.io(别问我为什么,人家就是这样规定的),比如我的用户名是SeayXu,就是SeayXu.github.io。

  4. 填写好相关信息,点击Create repository(创建仓库)按钮。

配置SSH

老手和已配置过的用户略过

  1. 打开Git Bash终端:在桌面右键,会出现"Git Bash here"的选项,点击即可。
  2. 设置user name和email:
$ git config --global user.name "你的GitHub用户名"
$ git config --global user.email "你的GitHub注册邮箱"
  1. 生成ssh密钥:输入下面命令
$ ssh-keygen -t rsa -C "你的GitHub注册邮箱"

一般情况下是不需要密码的,所以,接下来直接回车就好。

此时,在用户文件夹下就会有一个新的文件夹.ssh,里面有刚刚创建的ssh密钥文件id_rsaid_rsa.pub

注:id_rsa文件是私钥,要妥善保管,id_rsa.pub是公钥文件。

4. 添加公钥到github:

点击用户头像,然后点击显示的Settings(设置)选项;



在用户设置栏,点击SSH and GPG keys选项,然后点击New SSH key(新建SSH)按钮;



将id_rsa.pub中的内容复制到Key文本框中,然后点击Add SSH key(添加SSH)按钮;



5. 测试SSH:

$ ssh -T git@github.com

接下来会出来下面的确认信息:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 17:24:ac:a5:76:28:24:36:62:1b:36:4d:eb:df:a6:45.
Are you sure you want to continue connecting (yes/no)?

输入yes后回车。

然后显示如下信息则OK(其中的SeayXu是用户名)。

Hi SeayXu! You've successfully authenticated,
but GitHub does not provide shell access.

以上是准备工作。

创建本地仓库

打开Git Bash终端,等待执行命令。

  1. 新建仓库文件夹:这里就取名为blog。
$ mkdir blog
  1. 进入到blog文件夹:
$ cd blog # 切换到blog目录

初探Hexo

如果没有安装Nodejs,请先安装Nodejs,Nodejs官网

以下操作是在blog文件夹中。

  1. 安装Hexo
$ npm install hexo-cli -g

hexo全局安装一次就够了,后面可以直接使用hexo相关的操作。

  1. 初始化Hexo
$ hexo init
  1. 安装依赖
$ npm install
  1. 启动Hexo
$ hexo server

启动之后,打开浏览器,在地址栏输入:http://localhost:4000,你会看到Hexo的示例页面。

注:此时可以初始化git本地仓库了,或者是等本地博客搭建好之后也可以。

再探Hexo

  1. 新建文章:
$ hexo new <title>

此时在source_posts文件夹中便会多出一个文档"title.md".

如果要删除,直接在此文件夹下删除对应的文件即可。

2. 生成静态页面

$ hexo generate

生成的静态内容在public文件夹内。

3. 清除生成内容

$ hexo clean

执行此操作会删除public文件夹中的内容。

4. 部署Hexo

$ hexo deploy

该操作会将hexo生成的静态内容部署到配置的仓库中,请看下面介绍。

部署Hexo

  1. 编辑配置文件,关联远程仓库:

    在编辑器中打开Hexo配置文件_config.yml,找到下面内容:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type:

添加github仓库信息:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:SeayXu/seayxu.github.io.git #github仓库地址
branch: master # github分支

注意:type、repo、branch的前面有两个空格,后面的:后面有一个空格

  1. 安装git插件
npm install hexo-deployer-git --save

如果没有安装git插件,会有错误提示,安装后重新部署就可以了。

  1. 部署
$ hexo deploy

如果没有意外,部署就成功了,可以打开 http://<用户名>.github.io 查看。

hexo命令缩写

  • hexo g:hexo generate
  • hexo c:hexo clean
  • hexo s:hexo server
  • hexo d:hexo deploy

hexo命令组合

hexo clean && hexo g -s,就是清除、生成、启动

hexo clean && hexo g -d,就是清除、生成、部署

本文简单介绍Hexo的部署,接下来的文章会介绍Hexo的相关配置。



【Hexo博客交流群】

群号:582271078

原文:手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  3. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  4. 基于Hexo搭建博客并部署到Github Pages

    基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几 ...

  5. Hexo搭建博客教程(1) - 安装环境与本地搭建

    前言 搭建个人博客一般有两种选择,一个是使用WordPress,但是需要将博客搭建在服务器上,不过搭建好后写文章方便,适合没有程序基础的人使用.另一个是使用Hexo,相对简洁高效,不需要服务器,既可以 ...

  6. Hexo搭建博客教程(3) - 远程部署到GitHub Pages

    本章讲的是如何将本地的个人项目远程部署到 GitHub Pages,涉及到GitHub的项目仓库.Git的使用,以及Hexo的远程部署等. 1. 安装 hexo-deployer-git 插件 想要将 ...

  7. Hexo搭建博客教程(2) - 博客的简单个性化配置

    本章主要讲博客的个性化,譬如站点的基本配置(语言.头像.站点图标等).安装新的Hexo主题(NexT主题)以及主题的配置. 1. 修改站点配置 打开站点配置文件 ,找到: # Site title: ...

  8. Note | 用Hugo搭建博客并部署到GitHub Pages

    目录 1. 本地搭建 1.1 安装Hugo 1.2 创建站点 1.3 新建页面和文章 1.4 使用主题 1.5 修改配置文件 1.6 预览 2. 部署 之前担心过现有博客平台(如博客园,CSDN)突然 ...

  9. 使用github+hexo搭建博客笔记

    听说github上可以搭博客,而且不用自己提供空间和维护,哈哈哈 作为一名程序猿,github搭博客对我有种神奇的吸引力,赶紧动手试一试 关于如何使用hexo搭建博客网上好的教程多如牛毛,而且这篇博客 ...

随机推荐

  1. svn 常用命令总结

    svn 命令篇 svn pget svn:ignore // 查看忽略项 svn commit -m "提交说明" // 提交修改 svn up(update) // 获取最新版本 ...

  2. JavaScript基础知识总结(四)

    JavaScript语法 八.函数 函数就是完成某个功能的一组语句,函数由关键字function + 函数名 + 加一组参数定义: 函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可 ...

  3. java中if和switch哪个效率快

    首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...

  4. FineReport:任意时刻只允许在一个客户端登陆账号的插件

    在使用FineReport报表系统中,处于账户安全考虑,有些企业希望同一账号在任意时刻智能在统一客户端登录.那么当A用户在C1客户端登陆后,该账号又在另外一个C2客户端登陆,服务器如何取判断呢? 开发 ...

  5. mono for android学习过程系列教程(4)

    今天要讲的事情是构建安卓程序的UI界面. 首先给大家上点小点心,如图: 上面就是我们界面的设计模块,仔细看中间大块的下方,有一个Source,这就类似webform里面的设计和源代码界面. 在这个页面 ...

  6. 关于HTML语义化的一些理解

    语义化这个词我想大家都看到了无数次,特别是在一些招聘广告上. 其实我自己也是,不过每次看到都觉得是那些招聘公司复制的,其实他们根本说不清语义化是什么,而且也根本不看重. 所以我一直也没把这东西当回事过 ...

  7. 锤子OneStep及BigBang使用体验

    令人期待的Smartisan OS v3.1.2终于推送了,第一时间下载了更新.几乎花了半个小时才升级完毕,捧着还热乎的手机,赶忙体验一下传说中的两大杀器:OneStep以及BigBang. 先说On ...

  8. 曲演杂坛--蛋疼的ROW_NUMBER函数

    使用ROW_NUMBER来分页几乎是家喻户晓的东东了,而且这东西简单易用,简直就是程序员居家必备之杀器,然而ROW_NUMBER也不是一招吃遍天下鲜的无敌BUG般存在,最近就遇到几个小问题,拿出来供大 ...

  9. 小丁带你走进git的世界四-重写历史记录

    一.git对象文件创建 开篇先补充一个知识点,就是比如我建立一个文件之后,使用git add就会生成一个git对象,但是git对象生成后可以在.git/objects里面对应,首先我们来初始化一个仓库 ...

  10. .NET 基础一步步一幕幕[out、ref、params]

    out.ref.params out: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组. 但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候, 我们可以考虑使用 ...