
NPM安装:
安装太慢的话,使用镜像解决。
npm config set registry http://registry.npm.taobao.org
下载Hexo:
输入
hexo g
生成静态网页,然后输入hexo s
打开本地服务器。
npm install -g hexo-cli
hexo init blog
本地连接GitHub:
首先右键打开
Git Bash
,然后输入下面命令:
git config --global user.name "godweiyang"
git config --global user.email "792321264@qq.com"
生成密钥SSH key:
ssh-keygen -t rsa -C "792321264@qq.com"
打开GitHub,在头像下面点击Settings,再点击
SSH and GPG keys
,新建一个SSH,名字随便。
cat ~/.ssh/id_rsa.pub
将输出的内容复制到框中,点击确定保存。
输入
ssh -T git@github.com
,出现你的用户名,那就成功了。
主页文章按更新时间排序
index_generator:
path: ''
per_page: 20
order_by: -updated
per_page
设置每页显示的文章数量。
order_by
指定文章的排序方式。
-date
: 按照文章发布日期的倒序排序;
-updated
: 按照文章更新时间的倒序排序;-title
: 按照文章标题的倒序排序;
域名绑定
你的hexo本地目录,
cd source
,touch CNAME
创建CNAME文件。
xiaoflyfish.cn
给解析添加A类型:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
博客备份
切换并创建一个叫hexo的分支
git checkout -b hexo
# 切换分支
git checkout hexo
将复制过来的文件推送到github
git add .
git commit -m "新建分支"
git remote add origin https://github.com/zine-fj/zine-fj.github.io.git
git push -u origin hexo
注意:如果themes下human的文件夹无法上传,因为有
.git
文件。删除子文件夹下
.git
后,依然无法提交子文件夹下的文件,解决操作如下。
git rm --cached themes/hueman
git add .
git commit -m "xxx"
git push origin master
换电脑配置
进入 原来电脑
hex
o 博客目录,只拷如下几个目录。换电脑,同时要把
.git文件
夹复制过去,然后安装相关插件。
scaffolds 文章模版 必须备份
source 博客文章 必须备份
themes 主题 必须备份
.gitignore 限定在push时那些文件可以忽略 必须备份
_config.yml 站点配置文件 必须备份
package.json 安装包的名称 必须备份
.ssh 密钥文件 必须备份
部署到GitHub
安装一个扩展
npm i hexo-deployer-git
最后输入
hexo d
上传到GitHub上。
deploy:
type: git
repository: https://github.com/xiaoflyfish/xiaoflyfish.github.io
branch: master
部署到Coding
配置SSH公钥:
Typora图片配置
偏好设置->图像->设置图片根目录
typora-root-url: ../../../themes/hunam/source
插入音乐
npm install hexo-tag-aplayer --save
{% aplayer "Caffeine" "Jeff Williams" "11.mp3" "autoplay" %}
<%- css('https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css') %>
<%- js('https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js') %>
置顶文章
npm install hexo-generator-topindex --save
---
title: 每天一个linux命令
date: 2017-01-23 11:41:48
top: 1
categories:
- 运维
tags:
- linux命令
---
如果存在多个置顶文章,top后的参数越大,越靠前。
文章加密
npm install --save hexo-blog-encrypt
全局配置文件
_config.yml
中启用该插件:
# Security
encrypt:
enable: true
将 password 字段添加到文章信息头:
title: Hello World
date: 2016-03-30 21:18:02
password: abcd1234xxx
---
按标签加密:
- 对博文禁用 Tag 加密:
- 将博文头部的
password
设置为""
即可取消 Tag 加密。
title: Hello World
tags:
- 加密文章tag
date: 2019-10-26 20:22:58
password: mikemessi
abstract: 该文章已加密, 请输入密码查看。
message: 该文章已加密, 请输入密码查看。
wrong_pass_message: 密码不正确,请重新输入!
wrong_hash_message: 文章不能被校验, 不过您还是能看看解密后的内容!
---
全局配置文件
_config.yml
中配置该插件:
# Security
encrypt: # hexo-blog-encrypt
abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
tags:
- {name: tagName, password: 密码A}
- {name: tagName, password: 密码B}
template: <div id="hexo-blog-encrypt" data-wpm="{{hbeWrongPassMessage}}" data-whm="{{hbeWrongHashMessage}}"><div class="hbe-input-container"><input type="password" id="hbePass" placeholder="{{hbeMessage}}" /><label>{{hbeMessage}}</label><div class="bottom-line"></div></div><script id="hbeData" type="hbeData" data-hmacdigest="{{hbeHmacDigest}}">{{hbeEncryptedData}}</script></div>
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.
部署云服务器
安装nginx:
yum install -y nginx
启动 nginx 服务器:
systemctl start nginx
systemctl enable nginx
sudo nginx -s reload
配置 Nginx 托管文件目录:
- 创建目录并修改目录所有权和权限。
mkdir -p /usr/share/nginx/mysite
chown -R $USER:$USER /usr/share/nginx/mysite
chmod -R 755 /usr/share/nginx/mysite
安装GIT:
yum install git
建立文件路径:
mkdir /root/gitrepo/
修改权限:
chown -R $USER:$USER /root/gitrepo/
chmod -R 755 /root/gitrepo/
创建远程 Git 仓库:
cd /root/gitrepo/
git init --bare {自定义仓库名name}.git
Git 钩子(hooks):
- 在生成的仓库
{自定义仓库名name}/hooks
目录下创建一个新的钩子文件。
vim /root/gitrepo/hexo.git/hooks/post-receive
打开文件添加下面的代码:
#!/bin/bash
git --work-tree=/usr/share/nginx/mysite --git-dir=/root/gitrepo/hexo.git checkout -f
赋予该文件可执行权限:
chmod +x /root/gitrepo/hexo.git/hooks/post-receive
设置 SSH Key 免密登录服务器
- 服务器登陆然后找到
.ssh
目录,如果没有的话,就新建并赋予权限。
mkdir .ssh && chmod 700 .ssh
然后接着新建文件
authorized_keys
:
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
查看repo的用户信息:
git config -l
本地查看是否在
.ssh
下有公钥私钥,如果没有需要创建:
ssh-keygen
将本地
id_rsa.pub
中的公钥复制粘贴添加到authorized_keys
中
Nginx配置:
执行命令
vim /etc/nginx/nginx.conf
,找到http { ... }
部分,并向其中添加如下的server:
server {
listen 80;
server_name blog.jackjiang.top; # 你的博客域名
location / {
root /home/blog/hexo-blog; # 博客所在目录
index index.html index.php index.htm;
}
}
service nginx restart
博客部署云服务器:
- 修改本地Hexo博客的配置文件
_config.yml
,找到url:
和deploy:
部分,做如下的修改:
url: http://blog.jackjiang.top # 修改为你的博客域名
root: /
permalink: :year-:month-:day/:title/
permalink_defaults:
deploy:
type: git
repo: blog@your_server_ip:/home/blog/github-blog.git # 修改为你的服务器IP
branch: master
域名解析:
在域名解析服务中添加记录:
主机记录 | 记录类型 | 解析路线 | 记录值 |
---|---|---|---|
@ | A | 默认 | 你的云服务器公网 ip |
之后就可以输入域名访问博客。
注意:这里用云服务器的 80 端口,使用 http 访问,如果需要 https 访问,还需要 SSL 证书。
网站收录到百度
查看网站是否被收录:
可以输入
site:域名
来查看域名是否被搜索引擎收录。如:site:hardyfish.top
百度资源平台配置:
依次选择:用户中心 - 站点管理,添加你的网站。
如:hardyfish.top
网站验证:
文件验证:下载给定的文件,将其放到本地主题目录 source 文件夹,然后部署上去完成验证。
提交百度搜索:
安装插件
npm install hexo-baidu-url-submit --save
,然后在根目录_config.yml
文件里写入以下配置。
baidu_url_submit:
count: 1 # 提交最新的多少个链接
host: www.itrhx.com # 在百度站长平台中添加的域名
token: your_token # 秘钥
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里
在根目录的
_config.yml
文件,url 要改为在百度站长平台添加的域名,也就是网站的首页地址。
# URL
url: https://www.itrhx.com
root: /
permalink: :year/:month/:day/:title/
加入新的 deployer。
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repository:
github: git@github.com:TRHX/TRHX.github.io.git # 这是原来的 github 配置
coding: git@git.dev.tencent.com:TRHX/TRHX.git # 这是原来的 coding 配置
branch: master
- type: baidu_url_submitter # 这是新加的主动推送
网站收录到Google
生成一个网站地图(SiteMap):
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
用命令
hexo g -d
将网站部署上去。然后访问
首页/sitemap.xml
或者首页/baidusitemap.xml
就可以看到网站地图了。
- 其中
sitemap.xml
文件是搜索引擎通用的 sitemap 文件。baidusitemap.xml
是百度专用的 sitemap 文件。
进入谷歌站长平台,登录谷歌账号之后会让你验证网站所有权。
进入:https://search.google.com/search-console/
选择站点地图,将生成的 sitemap 提交就行了。
跳过指定文件的渲染
skip_render: "mypage/**/*"
# 将会直接将 `source/mypage/index.html` 和 `source/mypage/code.js` 不做改动地输出到 'public' 目录
# 你也可以用这种方法来跳过对指定文章文件的渲染
skip_render: "_posts/test-post.md"
# 这将会忽略对 'test-post.md' 的渲染
提升加载速度
https://github.com/Colsrch/hexo-offline-popup
