Hexo 相关的一些命令

关于这个博客

这个网站是依赖Hexo搭建起来的,将网页配置文件都加载到了GitHub Pages上,因为GitHub下行速率比较有限,因此同时还使用了腾讯云的对象存储作为图床。

因为日常使用并没有那么高频,也就没有特意去购买一个专用的云服务器,所以托GitHub总是抽风的福,博客也经常挂掉。

也许以后我有钱之后会购买一个云服务器来建站吧

目前部署主要还是部署在了GitHub Pages上面,曾经尝试过国内的coding.net和gitee,但是这两个一个频繁变更静态网页的服务要求、一个是无良github阉割版,要完整版还得收费。受够了来回折腾了,于是之后单独github pages就够了。

Hexo 博客常用内容

1. Git Bash 端操作

名称 代码
清除缓存 hexo clean
生成本地网页缓存 hexo generate / hexo g
将本地文件同步到 GitHub Page hexo deploy / hexo d
组合输入同步 hexo clean && hexo g && hexo d
本地搭建 (用于调试,在本地搭建之后可以使用Hexo Admin管理Posts) hexo server / hexo s
上传agolia hexo algolia
  1. 在上传之前,务必先清除缓存,以及使用 hexo s 本地调试一下

2. 添加博文

直接添加Post

  添加博文(post、page、…)的方式大致有两种:

  1. cd至本地Hexo安装文件夹,使用Git Bash的命令行:

    1
    2
    cd <path>
    hexo new <layout> "name"

    Example:

    1
    2
    cd E:\My_Hexo
    hexo new post "New_Post"

    之后就在本地Hexo文件夹的source文件夹中,找到通过命令行新建的md文件,进行编辑。

    我推荐使用Typora编辑Markdown,Typora天下第一

    编辑完成后使用 “hexo clean && hexo g && hexo d” 与GitHub Pages进行同步

  2. 使用Hexo Admin

      使用Hexo Admin的好处是可以进行可视化管理,缺点是创建博文时候的自定义模板(scaffold)容易受到影响,自定义的参数较少。

    Hexo Admin使用的时候需要先清理缓存,之后再次生成缓存文件,之后在本地搭建网页:

    1
    2
    3
    hexo clean
    hexo g
    hexo s

      可以在 http://localhost:4000/ 观察生成的静态网页的效果,同时在 http://localhost:4000/admin/ 使用Hexo Admin进行可视化管理。


  因此推荐使用命令行进行新建,通过Hexo Admin进行管理。

从草稿(Draft)添加Post

(1) 添加Draft

Hexo 的一种特殊布局:draft,这种布局在建立时会被保存到 source/_drafts 文件夹。

1
hexo new draft "name"

之后可以在source/_drafts中找到该文件进行编辑

(2) 发布(Publish)草稿

可通过 publish 命令将草稿移动到 source/_posts 文件夹,该命令的使用方式与 new 十分类似,也可在命令中指定 layout 来指定布局。

1
hexo publish [layout] "name"

3. 博文的常用参数

Config Description and Example
title 文章的标题
title: ‘Hello World’
author 文章的作者
author: me
tags 文章的标签
tags:
- Hexo
categories 文章的分类
categories:
- Hexo
excerpt 文章的摘要
excerpt: 这是摘要
date 文章的创建时间
date: 2020-06-29 19:06:00
update 文章的更新时间
updated: 2020-06-29 19:06:00
comments 是否允许评论
comments: true
top 是否将post置顶
top: true
index_img或者cover 文章的标题图
index_img: [url]
或者是
index_image: [本地目录],一般在主题的img文件夹
即设置为index_image: /img/welcome.png
banner_img或者top_img 文章内的顶部title图片
设置发昂发同index_img
math 是否启用公式渲染(LaTeX,KaTeX,Mathjex)
math: true

关于博客的备份

我选择的直接是把当前文件夹的内容push上github和coding,似乎也有直接的插件吧?但是我尝试了没有成功。

大致的备份步骤如下:

1
2
3
4
5
6
7
8
9
10
11
git init
git add --all
#Upload to "Backup" Branch
git commit -m "Backup"
#Upload to "coding_backup" and "github_backup" repo
git remote rm coding_backup && git remote rm github_backup
#Add the remote
git remote add coding_backup https://e.coding.net/zhenyumi/zhenyumi/zhenyumi_backup.git
git remote add github_backup https://github.com/zhenyumi/Hexo_backup.git
#Push (Force mode)
git push coding_backup master:backup -f && git push github_backup master:backup -f

一个简单的.sh,用于部署、备份等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
echo -e "┌-------------------┐"
echo -e "| \e[34mBlog Hexo部署开始\e[0m |"
echo -e "└-------------------┘"
echo -e ""
# echo -e ""

# read -p "即将开始部署网页 [Y/n] " yn
yn='Y'
if [[ $yn == "y" || $yn == "Y" ]]; then
echo -e "\e[33m========执行1/6 : 清理========\e[0m" 2>&1 | tee deploy.log
hexo clean 2>&1 | tee -a deploy.log
echo -e "\e[33m========执行2/6 : 生成========\e[0m" 2>&1 | tee -a deploy.log
hexo generate 2>&1 | tee -a deploy.log
echo -e "\e[33m========执行3/6 : 上传algolia========\e[0m" 2>&1 | tee -a deploy.log
hexo algolia 2>&1 | tee -a deploy.log
echo -e "\e[33m========执行4/6 : 部署========\e[0m" 2>&1 | tee -a deploy.log
hexo deploy 2>&1 | tee -a deploy.log
echo -e "\e[33m========执行5/6 : 备份准备========\e[0m" 2>&1 | tee -a deploy.log
git init 2>&1 | tee -a deploy.log
git add --all 2>&1 | tee -a deploy.log
git commit -m "Backup" 2>&1 | tee -a deploy.log
git remote rm coding_backup && git remote rm github_backup 2>&1 | tee -a deploy.log
# git remote add coding https://e.coding.net/zhenyumi/zhenyumi/zhenyumi.git 2>&1 | tee -a deploy.log
git remote add coding_backup https://e.coding.net/zhenyumi/zhenyumi/zhenyumi_backup.git 2>&1 | tee -a deploy.log
git remote add github_backup https://github.com/zhenyumi/Hexo_backup.git 2>&1 | tee -a deploy.log
echo -e "\e[33m========执行6/6 : 上传备份========\e[0m" 2>&1 | tee -a deploy.log
git push coding_backup master:backup -f && git push github_backup master:backup -f 2>&1 | tee -a deploy.log
elif [[ $yn == "n" || $yn == "N" ]]; then
echo -e "\e[31mCanceled\e[0m > Github" 2>&1 | tee deploy.log
elif [[ $yn != "y" && $yn != "Y" && $yn != "n" && $yn != "N" ]]; then
echo -e "\e[31m???\e[0m > $yn" 2>&1 | tee deploy.log
fi
echo -e "\e[32mDone\e[0m"
sleep 5

博客添加pdf文件

根据官方文档:superalsrk/hexo-pdf: Hexo tag for embeded pdf (github.com)

Install

1
$ npm install --save hexo-pdf

Usage

Normal PDF

1
{% pdf http://7xov2f.com1.z0.glb.clouddn.com/bash_freshman.pdf %}

or

1
{% pdf ./bash_freshman.pdf %}

Google drive

1
{% pdf https://drive.google.com/file/d/0B6qSwdwPxPRdTEliX0dhQ2JfUEU/preview %}

Slideshare

1
{% pdf http://www.slideshare.net/slideshow/embed_code/key/8Jl0hUt2OKUOOE %}

Hexo 相关的一些命令
https://zhenyumi.github.io/posts/fa3fcd67/
作者
向海
发布于
2020年6月29日
更新于
2021年2月8日
许可协议