hexo+github搭建个人博客(一)

前言

使用github pages服务搭建博客的好处有许多:

  • 全是静态文件,访问速度快;
  • 免费方便,不需要服务器不需要后台;
  • 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;
  • 博客内容可以轻松打包、转移、发布到其它平台;
  • 等等;

本文是用windows系统


正文

准备工作

  1. Node.js: 用来创建hexo博客框架的,我的版本为:node-v6.10.2-x64
  2. Git客户端: 用来提交代码,至于它的命令大家应该都会一点,如果即使不懂Git的命令,跟着本博文走,也完全没问题,我安装的版本是Git-2.12.2-64-bit

安装完后可以打开cmd控制台,输入命令查看版本,这里给出我的例子:

hexo+github搭建个人博客(一)

如果显示版本就说明安装成功了。

安装hexo

首先介绍一下hexo的常见命令:

hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help  # 查看帮助
hexo version  #查看Hexo的版本
缩写:
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
组合命令:
hexo s -g #生成并本地预览
hexo d -g #生成并上传
利用 npm 命令即可安装。在任意位置点击鼠标右键,选择Git Base 输入安装hexo命令:
npm install -g hexo
安装完成后,在你想要把hexo部署到文件夹下(如我的是F:\develop\hexo,这个文件夹自己创,点击鼠标右键,选择Git Bash),执行
hexo init

这个指令Hexo 即会自动在目标文件夹建立网站所需要的所有文件。

安装依赖包:

npm install

让我们看看刚刚下载的hexo文件带来了什么,在F:\develop\hexo内执行以下命令:

hexo g
hexo s

然后打开浏览器访问http://localhost:4000, 此时,你应该看到了一个漂亮的博客了,当然这个博客只是在本地的,别人是看不到的。但是这也足够让我们激动了是不是,接下来就是如何把它部署到github上了。

创建repository

如何你还没有github帐号,那么就先去创建并熟悉一下,这里就不再多说了。

repository相当于一个仓库,用来放置你的代码文件。首先,进入创建的页面,按下图输入:

hexo+github搭建个人博客(一)

比如我创建的就是sjw9507.github.io,这也是我之后能够访问到自己博客的域名。

部署本地文件到github

首先你需要到你安装hexo的文件夹下(比如我安装在F:\develop\hexo)找到_config.yml这个文件,如果我没记错的话在最下面,修改成如下格式

deploy: 
  type: git
  #sjw9507改为你的github用户名
  repo: [email protected]:sjw9507/sjw9507.github.io.git
  branch: master

完整文件如下,可以根据自己的喜好修改其他参数

#博客名称
title: 我的博客
#副标题
subtitle: 
#简介
description: 
#博客作者
author: 
#博客语言
language: zh-CN
#时区
timezone:

#博客地址,与申请的GitHub一致
url: http://elfwalk.github.io
root: /
#博客链接格式
permalink: :year/:month/:day/:title/
permalink_defaults:

source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: true
  tab_replace:

default_category: uncategorized
category_map:
tag_map:

#日期格式
date_format: YYYY-MM-DD
time_format: HH:mm:ss

#分页,每页文章数量
per_page: 10
pagination_dir: page

#博客主题
theme: landscape

#发布设置
deploy: 
  type: git
  #sjw9507改为你的github用户名
  repo: [email protected]:sjw9507/sjw9507.github.io.git
  branch: master

配置好_config.yml并保存后。如果你是第一次使用Github或者是已经使用过,但没有配置过SSH,则可能需要配置一下。

可以输入这个命令查看下有没有配置成功过。

ssh -T [email protected] # 注意邮箱地址不用改

如果没配置过,按照以下步骤:

cd ~/. ssh #检查本机已存在的ssh**
如果提示:No such file or directory 说明你是第一次使用git。 如果出现bash: cd: too many arguments 说明可能你生产过ssh key,你可以到.ssh文件把他们删除再生成一遍即可。 输入以下指令(邮箱就是你注册Github时候的邮箱)后,回车,出现提示让你输入的时候直接先回车,好像需要3次,如下图所示:
ssh-****** -t rsa -C "你的邮箱地址"
这之后就会生成一些文件,打开用户目录,找到.ssh\id_rsa.pub文件,记事本打开并复制里面的内容,打开你的github主页,进入个人设置 -> SSH and GPG keys -> New SSH key: ![img](https://raw.githubusercontent.com/sjw9507/imgs/master/hexo/hexo1/3.jpg) 将刚复制的内容粘贴到key那里,title随便填,保存。 然后添加**到ssh-agent
eval `ssh-agent -s` 
然后
ssh-add

会出现一个identity added的消息

接着测试是否成功

ssh -T [email protected] # 注意邮箱地址不用改

如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:

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

看到这个信息说明SSH已配置成功!


执行以下命令部署到Github上

hexo g
hexo d

这里有个地方会出错,如果执行hexo d命令报ERROR Deployer not found:git

就先安装一下hexo-deployer-git这个模块:

npm install hexo-deployer-git --save

安装好了继续执行hexo d部署命令,输入gitHub的账号密码,就可以打开浏览器访问了。
我的是:sjw9507.github.io

发布一篇文章

在Git Bash执行命令:

hexo new "my new post"
在hexo\source_post 会生成一个my-new-post.md的文件,当然你也可以自己手动创建。不过自动生成的比较方便,会帮你生成好以下内容:
title: my new post #可以改成中文的,如“新文章”
date: 2016-02-21 16:04:09 #发表日期,一般不改动
categories: blog #文章文类
tags: [文章] #文章标签,多于一项时用这种格式,只有一项时使用tags: blog

使用记事本或者其他文本工具打开文件编辑,它是markdown语法的,所以我建议大家使用专用的编辑器,网上找找有许多推荐好用的,我使用的是markdownpad。至于markdown的语法,网上简单学学也不难。

写完文章后,你可以hexo g生成静态文件,然后hexo s在本地预览效果。或者直接hexo d同步到github。

总结

到这里,就算初步搭好了一个属于自己的独立博客,后续就是本地写文章然后部署最后发布就行。当然这只是最基础的。hexo还有许多好看的主题,我会在下一篇文章中写到。本文算是详细的介绍了搭建过程,按照我这个整理的教程搭建,理论上都能搭建成功。遇到问题大家多多讨论。