Github+Hexo搭建个人Blog网站
本文章仅记录博主自己在使用Github+Hexo搭建个人Blog网站的整个过程和遇到问题的解决。
本博客所使用的主题为butterfly 5.0.0,如有遇到问题,请访问Butterfly官网查看详细的教程介绍。
梦想从这里启航!
准备工作
申请一个Github账号
安装Git
Git官网下载地址: https://git-scm.com/downloads/win
安装NodeJs和npm
nodejs官网下载地址:https://nodejs.org/zh-cn/download/package-manager
双击安装包,按照默认选项,一路点击Next
即可,安装完成后,msi格式的安装包会自动添加环境变量。
在cmd窗口,执行node -v
查看node版本。
在安装node的同时也安装了npm,执行npm -v
查看npm版本。
到这就已经可以正常使用了,以下步骤是个人为了更好的管理,从而修改相关的一些环境配置,并不是必须的。
修改全局包路径
下载全局包默认保存在C盘下,可通过npm root -g
命令查看当保存路径,我将这个路径设置到npm的安装路径下,一方面是节省C盘存储空间,另一方面便于个人管理。
在安装目录下创建两个文件夹,node_global
全局包存储文件夹,node_cache
node缓存文件夹。
执行以下命令进行修改
1 | npm config set prefix "D:\nodejs\node_global" |
修改环境变量
修改完npm全局模块的存储路径和cache路径后,还需要修改相应的环境变量。
修改用户变量Path,添加node_global
和node_cache
路径
添加系统变量NODE_PATH
创建Github存储库
登录Github,创建一个新的代码存储库用于保存Blog的源码文件。
登录Github账号,点击右上角用户个人头像,点击Your repositories
,进入个人存储库页面。
点击New
进入存储库创建页面。
填写存储库名称,格式必须为Github上的账户名,然后点击Create repository
。
注:GitHub 不允许在不公开代码库(repository)的情况下直接展示博客内容。通常,GitHub Pages 是用来托管静态网站的,但前提是托管的 repository 必须是公开的。GitHub 没有直接支持私有仓库通过 Pages 展示内容的功能。
创建新文件,作为网站的主页,新文件的名字必须为index.html
,码入内容随意后点击Commit changes...
提交
访问blog链接,也就是存储库名称,https://0or1zo.github.io/
安装hexo
hexo
是一个基于nodejs
的静态博客网站生成器,详情访问hexo官网:https://hexo.io/zh-cn/
安装hexo
1 | npm install -g hexo-cli |
查看版本
1 | hexo -v |
创建一个项目Blog并初始化
1 | hexo init Blog |
本地启动
1 | hexo g // 生成静态文件到public目录中 |
安装Butterfly主题
博主使用的主题是Butterfly
主题,官网地址:https://butterfly.js.org/
下载主题
1 | cd Blog |
修改主题,打开根目录下的_config.yml
文件,这个文件为站点的配置文件。
1 | theme: butterfly |
重新启动
1 | hexo g |
部署到Github Pages
方法一:安装hexo-deployer-git
1 | npm install hexo-deployer-git --save |
修改根目录下的_config.yml,配置Github相关信息。
1 | deploy: |
token
从Github的Personal access tokens
获取,Settings
-> Developer settings
-> Personal access tokens
-> Tokens(classic)
部署到Github
1 | hexo g -d // -d 将项目进行部署 |
浏览器访问博客地址https://0or1zo.github.io/ ,部署成功。
方法二:将源码推送到Github上
直接将public
目录下的所有文件推送至存储库中。
遇到的一些问题
Hexo+Butterfly启动页面显示extends includes/layout.pug block content include includes/recent-posts.pug include
Hexo更改主题后启动服务器,界面显如下字符:
1 | extends includes/layout.pug block content include ./includes/mixins/indexPostUI.pug +indexPostUI |
这是因为没有pug以及stylus的渲染器。
解决方案:
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
清除缓存
1 | hexo clean |
生成静态文件即可
1 | hexo g |
梦!想从这里启航?