自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

自娱自乐,我的博客(一)——Hexo + github pages搭建个人Blog

前言:
阅读这篇文章我能学到什么?
  这篇文章介绍通过hexo在github pages上搭建个人博客的方法。hexo是免费的博客框架(如果钱多可以去捐赠),它使得搭建个人博客更简便且满足个性化。最初是由Tommy Chen于2012年开始创建维护,截止目前(2020-07-04)该项目在Github上已经拥有超过31k STARS。GitHub Pages可以访问GitHub上的仓库并以静态网页的形式呈现出来,也就是说GitHub Pages使得你可以直接从GitHub仓库创建网站,不需要你再单独去租用虚拟主机或域名。所以,Hexo作为博客框架,GitHub作为仓库,GitHub Pages将仓库呈现为静态网站,也就顺理成章的能够搭建个人的免费博客了。

1 初识Hexo

  一种免费、简洁、快速、易用、的博客框架。它支持解析渲染Markdown格式文件为静态网页。个性化较高,可替换主题或直接修改源码实现网页自定制。
  Hexo 官网支持中文简体和繁体显示,毕竟作者 Tommy Chen 是中国台湾人。

2 安装环境

2.1 安装Node.js和Git

  我们先要确保电脑上已经安装了如下环境:

  • Node.js :因为Hexo是基于Node.js的博客框架,所以必然需要该环境。
  • Git :既然要用到GitHub仓库,那必然需要Git工具。

  Node.js和Git的安装非常简单,就不在本篇博客讲了。

2.2 安装Hexo

  Node.js安装好后,Hexo是通过Node.js的包管理器npm进行安装的,在终端cmd内输入指令并运行即可完成Hexo安装:

1
npm install -g hexo-cli

  需要注意的是国内访问可能出现网络问题导致失败,为了“学习”可尝试“科学上网”),可以多尝试运行几次指令。成功后可看到如下显示:

Install hexo.png

  其中的警告我们不必理会,最后会显示 + hexo-cli@3.1.0 字样,表明插件更新成功。

2.3 检查环境

  环境安装好后先别急着操作,我们进行一次检查,就像程序写完需要测试,这是思维严谨的体现(毕竟我们是优秀的程序员)。

2.3.1 查看Node.js版本号

  终端运行指令:

1
node -v

  输出结果:

node v.png

2.3.2 查看Node.js的包管理器npm版本号

  终端运行指令:

1
npm -v

  输出结果:

npm v.png

2.3.3 查看git版本号

  终端运行指令,注意是两个短横线:

1
git --version

  输出结果:

git version.png

2.3.4 查看hexo版本号

  终端运行指令:

1
hexo version

  输出结果:

hexo version.png

  如果以上都没问题,表明环境安装成功,可以开始后续的博客搭建了。如果任何一个工具没有安装好,请尝试卸载后重新安装。一般来说 hexo 安装可能由于网络问题安装容易出错,这里我提供一下卸载指令:

1
npm uninstall hexo-cli -g

3 了解博客域名

  首先,你得有个GitHub账号!没有请去注册它,是免费的。
  我们都知道访问网站需要一个域名,就像每家每户都有地址或门牌号,我们的博客也需要域名。GitHub Pages免费为我们提供一个域名,格式为: <user>.github.io,<user>是你的GitHub用户名,比如我的用户名为 onlycalm,那么我的域名就是 onlycalm.github.io 。如果你不喜欢免费提供的域名,也可以花钱租用并绑定自己的域名。
  你现在可以尝试在浏览器中输入你的域名,结果将是404页面。Why?我已经申请了GitHub账号,为什么不能访问自己的域名?GitHub Pages的作用是通过我们的域名去访问我们的同名仓库,并将仓库内容以静态网页的形式呈现出现。所以没有创建与域名同名的仓库,并且仓库内没有相关网页文件,是访问不了的。
  如果你想对GitHub Pages有更多的了解,可以在官方文档 GitHub Docs 上查看详细的说明,官方文档可以选择中文这一点很好(看来中国庞大的用户数量让他们提高了服务质量)。也可以登录GitHub后点击头像,选择Help就会转到GitHub Docs站点。

GitHub help.png

4 搭建博客

  我们需要为博客创建两个仓库,一个private仓库用于存放博客源文件,另外一个public仓库用于存放生成的站点文件(站点文件必须是public,否则别人怎么访问的博客)。好处就是不公开源文件,缺点就是一个博客需要搞两个仓库,维护起来略烦。也有种方法是只创建一个仓库,然后为该仓库创建两个分支,主分支用来存放站点文件,其他分支存放源文件,将其他分支设置为默认分支。这种方法缺点是源文件也是public的,别人可以直接拷贝走你的md文件。两种方法我都用过,我建议的方法是创建两个仓库保证源文件的私有性,其实另外一个public仓库并不需要刻意去维护它。

4.1 搭建远程仓库

  首先在GitHub上登录自己的账号,在网页右上角点击+,在弹出下的拉框中选择New repository进入新建仓库页面。

New repository.png

  我们需要创建两个仓库,首先来创建一个Private仓库,这个仓库用于存放博客的源文件。在仓库新建界面填入内容,在Repository name中填入仓库名,名称随你,比如”hexo”。在Description中填入该仓库的简介比如”Blog sourse code”,建议将该仓库设置为Private以私有化博客网站源码。建议勾选初始附带README.md文件,点击Create repository创建仓库。

Hexo repository.png

  继续创建一个用于存放站点文件的仓库,这个仓库必须是Public的。在Repository name中填入自己的域名<user>.github.io,比如我的为”onlycalm.github.io”,该仓库的仓库名必须也是域名,如果填其他内容将不能成为博客仓库,GitHub Pages也将访问不到。在Description中填入对该仓库的简要描述信息,比如我填写的”Blog website pages”。该仓库必须是公有仓库。

onlycalm github io.png

4.2 博客本地配置和构建

  下面的操作涉及到将本地仓库推送到远程仓库,需要用到git。本篇博客假定你已经绑定了GitHub账号并配置好了SHH,如果没有请先去完成这些操作。

4.2.1 将远程博客仓库clone到本地

  选择一个你用于存放博客仓库的本地路径,在此目录下Gib Bash中运行指令将Hexo仓库拷贝到本地。

1
git clone git@github.com:<user>/<repository>.git

  <user>是你的GitHub账号用户名,<repository>是你刚才创建的用于存放博客源码的Private仓库。

clone hexo.png

4.2.2 本地部署并推送到远端

  Clone远程仓库后,里面自带了.git文件夹和README.md文件,我们先将其剪切到其他目录(不要删除),此时需要保证仓库跟目录为空。在仓库根目录下在cmd中执行hexo指令:

1
hexo init

  生成所需要的的文件,忽视一些警告信息,最后看到 INFO Start blogging with Hexo! 字样时说明成功了。这些文件和文件夹的作用如果想了解可以阅读 Hexo 官网上的文档。

Hexo init.png

  找到博客根目录下的_config.yml配置文件,修改添加最底部的配置信息:

1
2
3
4
5
deploy:
type: git
repo: git@github.com:<user>/<user>.github.io.git
branch: master
message: ''

Config yml.png

  repo是你的远程仓库地址,brach是你的站点文件所在的分支名。
  接下来需要安装一键部署插件hexo-deployer-git,依然是通过npm指令安装。注意该指令要在博客仓库根目录下执行,因为他会配置json文件,在cmd中执行指令:

1
npm install hexo-deployer-git --save

Install hexo-deployer-git.png

  看到 + hexo-deployer-git@2.1.0 字样时表明安装成功了。
  在博客根目录下cmd中执行指令开始构建:

1
hexo generate

hexo generate.png

  当hexo相关文件构建完毕后,我们可以通过执行指令在本地预览博客了。在博客根目录下cmd中执行指令:

1
hexo server

hexo server.png

  默认会开放端口4000用于预览博客。按 Ctrl+c 可退出预览。我们将地址 http://localhost:4000 放到浏览器中试试:
  预览的好处是当你在本地进行创作时,使你提前看到效果并作出调整,不过这种方式不是实时的,需要你保存文件然后刷新网页才会重新渲染。默认的博客效果是这样的:

Localhost

4.3 博客部署

  上面讲了那么多,实际就是先创建了远程仓库,然后又在本地仓库配置和构建,接下来就是把本地仓库推送到远程仓库了。
  还记得我们Clone远程仓库到本地时,暂存在其他地方的.git文件夹和README.md文件吗?现在将其剪切回博客仓库根目录下。接下来将本地仓库推送到远程去。在博客仓库根目录下Git Bash中执行git指令:
  将修改从工作区提交到本地暂存区:

1
git add .

  将本地暂存区修改提交到本地版本库:

1
git commit -m "First commit"

  将本地版本库某分支推送到远程服务器上某分支:

1
git push origin master

  我们在GitHub上查看远程仓库可以发现hexo仓库已经提交上了文件,而<user>.github.io仓库依然是空的,因为我们还没给其提交内容。

push hexo repository.png

  再看本地,发现node_modules和public文件夹和db.json文件没有被提交,这是由于.gitignore文件中写明了版本管理时忽略这些文件,如果你想让这些文件也被管理可以删除对应的行。这些文件即便丢了也不要紧,重新执行一下上面那些在博客根目录的指令就能重新生成,所以即便你换了一台电脑创作博客,只需要Clone仓库到本地,然后运行几个指令重新构建即可(比如node_modules文件夹丢失后只需在博客根目录下运行 hexo init 即可重新生成,public和db.json丢失后只需在博客根目录下重新运行hexo generate即可),所以不必担心这些文件丢失后无法找回。
  还差最后一步,将原始文件生成网页文件并部署到<user>.github.io仓库下。还记得我们之前装的一键部署插件hexo-deployer-git吗?我们在博客根目录下在cmd中执行指令:

1
hexo deploy

  成功后的命令行内容为下图所示,自动将网页文件部署到了远程<user>.github.io 仓库:

hexo deploy.png

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。

  我们再看本地目录多了一个.deploy_git文件夹,该文件夹内容既是<user>.github.io仓库的内容。到此已经完成博客的全部搭建了,现在你可以通过浏览器输入你的域名访问主页了。当我们通过指令 hexo generate 生成的站点文件会放在博客根目录下的public文件夹中,之后 hexo deploy 指令会将public中的站点文件拷贝到.deploy_git文件夹并上传到你的域名仓库中,所以我们在本地调试时只需使用指令 hexo server 并关注public文件夹就行了。一些人喜欢直接将public文件夹上传到域名仓库,我个人建议将其作为本地调试用的目录。