Hexo博客简易配置
环境初始化
以Windows环境为例
安装git
安装nodejs(通过nvm安装)
安装nvm
下载nvm-noinstall.zip并解压,设路径为path/nvm/,以管理员身份运行其中的install.cmd,编辑生成的path/nvm/settings.txt文件:
1
2
3
4
5
6root: path/nvm
path: path/nodejs #不存在该目录,但不用管
arch: 64
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/此时系统环境变量会新增两项:
NVM_HOME
和NVM_SYMLINK
,修改NVM_HOME
值为path/nvm,NVM_SYMLINK
值为path/nodejs,并添加到PATH
变量中:%NVM_HOME%;%NVM_SYMLINK%;打开cmd命令窗口,输入
nvm v
查看配置是否正确在命令窗口中输入
nvm install latest
安装最新的nodejs版本(包括局部npm),随后通过nvm use 版本号
选择要使用的版本(可以通过nvm ls
查看当前安装的所有nodejs版本)安装全局npm(可选)
首先执行
npm config set prefix "/path/nvm/npm"
配置npm的全局安装路径,会生成一个.npmrc文件(默认在C盘用户文件夹下),其中的内容就是path/nvm/npm,然后执行npm install npm -g
安装全局npm,注意这个-g
参数。在系统中新建环境变量NPM_HOME
,值为path/nvm/npm,并将%NPM_HOME%
添加到PATH
变量中(注意要放在%NVM_SYMLINK%
前面),执行npm -v
查看配置是否正确安装cnpm(可选)
配置国内镜像以加速,执行
npm install -g cnpm --registry=http://r.cnpmjs.org
命令安装,之后就可以用cnpm install 包名
来代替npm install 包名
了
安装Hexo
执行命令
cnpm install -g hexo-cli
建站
创建个人博客文件夹,设路径为path/myblog/,初始化博客文件夹:
1
2cd /path/myblog/ #之后的所有命令都要先cd进入博客根目录,不再赘述
hexo init初始化后得到一个package.json文件(描述了项目所依赖的包),然后再执行
cnpm install
安装相关依赖生成静态网页,并在本地发布
1
2hexo generate
hexo server最后通过地址"http://localhost:4000"即可访问
基本配置
选择某个现成的主题,一般下载后放到博客根目录下的主题文件夹中,即myblog/themes/,Hexo将会根据主题来生成静态页面。以Melody主题为例,根据其说明文档一步一步进行配置,且该主题可以直接通过cnpm install --save hexo-theme-melody
命令安装(放在myblog/node_modules/目录下)
LaTex支持
说明文档有所遗漏,再细说一下,先安装Kramed,同时卸载掉默认的渲染引擎marked:
1
2cnpm uninstall hexo-renderer-marked --save
cnpm install hexo-renderer-kramed --save再修改melody.yml主题配置文件:
1
2
3mathjax:
enable: true
cdn: https://cdn.bootcss.com/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML由于LaTeX与markdown语法存在语义冲突,所以还需要对默认的转义规则进行修改,修改myblog/node_modules/kramed/lib/rules/inline.js中的两处内容:
1
2escape: /^\\([`*\[\]()# +\-.!_>])/, //替换:escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, //替换:em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,注意,由于node_modules文件夹不会被git跟踪(该项位于.gitignore中),因此在博客迁移后需要重新配置(所以应尽量避免修改node_modules文件夹中的内容以减少麻烦)
部署到GitHub Page
在GitHub上新建仓库,命名为:用户名.github.io,再修改_config.yml文件:
1
2
3
4deploy:
type: git
repo: git@github.com:用户名/用户名.github.io
branch: master注意,如果本地添加了多个GitHub账号的密钥,应根据~/.ssh/config文件修改上述repo地址为:Host:用户名/用户名.github.io,最后执行部署:
1
2
3hexo clean
hexo g
hexo d //和上一条命令可以合并为:hexo g -d,如果报错:ERROR Deployer not found: git,先执行:cnpm install hexo-deployer-git --save部署成功后,通过地址"https://用户名.github.io"即可访问博客
博客迁移和同步管理
- 在本地博客根目录myblog/下执行
git init
初始化仓库,以对魔改的主题和配置文件(简称为环境数据)进行版本控制,再添加远程仓库关联:git remote add origin git@github.com:用户名/用户仓库.git
,最后执行git push origin master
同步本地环境数据到远程仓库(的master主分支)即可,如果要推送到远程仓库的其他指定分支(可以不存在),则执行git push origin master:指定远程仓库分支名
(参考git思维导图) - 现在迁移博客到其他电脑设备是很容易的,首先环境初始化(安装git、nodejs和Hexo),然后克隆上述远程仓库(的主分支)至本地:
git clone git@github.com:用户名/用户仓库.git
(也可以克隆仓库下的指定分支,git clone -b 指定分支 git@github.com:用户名/用户仓库.git
),再根据packge.json安装依赖,最后hexo g
、hexo s
就能在本地重新打开博客了
- 在本地博客根目录myblog/下执行
Algolia搜索
首先注册Algolia账户,新建index,并获取Application ID、Search-Only API Key、Admin API Key,然后执行
cnpm install --save hexo-algolia
,并配置_config.yml:1
2
3
4algolia:
applicationID: 'application id'
apiKey: 'search-only api Key'
indexName: 'index name'再配置melody.yml:
1
2
3
4
5
6
7
8algolia_search:
enable: true # or false
hits:
per_page: 10 # the number of search results per page
labels:
input_placeholder: Search for Posts
hits_empty: "We didn't find any results for the search: ${query}" # if there are no result
hits_stats: "${hits} results found in ${time} ms"最后执行
hexo algolia
生成索引文件并上传到Algolia服务器,出错:ERROR [hexo-algolia] Please set an HEXO_ALGOLIA_INDEXING_KEY environment variable to enable content indexing. ERROR >> Read https://npmjs.com/hexo-algolia#api-key for more informations,根据提示,直接在当前cmd中创建该环境变量(重启窗口会失效,建议“此电脑右键-属性-高级系统设置-环境变量”,博客迁移后注意要重新配置):set HEXO_ALGOLIA_INDEXING_KEY=admin api key
,重新执行hexo algolia
,成功