hexo+github从0到1搭建免费个人博客

本教程详细记录了使用hexo+github从0到1搭建免费个人博客

基础环境搭建

  • 安装node.js
    node版本:
C:\Users\Administrator>node -v
v8.11.1
  • 安装git
    git版本:
C:\Users\Administrator>git --version
git version 2.9.0.windows.1
  • 选装cnpm
    淘宝cnpm官网。由于npm国内下载速度经常抽风,所以建议安装淘宝的这个镜像;使用方法就是在命令中把npm换成cnpm即可。
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装Hexo及其相关插件

  • 全局安装Hexo
cnpm install hexo-cli -g

装完成后输入hexo -v,出现版本信息则表示安装成功。

  • 在项目中安装Hexo
    在自定义目录(D:\workspace),新建hexo文件夹,然后输入cd hexo(进入该文件夹),在依次执行如下操作
hexo init   #这个时间也会比较长,也有可能要等几分钟,有显示 WARN 也不用管
cnpm install #有显示 WARN 也不用管

安装完成之后,D:\workspace\hexo 目录结构是这样的:


安装 hexo 后的目录结构
  • 安装hexo的插件
cnpm install hexo-server --save     #搭建本地服务器所需插件
cnpm install hexo-deployer-git --save   #使用git方式进行部署博客所需插件

在本地生成博客静态页面并预览

  • 在本地生成静态页面
hexo generate

会生成一个存放静态文件的文件夹public,其简写形式为hexo g;

  • 启动本地服务器
hexo server

其简写形式为hexo s;
这条指令运行完成后可在本地启动服务器并预览博客,默认网址为:http://localhost:4000/
如果以上步骤都不出意外的话,你就会看到一个Hexo博客初始化的页面。

image.png

创建Github pages并SSH授权

  • 创建仓库
    首先要有自己的Github账号,没有的可以到GitHub官网注册账号,注册完后,我们来下一步,在我们的GitHub上面右上角的New repository来创建一个仓库。
    image.png

仓库名必须遵守相应格式:github_username.github.io, 这样子在访问主页的时候直接用:github_username.github.io就能访问。

image.png

我这里因为是已经创建了一个仓库了,所以会有提示,然后点Create repository确定创建仓库。

  • 本地生成ssh密钥
    创建好仓库之后,要本地生成 SSH 秘钥,方便电脑上的 git 软件好提交内容到 Github上
  1. git bash命令行下输入ssh-keygen -t rsa -C ‘你的邮箱地址’,然后回车,回车,再回车,一共 3 次回车。
  2. 此时,生成密钥后,在你电脑目录:C:\Users\你的计算机用户名.ssh 下,会生成两个文件:
    私钥:id_rsa
    公钥:id_rsa.pub
  3. 现在用记事本打开 id_rsa.pub,复制文件中的所有内容
    访问:https://github.com/settings/ssh ,点击添加新秘钥(New SSH key),效果如下图
    Title:自己随便取
    Key:把刚刚复制的都粘贴进来
image.png

本地博客同步到GitHub上

这一步其实就是把本地生成的博客内容(静态页面)放到GitHub新建成的仓库qijian0503.github.io中。

  • 编辑博客配置文件: _config.yml
    在hexo根目录(也就是D:\workspace\hexo文件夹)下找到_config.yml文件,把其中的deploy参数(没有的话就按如下格式新建,注意冒号后面一定要有一个空格),修改为(你需要认真看的是含有中文注释的内容):
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site,这一块区域主要是设置博客的主要说明,需要注意的是:每个冒号后面都是有一个空格,然后再书写自己的内容的
title: qijian技术栈
subtitle: 记录所有技术相关
description: 技术栈
keywords:
author: qijian
language: zh-Hans
timezone:

# URL,这一块一般可以设置的是 url 这个参数,比如我要设置绑定域名的,这里就需要填写我的域名信息
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://geekstar.site
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:
  
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ''
  per_page: 10
  order_by: -date
  
# 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: 10
pagination_dir: page

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

# Deployment
## 这里是重点,这里是修改发布地址,因为我们前面已经加了 SSH 密钥信息在 Github 设置里面了,所以只要我们电脑里面持有那两个密钥文件就可以无需密码地跟 Github 做同步。
## 需要注意的是这里的 repo 采用的是 ssh 的地址,而不是 https 的。分支我们默认采用 master 分支,以后你翅膀硬了要换其他也无所谓。
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:qijian0503/qijian0503.github.io.git
  branch: master

  • 重新部署
    在博客根目录下打开Git Bash,依次执行如下Hexo命令:
hexo clean    #会清除缓存文件db.json及之前生成的静态文件夹public;
hexo g     #会重新生成静态文件夹public;
hexo deploy    #因为之前已经安装了插件并且在博客配置文件中也配置好了,所以这个命令会在博客根目录下生成一个.deploy_git的文件夹,并 把本地生成的静态文件部署到qijian0503.github.io这个仓库中的master分支上;简写形式为hexo d;

hexo g 和 hexo d可以合并在一起写:hexo g -d

执行:hexo deploy,有弹出下面提示框,请输入:yes


image.png

提交成功效果如下:


image.png
  • 在浏览器中访问博客
    在浏览器中输入 qijian0503.github.io(可能你已经发现了,这个就是之前新建仓库的名字,同时也是你博客的域名),即可以再次看到那个熟悉又亲切的博客页面了。

至此,我们已经通过Hexo创建了一个最原始的博客,并且通过把博客静态文件放到GitHub的仓库中,实现了从网上以GitHub的默认域名访问这个博客。接下来要做的就是要锦上添花了:换个好看的主题;自定义博客的域名;操作及优化博客。

更换主题

更换主题主要是两步,先下载主题然后放到博客中的themes文件夹(专门用来存放主题)下,再修改主题的配置文件_config.yml中相关参数,启用themes文件夹下新增的主题。这里用Next主题做示例。

  1. 下载Next主题。
    进入 hexoBlog/themes 文件夹中,打开Git Bash面板,输入:
git clone https://github.com/iissnan/hexo-theme-next themes/next

把主题包克隆到themes文件夹中即可。

  1. 启用主题
    与所有 Hexo 主题启用的模式一样。 当 克隆/下载 完成后,打开themes下的主题配置文件_config.yml, 找到 theme 字段,并将其值更改为 next(注意冒号后面要留一个 空格)。
  2. 验证主题
    清除并重新生成hexo静态文件,启动本地服务器,然后通过 http://localhost:4000/ 预览博客:
hexo clean      #清除静态文件
hexo g          #重新生成静态文件
hexo s      #启动服务器

如果网络没问题,通过域名访问你的博客也可以看到刚换的新主题了。
关于更换Next主题的详细介绍,也可访问Next中文官网

配置自定义域名

  • 注册域名
    域名注册商可选择阿里云等平台进行注册,.site|.top后缀域名都很便宜。这里就不记录了,大家自信去注册吧。

    image.png

  • 新建CNAME文件

新建一个CNAME文件(文件名叫 CNAME,没有文件后缀的),把该文件放在 D:\workspace\hexo\source 目录下
CNAME 上的内容需要写你具体要绑定的域名信息

image.png

依次执行

hexo clean 
hexo g 
hexo d
  • 域名解析设置
    查看github空间服务IP:ping www.qijian0503.github.io
    image.png

    登录阿里云【域名-点击域名列表中的域名-域名解析】进入域名的解析后台,添加如下两条解析记录:
    image.png

    设置好之后,等过几分钟域名解析好之后,我们访问:http://www.geekstar.site ,即可通过域名访问到你的博客了。

博客操作

  • 新建文章
hexo new post 背影

执行上面命令会新建一篇名为‘背影’的文章,源文件会自动生成到hexoBlog/source/_post 路径下,后缀为点md ,直接打开编辑就可以了。编辑完保存,然后再依次执行

hexo clean 
hexo g 
hexo d

在博客就可以看到你的文章了(有时候网络问题生成会比较慢,需要等几分钟才可以看到)。

  • 新建页面
    新建标签、分类、关于我等各种页面,并在博客的菜单栏中显示。这里以新建‘标签’页面来做示范。
  1. 创建页面
hexo new page 'tags'

会在hexoBlog/source路径下自动生成一个名为tags的文件夹,里面包含一个index.md的文件,在这个文件中添加对应的页面类型type: tags:

---
title: tags
date: 2018-09-16 16:20:05
type: "tags"
---
  1. 把页面路径添加到菜单中。
    编辑主题配置文件(themes/_config.yml),找到munu字段,添加tag: /tags(格式为item_name: link),如下:
menu:
    home: /
    tag: /tags    #‘标签’’页面的路径

参考链接:
https://blog.csdn.net/weixin_39345384/article/details/80787998
https://blog.csdn.net/qq_32454537/article/details/79482896
https://www.jianshu.com/p/21c94eb7bcd1
https://blog.csdn.net/linshuhe1/article/details/52424573
https://www.jianshu.com/p/1c98aed8d92e
https://www.jianshu.com/p/ea5ac6162a96
https://blog.csdn.net/u011976726/article/details/78217467
https://www.cnblogs.com/wanghuaijun/p/7073296.html
https://www.cnblogs.com/zhangqie/p/7978394.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342