使用Github+Hexo搭建独立博客

应用GitHub Pages创建属于自己的个人博客,GitHub将提供免费的空间。GitHub提供的域名(用户名+github+io),在Repository name对应处填写资源名,其需要使用自己的用户名,每个用户名下面只能建立一个,并且资源命名必须符合这样的规则username/username.github.io,之后勾选下面的”Initialize this repository with a README”

安装准备

环境搭建:

可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:

$ ssh -T git@github.com

如果是下面的反馈:

The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

不要紧张,输入yes就好,然后会看到:

Hi cnfeat! You’ve successfully authenticated,
but GitHub does not provide shell access.

设置用户信息:
现在你已经可以通过SSH链接到GitHub了,还有一些个人信息需要完善的。

Git会根据用户的名字和邮箱来记录提交。

$ git config –global user.name “cnfeat”//用户名
$ git config –global user.email “cnfeat@gmail.com”//填写自己的邮箱

SSH Key配置成功,本机已成功连接到github.

Hexo

Hexo是一个简单、快速、强大的博客发布工具,支持Markdown格式。

安装

新建一个文档 当作博客根目录(尽量不要有中文),在此目录下打开Git Bash(前提确保Node.js已经安装,环境配置OK)

$ npm install -g hexo

$ hexo init

$ hexo generate

$ hexo server

打开本地http://localhost:4000/你就可以看到hexo网站了。

注:

  • hexo server启动之后无法访问:使用-p参数改端口
  • npm命令找不到:使用npm.cmd,或者卸载重装
  • git命令找不到:git init先初始化

    部署到GitHub

    编辑hexo目录下的_config.yml(此文件为你网站的配置文件)

修改代码如下:

1
2
3
type: git
repository: http://github.com/drops123456/drops123456.github.io.git
branch: master

然后执行:

hexo g 编译生成静态文件

hexo d 发布到Github

访问:http://username.github.io/即可看到网站。

如果需要使用别的域名,在根目录下创建文件CNAME内容为你的域名即可(关于A记录和CNAME,请参考:域名解析的区别

clone主题

选择一个主题

在把下载的主题拷贝到hexo/themes目录下,配置_config.yml

theme: yelee

部署主题

$ hexo g #生成
$ hexo s #启动本地服务,进行文章预览调试

实例example

以我的网站的配置,如下:

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: Joy_nick
subtitle: No pains, No gains!
description: No pains, No gains!
author: Joy_nick
language: zh-CN
timezone:

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://byd.dropsec.xyz
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

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

# Writing
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: false
  tab_replace:

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 8
pagination_dir: page

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: yelee

feed:    #之后配置rss会用,使用如下配置即可
  type: atom
  path: atom.xml
  limit: 20 

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repository: http://github.com/drops123456/drops123456.github.io.git
  branch: master

发布新的文章

  • cd到网站根目录下

    $ hexo new “My New Post”

    [info] File created at d:\Hexo\source_posts\My-New-Post.md

  • 编译生成静态文件

    hexo g

  • 部署到Github

    hexo d
    也可以使用命令:hexo g -d

注:建议每次部署前,先本地查看

命令总结

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #将.deploy目录部署到GitHub
hexo help  # 查看帮助
hexo version  #查看Hexo的版本
大爷,赏个铜板呗!