配置hexo + github page 个人Blog
作者:FloatingGuy 转载请注明出处:https://floatingguy.github.io/
基础配置(一)
工具安装
1.install nodejs-v6.9.4
下载zip package
- 安装Nodejs
ubuntu:123sudo apt-get install nodejs#检查版本node -v
如果nodejs 版本不是 v6.9.4,那么需要去官网下载按照包:
安装release版 Nodejs
如果命令行下载不了 nodejs:
安装过程 官网下载好,解压。终端 mv node-v6.9.4-linux-x64 /opt/ 输入命令:sudo chmod 777 /etc/profile,进入目录下,备份一下,这里我是用 sublime text 打
开的,在末尾添加以下三行:
|
|
之后按保存退出 在命令行输入:source /etc/profile,然后在命令行输入:node -v,返回版本信息v6.9.4,说明环境变量配置就生效了;但,你会发现进入root账户,改配置并没有生效 在命令行输入:sudo chmod 777 /root/.bashrc,进入所在目录,备份好文件,并在文件末尾加入一行source /etc/profile命令,保存。这样就大功告成了。 操作完后记得将权限改回去。
3.install nodejs-legacy
sudo apt-get install nodejs-legacy
4.install hexo
sudo npm install -g hexo-cli --registry=https://registry.npm.taobao.org
配置Hexo
|
|
Hexo 用法
常用命令列表:
- ~ generate
#生成静态文件 - ~ server
#本地预览环境 - ~ new “paper name” #创建博文
- ~ deploy
#部署 - ~ new page “page name” #创建页面
本地测试在浏览器中打开 localhost:4000
- ~ generate
Hexo根目录结构
需要上传到 source repo 的文件
#全局配置文件,站点基本信息(title/subtitle/author/..), 主题 …
-rw-rw-r– 1 floatg floatg 1.5K 1月 21 16:51 _config.yml#所有博文都在source/目录下
drwxrwxr-x 3 floatg floatg 4.0K 1月 21 16:51 source
drwxrwxr-x 2 floatg floatg 4.0K 1月 21 16:51 scaffolds
-rw-rw-r– 1 floatg floatg 448 1月 21 17:07 package.json#所有可以使用的主题都在这个目录下,每个主题对应一个文件夹
drwxrwxr-x 4 floatg floatg 4.0K 1月 21 17:17 themes
-rw-r–r– 1 floatg floatg 77B 1 23 15:39 .gitignore.gitignore 过滤的文件
-rw-rw-r– 1 floatg floatg 24K 1月 21 17:07 db.json
drwxrwxr-x 12 floatg floatg 4.0K 1月 21 16:53 node_modules
drwxrwxr-x 7 floatg floatg 4.0K 1月 21 17:07 public
drwxr-xr-x 17 floatg floatg 578B 1 23 15:16 .deploy_git
#本地测试脚本
-rwxr-xr-x 1 floatg floatg 91B 1 23 14:38 rtest.sh
-rw-r–r–@ 1 floatg floatg 6.0K 1 23 14:55 .DS_Store
切换主题
目前 我找到的主题比较少,只有默认的landscape 和huno,较喜欢huno。
下载主题
12cd themesgit clone git@github.com:someus/huno.git分析主题
更多功能
(更多内容)[http://ibruce.info/2013/11/22/hexo-your-blog/]
(统计)[http://busuanzi.ibruce.info/]
hexo config review
夸主机同步 Blog
CI辅助自动部署
参考文章:
http://lotabout.me/2016/Hexo-Auto-Deploy-to-Github/
https://formulahendry.github.io/2016/12/04/hexo-ci/
我首先尝试了使用appveyor 做CI的办法,效果不尽如人意。主要的问题在:
1. nodejs, hexo的版本和我本地不同,导致命令 解析都不一样。解决办法:可以在yml中下载制定版本
2. 使用作者的yml, 直接把我content repo下的内容删除了连site都打不开了。
3. 执行速度很慢,push完成以后貌似要到[appveyor管理页面](https://ci.appveyor.com/project/FloatingGuy/floatingguy-github-io)去点击 **new build** 才能执行下去。
虽然有一些bug,不过还是蛮有趣的产品。先说下原理,再说下大概的步骤:
原理:CI工具(这里是appveyor)会监控代码管理(github)中指定repo的commit记录, 发现有新的commit 就会将代码拉取到CI主机上,然后去执行repo根目录下的appveyor.yml中的命令。
步骤:
- open appveyor projects page
- create new projects, choose Github, source-code repo (支持的所有代码管理工具)
- add appveyor.yml to source-code repo root directory
- get Token from Github
- CI platform to encrypt Token page
- set CI environment
- STATIC_SITE_REPO – github content repo
- TARGET_BRANCH – content repo branch
- GIT_USER_EMAIL – github account
- GIT_USER_NAME – github username
- oK, you can using your blog, finally push source repo
- Debug project page can monitor appveyor.yml file console
最终没有找到好的解决办法,目前就先这样啦,等找到办法了再来更新
github 托管 source
原理就是将常用电脑上的 blog根目录下建立 git仓库(source repo),然后注意哪些文件要上传,哪些不能上传。以后可以在任意一台电脑上将 source repo clone 到本地,然后按照下面的步骤来配置。
步骤:
- 安装 node-v6.9.4
- clone 到本地以后,进入 repo目录然后安装工具&模块。
执行下面的命令就可以配置好 hexo
123npm install hexo --savenpm installnpm install hexo-deployer-git --save下面就是测试 server,generate,deploy命令了
再来总结一下哪些文件需要上传,哪些不能上传:
上传:
* _config.yml
* theme/
* source/
* scaffolds/
* package.json
* .gitignore
theme 下所有的.git/目录要删除,.gitignore 根据需要做修改。
不上传:
* .git/
* db.json
* node_modules/
* public/
* .deploy_git/
我遇到的坑, 在使用 GhoSadillaX 主题时,因为其gitignore 不上传_config.yml, 导致在 mac 上测试一直显示 duoshao 没配置short_name, 最后还是把 theme下的_config.yml找回来才解决。
hexo 博文设置 密码验证
首先,我们要了解 hexo 支持 markdown和javascript 混合编程。那么要实现对 单独的blog 加密,就可以在md 文件中嵌入一段校验密码的 js代码,如果要对所有的 blog 加密可以在 theme 中的 layout/_partial/header.ejs文件中添加一段校验密码的 js代码。
password 可以在 md文件头部设置
辅助脚本
本地测试脚本
rtest.sh
.gitignore 内容
|
|