Hexo 基础搭建使用

Hexo 安装环境

推荐使用 nvm,在实践之后发现 nvm 真的很好用,当然 Windows 用户可以直接下载安装


# 下载node.js

$ nvm install stable

安装 Hexo

Linux 和 Mac 用户直接使用下面的 shell 就完事了,Windows 用户可以使用在相应文件夹下使用 Window Powershell 或者 git bash 然后 shell,国内推荐用 npm 下载 cnpm,代替 npm 来提高依赖的下载速度和稳定性!!(cnpm 用的是淘宝的镜像)


# 下载cnpm

$ npm install -g cnpm --registry=https://registry.npm.taobao.org


# 安装Hexo

$ cnpm install -g hexo-cli

文章迁移插件的安装(没有需要的可以跳过)

Hexo 官方支持的迁移来源

初始化一个 Hexo 项目


# 初始化博客项目

$ hexo init <项目名称>

$ cd <项目名称> # 打开项目文件夹

# 下载Hexo server

$ cnpm install hexo-server --save

# 启动本地预览

$ hexo server # 默认http://localhost:4000

关于更改预览设置的请参考 Hexo Server

修改 Hexo 的主题

这里以 yilia 为例(请保证网络环境)


# 确保在上面项目文件夹下

git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

themes/yilia 也就是下载到项目文件夹下的 themes/yilia 目录下

进入 themes/yilia 下,修改 _config.yml 文件


# Linux的进入修改

$ cd themes/yilia

$ nano _config.yml

Windows 建议使用 vscode 打开编辑


# 修改内容

themes: yilia # (上面下载位置文件夹名)

生成保存更改

Hexo 每次修改或者添加等操作都需要重新生成文件,生成的文件在工程根目录的 public 文件夹下


# 清除之前的文件

$ hexo clean

# 生成新的文件

$ hexo generate

# 或者

$ hexo g

# 预览文件

$ hexo server

# 或者

$ hexo start

# 或者

$ hexo s

在生成操作时可以使用–watch 来比较文件的 SHA1 checksum 仅生成不同的文件


# 监视文件变动

$ hexo generate --watch

一条命令也可以这样写


# 清除保存预览

$ hexo clean && hexo g && hexo s

Hexo 的目录树

目录树在此就不赘述了,请参考 Hexo 官方介绍 资源文件夹数据文件夹

作为仅 markdown 用户个人没有采取官方的引用方式而是使用了! [] ()

Hexo 新建文章

Hexo 的文章放置在根目录的 /sources/_post 下


# 生成一篇md文章

$ hexo new <文章名>

# 或者

$ hexo n <文件名>

相关关于写作的具体操作参考 写作

Hexo 的部署

作为一个 Git 用户表示也习惯了 git 的使用,本文采取 Gitpage 来演示(其他参考 官方教程

首先得下载依赖(根目录下)


# 下载hexo-deployer-git

$ cnpm install hexo-deployer-git --save

修改配置文件

修改根目录下的 _config.yml


deploy:

-type: git

-repo: # gitpage的仓库地址 

-branch: master # 默认的分支就是master

重新生成更新文件(同上)

发到部署仓库


# 部署命令

$ hexo deploy

# 这里采取非监视的一条shell

$ hexo clean && hexo g && hexo d

私有库要求输入用户名和密码,首次安装 git 请参考 git 的设置

私人云服务器 Git 仓库的搭建、nginx 配置及部署

云 Git 仓库的建立


# 设置新的用户

$ useradd git # 添加git用户

$ passwd git # 设置git密码

# 修改权限文件

$ chown 740 /etc/sudoers

$ nano /etc/sudoers

# 添加内容

# 找到 root ALL=(ALL:ALL) ALL

# 下面添加

git ALL=(ALL:ALL) ALL

# 保存退出

# 修改权限

$ chown 440 /etc/sudoers

# 关闭git用户shell权限

$ nano /etc/passwd

# 将git: x :1001:1001:,,,:/home/git:/bin/bash改为

git: x :1001:1001:,,,:/home/git:/usr/bin/git-shell

在网上教程中会要求 su git 切换用户!!这里有一个坑,会报错的!!因为上面禁掉了 git 的 shell 权限!!可以不切换的


# 创建git目录

$ cd /home/git # 没有的进入home然后mkdir git

$ mkdir blog.git # 这里以blog.git为例建立git仓库

$ git init --bare # 创建空仓库

# 创建网站目录

$ cd /var/www

$ mkdir blog # 这里/var/www/blog作为网站源码的存放位置

网上教程在这里证书配置 ssh 免密码认证,个人没有采用这种方式(老老实实输密码)

用户组的管理


$ ll /home/git/

$ ll /var/www/

# 确保blog.git、blog目录的用户组权限为git:git

如果不是


# 执行

$ chown git:git -R /var/www/blog

$ chown git:git -R /home/git/blog.git

配置 nginx

这里就不赘述 nginx 的参数意义和配置了,仅仅修改源码放置的配置!!!


# 进入/etc/nginx/sites-available下

$ nano default

# 修改配置文件的location下的root

# 举个例子

root /var/www/blog;

保存退出!然后重新加载 nginx


# 重新加载nginx

$ service nginx reload

配置 Git Hooks


# 创建post-receive文件并添加内容

$ cd /home/git/blog.git/hooks # 切换目录

$ nano post-receive

添加内容


#!/bin/bash

GIT_REPO=/home/git/blog.git

TMP_GIT_CLONE=/tmp/blog

PUBLIC_WWW=/var/www/blog

rm -rf ${TMP_GIT_CLONE}

git clone $GIT_REPO $TMP_GIT_CLONE

rm -rf ${PUBLIC_WWW}/*

cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

上面内容可以按需要修改

保存退出之后,chown +x post-receive 赋予可执行权限

配置本地工程部署

上面是基于 Gitpage 配置的 Hexo,在此只需要修改 _config.yml 的 deploy 下的 repo


repo: git@你的服务器IP:blog.git # git访问对应服务器的blog.git仓库

然后就是上面的部署操作就完成了!!

yilia 主题下文章预览设置 more 的操作

**在你要中断文章结尾的位置添加下面的内容**

<!-- more -->

参考文档

我的博客地址:https://herberthe.github.iohttps://blog.jecsci.com