当前写博客的环境
- Node.js 版本:v12.16.3
- hexo 版本:4.2.1
- hexo 主题地址:https://github.com/wujun234/hexo-theme-tree
一些约束
- 以 markdown 格式写博客
- 以有层级的目录对博客进行分类
- 博客 markdown 文件的 category 元数据尽量填写(编译后的博客存放方式为:/blogs/:category/:name.html ; “:category” 从 markdown 文件的 category 元数据取值,“:name” 从 markdown 文件名取值,不包含后缀,“.html” 是手动添加固定的),且与文件所在的目录层级对应,不要求使用阿拉伯数字作前缀
- 图片资源放在与 Markdown 文件同名的带 _pic 后缀的目录下
- 对需要排序的博客类别或博客,在目录、文件名前以至少两位的阿拉伯数字作前缀,数字和正式名称之间由两个半角空格隔开
- 要求系统默认编码格式为 UTF-8。所有文件以 UTF-8 格式编码,控制台使用 UTF-8 格式操作(65001 代码页)
- 脚本的基本框架格式请看 /bin/command-example.bat 文件
- 文件名为 “なにもない.md” 的博客将不会显示在首页的博客列表中
- 图片路径中的空格可以用
%20
代替
博客编写步骤
- 在命令行进入博客主目录,运行 upd-env 命令初始化博客编写环境
- 进入 source 目录。_draft 、page 、_post 分别存放草稿、普通页面、文章,根据需要进入对应目录,并创建相应的层级目录,目录的层级及名称体现出博客的类别划分及从属关系,目录名称同时满足命名约束。
- 在新建的目录下建立 Markdown 博客文件,文件名与博客标题相同且满足命名约束(标题不需要满足约束)。
- 建立同名的带有 _pic 后缀的目录用来存放图片
- 编写博客、整理图片资源直至完成博客
- 使用 upd-pl 命令更新图片资源目录软连接
- 使用 upd-gitignore 命令更新 .gitignore 文件
- 使用
hexo g
或hexo g --draft
编译 Markdown 博客文件 - 使用
hexo s
或hexo s --draft
启动 hexo 服务器,在本地浏览器预览博客 - 使用
hexo d
发布博客到 github page
环境搭建步骤
从自己的 github 账号克隆 blog 仓库
安装 Node.js,最好安装对应版本,新版本没试过
使用 Node.js 的 npm 命令安装 hexo
npm install hexo-cli -g
注:-g 参数表示将模块安装为全局模块
使用 Node.js 的 npm 命令升级 hexo
npm update hexo -g
注:-g 参数同上
辅助命令说明
- blog-help 列出可用的辅助命令
- upd-gitignore 更新博客主目录的 .gitignore 文件
- upd-pl 更新图片资源目录软连接,兼容 Hexo 和 Markdown 的图片路径
hexo 常用命令
hexo init [folder]
初始化一个新的 hexo 目录(新搭博客的时候才用)hexo < n | new > [layout] [param] "title"
生成新的文件(一般不用,都是手动创建)- layout 布局方式(post - 文章、page - 页面、draft - 草稿)
- param 参数
- -p, --path 自定义新文章的路径
- -r, --replace 如果存在同名文章,将其替换
- -s, --slug 作为新文章的文件名和发布后的 URL(??? 这个还不懂)
- title 标题
hexo clean
移除生成的静态网页和缓存hexo < l | list > <type>
列出网站信息,type 取值如下:- page 列出博客 agbot 目录下的 Markdown 文件
- post 列出博客 source 目录下的 Markdown 文件
- route 列出博客所有目录和文件的路径
- tag 列出标签
- category 列出分类
hexo < p | publish > [layout] <filename>
发布草稿- layout 布局方式(post - 文章、page - 页面、draft - 草稿)
- filename 要发布的草稿文件名
hexo < g | generate >
编译 Markdown 文件hexo < s | server >
启动本地 hexo 服务器(hexo 会监视文件变动并自动更新,除修改站点配置文件外,无须重启服务器,直接刷新网页即可生效)- -i, --ip 重设 IP
- -p, --port 重设端口
- -s, --static 以静态方式启动(此时修改 Markdown 文件并刷新网页,不会看到网页更新)
- -l, --log 启动日记记录,使用覆盖记录格式
hexo < d | deploy >
将静态网页部署到 github page- -g, --generate 部署之前预先生成静态文件
hexo 全局选项(用在命令后)
- --config 指定运行时的配置文件
- --safe 不加载插件和脚本
- --debug 在命令行显示详细信息
- --silent 隐藏命令行输出
- --draft 显示草稿
- --cwd 自定义当前工作目录(Current working directory)
代码高亮预览
Kotlin
/** Hello World! */ fun main(args:Array<String>){ println("Hello World!") }
Java
/** Hello World! */ public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!") } }
C
#include <stdio.h> /** Hello World! */ int main() { printf("Hello World! \n"); return 0; }
C#
using System; namespace HelloWorldApplication { /** Hello World! */ class HelloWorld { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadKey(); } } }
C++
#include <iostream> using namespace std; /** Hello World! */ int main() { cout << "Hello world!" << endl; return 0; }
Batch (window)
@rem Hello World! echo Hello World!
Javascript
/** Hello World! */ function main(){ console.log("Hello World!") }
HTML
<!-- Hello World! --> <html> Hello World! </html>