Hexo

月伴飞鱼 2025-03-07 10:22:57
工具相关
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

img

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 sourcetouch 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

换电脑配置

进入 原来电脑 hexo 博客目录,只拷如下几个目录。

换电脑,同时要把.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公钥:

官方文档:https://coding.net/help/docs/repo/ssh/config.html

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

百度资源平台配置:

https://ziyuan.baidu.com/

依次选择:用户中心 - 站点管理,添加你的网站。

如:hardyfish.top

网站验证:

文件验证:下载给定的文件,将其放到本地主题目录 source 文件夹,然后部署上去完成验证。

见:https://ziyuan.baidu.com/college/articleinfo?id=1003

提交百度搜索:

安装插件 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 提交就行了。

跳过指定文件的渲染

https://hexo.io/zh-cn/docs/configuration.html

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

img
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!