hexo博客框架
2019年07月27日

概述

快速创建

  1. 安装
npm i hexo-cli -g
  1. 初始化
hexo init <dir>
  1. 安装
cd <dir>
npm install
  1. 启动server
hexo server

值得注意的是,hexo server仅仅是作为预览静态页面效果用

正常的内容写作过程

  1. 创建markdown文件
cd <dir>
hexo new 'post title'
  1. 生成静态文件
hexo generate

  1. 发布
hexo deploy

发布依赖于发布设置

cd <dir>

npm i hexo-deployer-rsync --save
vim /<div>/_config.yaml
deploy:
  type: rsync
  host: ip #主机ip
  user: username #之前设置ssh的用户名
  root: /path/ #远程主机文件存储位置
  port: 22 #ssh登陆端口,一般填写22
  delete: false #是否删除远端存在而本地不存在的文件
  args: '' #提供的其它rsync参数信息
  verbose: true #输出详细信息,推荐true
  ignore_errors: false #即使出现IO错误也进行删除,推荐false

需要安装rsync发布模块,如果ssh使用key认证,则一定要确保~/.ssh/id_rsa文件是发布服务器的私钥

后台管理

  1. 安装
npm hexo-admin --save
  1. 配置
admin: 
  username: admin
  password_hash: $2a$10$2NgSddL5Rz/NixFUoTaxiu7lGWooaTO7KfYGgPOnzYwaAYGrLZylC
  secret: my secret
  deployCommand: './hg.sh'
vim <dir>/hg.sh

#!/bin/bash
hexo generate
ln -svf <source> <target>

由于hexo-admin支持可视化编辑,所以在服务器上运行了hexo服务,而且由于使用的是某个已经存在的web服务器,所以为网站的二级目录.考虑主网站的更新问题,所以在发布脚本(hg.sh)里,关联hexo的静态页路径到网站的静态页保存路径.(这将会在每次发布时运行)

参数 含义
username 帐号
password_hash 密码的hash值,需要使用bcrypt-nodejs模块
secret cookie相关
deployCommand 发布按钮执行的脚本
  1. 生成密码hash
vim gen.js
var bcrypt = require('bcrypt-nodejs');
var password = '123456';
var password_hash = bcrypt.hashSync(password)
console.log(password_hash);
node gen.js

复制输出到_config.yaml的password_hash部分

  1. 重启 hexo server
hexo server
  1. 可视化编辑
    打开domain.com:4000/child/admin/,如果不是子目录,可以忽略child部分,直接输入admin
    post 文章列表
    deploy 发布功能
    每次修改完文章,可以殿下右上角的发布按钮,生成静态页

其他

如果网站发布的内容在网站的子目录,例如:domain.com/hexo/,可以修改_config.yamlroot:参数,设置为对应的子目录名字

相关链接

hexo-admin Github
hexo-admin教程
hexo创建
发布
rsync部署