一直有写个人博客的想法,拖拖拉拉终于到今天开始实施,hexo + git 搭建了个人博客,欢迎来访:微醺的个人博客
本人没有购买域名和服务器,仅使用github page平台托管自己的博客,这里可以安心写东西,不容费时间精力维护一个网站,hexo作为一个快速简洁的博客框架,用它来搭建博客还是非常容易的。
原由
市面上各种博客平台很成熟,但是容易受各种限制以及诸多广告引起不适,决定自己搭建个人博客。
第一次使用hexo + git搭建个人博客,做些笔记,以备年久忘记!
Hexo简介
Hexo 是一款基于Node.js的静态博客框架,依赖少、易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。
本教程分三部分:
一、hexo搭建还有部署到github上。
二、hexo的基本配置、更换主题、实现多终端工作,以及在coding page部署实现国内外分流。
三、hexo添加各种功能,包括搜索的SEO、阅读量统计、访问量统计和评论系统。
一、hexo搭建和部署
hexo搭建还有部署到github上, 我使用的是ubunut系统,安装以ubuntu为讲。
搭建步骤
1.安装git
2.安装node.js
3.安装hexo
4.github创建个人仓库
5.生成ssh密钥并添加到github
6.将hexo部署到github
7.发布文章
1.安装git
sudo apt-get install git
git --version查看版本号,确认是否安装好。
2.安装node.js
Hexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。
sudo apt-get install nodejs
sudo apt-get install npm
安装完成分别使用 node -v 和 npm -v检查是否安装成功。
3.安装hexo
mkdir blog 创建一个blog文件夹
npm install -g hexo-cli 安装hexo, 如果报权限问题,请加sudo。
hexo -v 查看版本号。
到这里工具已经安装完毕。 初始化hexo:
hexo init blog
cd blog ; npm install
安装完成blog目录下有:
├── _config.yml 博客的配置文件
├── db.json 不知
├── node_modules 依赖包
├── package.json 不知
├── public 存放生成的页面
├── scaffolds 生成文章的一些模板
├── source 用来存放自己的文章
└── themes 主题
hexo g
hexo s
在浏览器输入localhost:4000就可以看到自己生成的博客了。
4.github创建个人仓库
注册github账号并登录, Repositories -> new 创建一个个人仓库。仓库名:账户名.github.io,只有这样后面部署到github page的时候,才会被识别。也就是账户名.github.io。点击create repository。
5.生成ssh密钥并添加到github
git config –global user.name “yourname”
git config –global user.email “youremail”
这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户, 然后创建SSH,一路回车。
ssh-keygen -t rsa -C “youremail”
这个时候它会告诉你已经生成了.ssh的文件夹。把.ssh中id_rsa.pub内容拷贝出来, 而后在GitHub的setting中,找到SSH keys的设置选项,点击New SSH key把你的id_rsa.pub里面的信息复制进去。
ssh -T git@github.com 查看是否成功。
6. 将hexo部署到GitHub
deploy:
type: git
repo: git@github.com:xxxxx/xxxxx.github.io.git
branch: master
xxxxx是你的github账户名。这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。npm install hexo-deployer-git --save
然后hexo clean;
hexo generate;
hexo deploy
其中 hexo clean 清除你之前生成的东西,也可以不加。 hexo generate生成静态文章,也可以用hexo g缩写, hexo deploy 部署文章,hexo d为缩写。接下来在浏览器输入: http://xxxxx.github.io 就可以查看自己的博客了。
7.发布文章
hexo new “新的博客文章名”
source/_post中打开markdown文件,就可以开始编辑了。当你写完的时候,再:hexo ghexo d
就可以看到更新了。
二、hexo配置
hexo的基本配置,更换主题,实现多终端工作,以及在coding page部署实现国内外分流。
hexo基本配置
在根目录下的_config.yml,就是整个hexo框架的配置文件。可以在里面修改大部分配置。详情可参考官方配置描述。
网站
| 参数 | 描述 |
|---|---|
| titie | 网站标题 |
| subtitle | 网站副标题 |
| description | 网站描述 |
| author | 作者 |
| language | 语言 |
| timezone | 网站时区,默认使用电脑的时区 |
网址
| 参数 | 描述 |
|---|---|
| url | 网址 |
| root | 网址跟目录 |
| permalink | 文章的永久链接 |
| permalink_defaults | 永久链接中各部分的默认值 |
在这路,需要把url改为你的网站域名(如果购买了域名的)。permalink, 也就是你生成某个文章时的那个链接格式。
比如我新建一个文章叫tmp.md, 那么这个时候它自动生成的地址就是: http://localhost:4000/2019/05/03/tmp.md
theme: next 选择的主题是next, 对应theme目录下的next文件夹。
Front-matter
Front-matter 是文件最上方以 ——— 分隔的区域, 用于制定个别文件的变量,如:
title: Hello World
date: 2019-05-03 00:15:05
| 参数 | 描述 |
|---|---|
| layout | 局部 |
| title | 标题 |
| date | 建立日期 |
| updated | 更新日期 |
| commets | 开启文章的评论功能 |
| tags | 标签(不适用于分页) |
| categories | 分类(不适用于分页) |
删除文章
1.先删除本地文件
2.通过生成和部署命令进而将远程仓库中的文件也一起删除。
以最开始的helloworld.md这篇文章为例: 进入到source/_post文件夹中,找到helloworld.md文件,在本地执行删除。然后一次执行hexo g 、hexo d,此时再去博客主页查看已经没有了。
第三部分
hexo 添加各种功能,包括搜索的SEO、阅读量统计、访问量统计和评论系统。本文参考了zjufangzh以及visugar.com的博客。前人种树,后人乘凉。
1. SEO优化
推广是很麻烦的事情,怎么样别人才能知道我们呢,首先需要让搜索引擎收录你的这个网站,别人才能搜索的到。那么这就需要SEO优化了。
SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过站内优化比如网站结构调整、网站内容建设、网站代码优化等以及站外优化。
总结 (参考)
1.node_mudules文件夹中的的内容是整个hexo的依赖包,这个一般情况下不需要去做任何增删改。
2.public文件夹是当我们自行hexo generate 命令之后有hexo 根据我们的主题以及文章内容生成的一个文件夹。打开之后可以看到对应时间我们写的博客内容,例如我今天的博客就是public/2019/05/03/初尝hexo搭建个人博客/index.html
3.scaffolds其实就是手脚架的意思,有些人称之为模板,其实就是我们新生成一篇文章时从那个模板来生成。这里默认只有三个模板draft、page、post.
4.source和themes子文件夹,
5._config.yml文件,是主目录的配置,
6.db.json,没有仔细研究,后面再更新这部分内容。
7.package.json,没有研究。
Hexo 更换主题
theme官网有很多主题可供选择,可以点击预览、github地址查看效果后选择合适的安装。
下载主题
NexT主题入门
cd blog;
git clone https://github.com/iissnan/hexo-theme-next themes/next
启用主题
于所有Hexo 主题启用的模式一样。克隆/下载完毕后,打开[站点配置文件_config.yml], 找到theme字段,将其值改为next。heme: next
主题使用的样式:scheme: Gemini
设置菜单
menu:
home: / || home
about: /about/ || user
tags: /tags/ || tags
categories: /categories/ || th
archives: /archives/ || archive
schedule: /schedule/ || calendar
sitemap: /sitemap.xml || sitemap
设置菜单显示文本
编辑[站点配置文件], 设置地段language: zh-Hans ,可以显示中文。
处理菜单的点击跳转
按照上面的方式设置的菜单之后,点击标签,分类,或者关于我都会出现 404 页面,意思就是没有找到对应的页面。这个是因为source目录只有_posts文件夹,并没有生成对应的tags、categories、about等文件夹导致。
生成菜单文件夹
- 生成 tags 标签页
hexo new page tags
- 生成 about 标签页
hexo new page about
- 生成 categories 标签页
hexo new page categories
- 生成 schedule 标签页
hexo new page schedule
- 生成 sitemap 标签页
hexo new page sitemap
在重新部署一下就不会出现404问题了
在生成菜单文件夹的index.md 中增加 type 属性
此时如果重新发布网站之后,页面不会报错,但是还不能自动检索文章,需要在刚才生成的文件夹中的 index.md 中增加对应的 type 属性。
title: about
date: 2019-05-03 23:34:44
type: “about”
comments: false
在文章中加入 tags 和 categories 属性
---
title: 初尝hexo搭建个人博客
date: 2019-05-03 15:40:36
tags: [hexo,git,ssh]
categories: 前端,工具,环境搭建
toc: true
---
设置代码高亮主题
next 默认使用normal,还有其他可供选择night | night eighties | night blue | night bright
更改[主题配置文件] highlight_theme 字段,将其值设定成你所喜爱的高亮主题即可。
侧边栏社交链接
侧栏社交链接的修改包含两个部分,第一是链接,第二是链接图标。 两者配置均在 主题配置文件 中。
1.链接放置在 social 字段下,一行一个链接。其键值格式是 显示文本: 链接地址。
social:
GitHub: https://github.com/user-name || github
Google: https://www.google.com || google
设置「动画效果」
motion:
enable: true 开启动画效果
设置「背景动画」
编辑 主题配置文件, 搜索 canvas_nest 或 three_waves,根据您的需求设置值为 true 或者 false 即可。只能同时开启一种背景动画效果。
Hexo博客首页显示摘要
在文章内容中插入一行: `<!-- more -->` 即可只显示此命令之上的内容,起到显示摘要作用。
Ada主题例子:
git clone https://github.com/shuiRong/hexo-theme-Ada.git themes/Ada
修改hexo/_config.yml 的 theme: Ada