从零开始建立个人博客II:Hexo基础

Hexo基础:安装、初始化、目录结构、基本命令、文章发布

安装Hexo

安装Node.js:下载解压即可,注意将其目录添加到PATH中
安装git:sudo apt install git
安装hexo:npm install -g hexo-cli (注意是hexo-cli)
升级npm:npm install -g npm
升级hexo:npm update -g #升级所有npm全局模块
升级Node.js可自行覆盖安装或借助模块nnvm
npm install -g n #安装模块n
n stable #升级nodejs到最新稳定版

  • npm默认会将模块安装到当前目录下的node_modules文件夹(local);不带模块名,则npm读取package.json中的依赖信息,安装相关模块。
  • 参数-g开启全局模式,安装模块到nodejs根目录下的node_modules;全局模式下不带模块名,则会当前目录作为模块安装到nodejs根目录。
  • 更多信息查看文档man/npm help npm-folders / npm-install / npm-init / package.json。

初始化

1
2
3
4
5
6
7
8
9
10
11
12
cd < 博客目录 >
hexo init
npm install hexo-generator-searchdb #用于实现本地搜索
# npm install hexo-deployer-git   #用于Git推送,GitLab(CI/CD方式部署)不需要
npm uninstall hexo-renderer-marked
npm install hexo-renderer-markdown-it-plus #数学公式支持增强
# npm install markdown-it-task-lists #为markdown-it添加任务列表支持
npm install hexo-generator-feed   #用于开启RSS feed
npm install hexo-generator-sitemap #网站地图(SEO)
# npm install hexo-tag-aplayer #音乐支持增强
npm update #升级模块
npm uninstall <package> #删除模块

安装好各种依赖模块后,可在博客目录下的package.json中看到所有已安装的npm模块列表: npm install ... 默认会将安装的模块及依赖信息加入package.json中的依赖(dependencies)字段。而只要有package.json,执行npm install(不指定模块名),便可自动安装其中所列的所有依赖模块到当前目录。
网上很多文章中会加一个–save参数,意思同样是要求在安装时将模块信息加入package.json。在npm 5.0.0以后这已经是默认操作,所以已不再需要该参数。而如果不希望保存相关信息可使用–no-save参数。

目录结构

1
2
3
4
5
6
7
8
9
10
11
|──node_modules/  #hexo模块
|──public/ #编译输出内容,待发布 hexo generate
|──scaffolds/ #layout模板,一些md文件,可自行修改
|──source/
|─_drafts/   #草稿目录,不会被发表
|─_posts/ #文章原稿,md文件 hexo new
|──themes/ #主题目录
|──.deploy_git/ #发布的内容,即git push的目录,与public目录内容相同 hexo deploy
|──_config.yml #配置文件
|──db.json
|──package.json

source是源文件目录:所有文章的markdown源文件及插入的图片等资源的存放目录。该目录下除_posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹以及隐藏的文件会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,其他文件会被直接拷贝过去。
themes是主题目录,默认主题landscape太难看,推荐TranquilpeakNexTReactCactus
config.yml是配置文件,用于设置发布站点(名称, 网址, 链接格式)、主题等信息。具体可查看配置|Hexo,更多设置查看 从零开始建立个人博客III:Hexo配置

常用命令

注意:以下所有命令都只能在执行hexo init的那个目录下执行

1
2
3
4
5
6
7
8
9
10
11
12
13
hexo new [layout] "post_title" #由模板新建md文件,layout默认为post
hexo new page "page_name" #新建页面
hexo server #开启预览访问端口( 'Ctrl + C'关闭 )
hexo generate #生成静态页面至public目录
hexo deploy #发布:复制public目录到.deploy_git,并push到远程
hexo clean #清除缓存文件(db.json) 和已生成的静态文件(public)
-----------< 简化形式 >------------
hexo n "name" #写文章
hexo s #本地预览
hexo g #生成静态网页
hexo d #发布
hexo cl #清理缓存
hexo g -d / d -g #生成静态网页并发布

发布

Hexo支持多种发布方式,包括Git、Heroku、OpenShift、Rsync、FTPSync等,还可以同时进行多个发布。
对于Github Pages,发布方式为Git,使用前需要预先做以下设置:

  1. 设置Github的远程登陆(将SSH密钥给github)
  2. 建立Github Pages的仓库( username.github.io )
  3. 安装hexo-deployer-git,用于Hexo调用git
  4. 配置Git:设置user.name及user.email(全局或局部均可)
  5. 在Hexo的配置文件(_config.yml)中写入发布类型及Github Pages仓库地址信息
    以上都设置好后,Hexo便可自动调用git推送更新,使用时无需手动执行任何git命令,直接hexo deploy即可一键发布
    此外可以同时设置多个远程仓库,一次性push到多处,比如同时使用Github和Gitlib,操作完全类似。