关于本文

本文仅记录自己学习搭建Hexo博客之时,搭建过程中掉坑的历程总结,对零基础起步的观众朋友可能缺乏某些基础技术的指导,请优先食用下述两篇优质教程:

※ 为了更优质的排版视觉效果,欢迎移步到简书浏览:使用Hexo搭建GitHub博客(2018年Mac版)

十万个为什么

什么是Hexo

度娘谷歌搜索了Hexo各种资料解说,个人感觉上这是一套使用第三方主题模板+自己的博客文章(.md文件)+网站信息配置,通过Node.js进行本地连接混合生成一套静态网站的工具链套件

也就是说,通过Hexo创建的博客是一个仅提供在线浏览功能的静态博客,不存在后台编辑功能,添加新博客时需要在自己开发机上编写新博客文章(.md文件),再次生成一个新版本网站,上传并替换,从而实现新文章发布

优势是可使用网上各种免费的静态网站空间,节省服务器租金,省去维护服务器的工作,不需担心后台被黑导致数据丢失,无痛随时全站更换主题…

劣势是不能在公司电脑上随时在线更新博客,除非带着Hexo博客源码…

和需要自己保管好Hexo博客源码,否则数据丢了看上去有点难重新把博文整理下来

什么是Node.js

度娘谷歌搜索了Node.js各种资料解说,个人感觉上这就是一套SDK,一套使用JavaScript编写的,包含多个应用级功能模块,可用于一般应用开发的工具包

JavaScript的运行需要一个JS解释器实时运算每一句JavaScript代码,一般情况下网页上的JS代码段会使用浏览器提供的解释器运行,而Node.js使用了谷歌开源的一个名为V8引擎的良心产品(JS解释器),实现脱离浏览器下运行JavaScript代码

什么是nvm

nvm,Node Version Manager 是一个开源的Node.js版本管理Bash工具,可方便的在Bash环境下下载、更新、管理多个版本并存的Node.js,并选择性地使用其中一个

什么是GitHub Pages

GitHub Pages 是GitHub提供的个人静态主页网站托管服务,原目的是用于提供你在GitHub上托管的所有开源项目介绍,后来也推荐作为个人博客之类的用途

优势是使用简单方便,免费高效实时,可用空间高达1G,可绑定自定义域名,原生自带GitHub级别防护…好像无敌了

GitHub Pages | Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.

什么是…

前提条件

  • 已安装Git工具
  • 已有GitHub账号
  • (Mac)已安装Xcode command line tools

安装nvm与Node.js

参考我的另一篇文章 Node.js安装 - 简书

安装Hexo

npm install -g hexo-cli

为了便于发布到GitHub上,建议同时安装hexo-deployer-git

npm install hexo-deployer-git --save

Hexo安装文档

初始化,建立博客项目

选定博客网站项目程序文件的存放位置,如~/develop/hexo/github/,Bash中cd进入该目录下,执行命令:

hexo init

执行完毕后,该命令将在当前目录下生成一套标准的Hexo博客项目模板

生成网站

上面的操作只是生成了一套网站构成所需的“源代码”,实际发布时需要根据这套“源代码”当中的配置文件、博客文档(.md文件)、主题模板等,进行组合构建,生成服务器可识别的标准HTML网站目录,此时可使用该命令:

hexo g

执行完毕后,在public目录下可看到我们自己书写的博客文档(.md文件)与所选的博客主题模板链接组合,生成的最终静态网站文件,该目录也差不多就是之后发布到GitHub上的实际文件(实际发布到GitHub的是.deploy_git目录),外部的网站“源代码”不会上传到github.io

启动本地服务器

启动本地服务器可即时查看网站运行效果:

hexo s

默认地址是 localhost:4000

选择主题

Hexo可随时使用、更换博客主题

主题文件可在Hexo官方主题网页中下载,以Material为例,点击主题预览图下方的主题名称链接即可进入该主题的源码发布页面 GitHub - viosey/hexo-theme-material: Material Design theme for hexo.

根据主题安装指导,下载项目至博客项目下的themes目录中,文件夹命名为material,并在博客配置文件_config.yml中指定使用该主题:

theme: material

将material主题目录下的_config.template.yaml重命名为_config.yaml

参考Material主题文档进行必要配置

再次执行 hexo g 将会根据新主题重新构建整个博客

注意:

1.5.6版本在执行hexo g时会报出TypeError错误,可参考Issue686修改dnsprefetch.ejs文件解决

发布博客

创建github.io仓库

在自己的GitHub中,创建新仓库,标准命名为GitHub用户名.github.io,例如我的:wavky.github.io

仓库Readme、License之类的留空即可,之后在发布上传时会被强制覆盖抹掉

配置SSH密钥

参考 https://my.oschina.net/ryaneLee/blog/638440 配置SSH密钥一节

修改博客配置文件_config.yml

deploy:
type: git
repo: GitHub上传仓库的完整路径,如 https://github.com/wavky/wavky.github.io.git
branch: master

发布到GitHub

hexo g生成完毕后,可执行该命令发布博客到GitHub上:

hexo d

或在生成网站的同时进行发布:

hexo g -d

查看效果

点击仓库页面中的GH Pages按钮,应该可以看到真正发布在互联网上的效果

绑定域名

GitHub Pages 默认提供的是 GitHub用户名.github.io(例如我的:wavky.github.io)作为博客访问地址,可设置绑定自定义域名

在博客项目目录的source文件夹中,创建一个CNAME文件,存储预备使用的个人域名,如:

# 在source目录下
echo story.wavky.com > CNAME

清理Hexo缓存并重新生成发布

hexo clean
hexo g -d

GitHub项目页面中Setting设置界面,滚到GitHub Pages部分确认域名无误

在个人域名提供商(如阿里云万网)中,进入DNS设置界面,追加一条CNAME记录,这里我指定以story前缀的个人域名跳转到原来的默认的博客域名wavky.github.io,记录如下:

注:其他类型的域名绑定方式(例如IP指向等),在最后一步DNS设置中操作会不一样

等待10分钟左右应该生效

下一篇:如何使用Hexo写博客

番外篇:Hexo之我的桌角女友的食用方式

使用Hexo搭建GitHub博客(2018年Mac版)的更多相关文章

  1. 使用Hexo搭建github博客步骤,超简便

    categories: 工具 tags: git Windows 搭建博客 你只需要node环境和一个github账号就可以开工啦! 本教程适合于Windows环境,Mac教程也大同小异 利用hexo ...

  2. Linux下使用Hexo搭建github博客

    找到一篇靠谱的博客,备份一下: ---------以下原文------------------ Nodejs安装 因为hexo是基于nodejs的应用,所以要先安装nodejs才可以.我这里以Ubun ...

  3. 转:20分钟教你使用hexo搭建github博客

    注册Github账号 这里我们就不多讲了,小伙伴们可以点击这里,进入官网进行注册. 创建仓库 图片来自Github 登录账号后,在Github页面的右上方选择New repository进行仓库的创建 ...

  4. 使用hexo搭建github博客

    Win7系统已经安装了node.js和npm npm install -g hexo-cli 全局安装hexo客户端 hexo init blog 在喜欢的位置初始化blog目录 cd blog np ...

  5. 使用github和hexo搭建静态博客

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 终于写这篇文章了,这是我使用github和hexo搭建博客的一些心得,希望能给大家一点帮助.少走点弯路.刚接触github,只是用来存项目的版本, ...

  6. 使用Hexo搭建个人博客并部署到GitHub或码云上全过程

    一.前言 如上图所示:GitHub有Github Pages,而码云也有码云 Pages 1.Github Pages或Gitee Pages是什么呢? Github Pages或者Gitee Pag ...

  7. Linux下使用 github+hexo 搭建个人博客07-next主题接入搜索和站点管理

    这是搭建个人博客系统系列文章的最后一篇,如果你是从第一篇一路跟下来的,那么恭喜你,即将完成整个博客网站的搭建.OK,话不多说,开始我们的收官之战. 不知你想过没有,如果我们的文章少,一眼看完整个目录, ...

  8. Linux下使用 github+hexo 搭建个人博客06-next主题接入数据统计

    之前说了 next 主题的优化和接入评论系统.让我们完成了自己所需的页面风格和排版,也可让访问用户在每篇博文评论,完成博主和访问用户的交互. 本章我们继续讲解其他重要功能. 既然是一个网站,那么我们就 ...

  9. Linux下使用 github+hexo 搭建个人博客05-next主题接入评论系统

    静态站点拥有一定的局限性,因此我们需要借助于第三方服务来扩展我们站点的功能. 而评论系统是最常用于和网站用户交流的,因此本章讲解在 next 主题,如何接入评论系统. 参考网站:Next 使用文档,第 ...

随机推荐

  1. Appium+python HTML测试报告(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10054632.html) 测试任务执行完成后,我们需要一份通俗易懂的测试报告来展示自动化测试的结果. HTMLTes ...

  2. 虚拟货币——比特币行情价格分析

    最近挖以太币的朋友们在关注以太坊行情时,一定会发现以太币的价格对比之前上涨了不少.肯定有部分朋友想了解这次上涨的原因,我们特地为此查询了一番.因为比特币相当于虚拟货币中的黄金,它的价格波动会波及到其他 ...

  3. 十几行代码带你用Python批量实现txt转xls,方便快捷

    前天看到后台有一兄弟发消息说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现,我在后台简单回复了下,其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分 ...

  4. 169.求众数 leetcode Javascript

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] 输出: 3 ...

  5. 会声会影2018提示dll文件丢失怎么办?

    一些会声会影2018用户,在安装.使用软件的过程中,会出现dll缺失的提示,导致软件无法打开,那么,出现这一问题要怎么解决.接下来小编为大家具体介绍下两种解决方法. 图1:dll丢失提示 打开会声会影 ...

  6. 王者荣耀交流协会--第3次Scrum会议

    Scrum master:王玉玲 要求1:工作照片 要求2:时间跨度:2017年10月15号  6:00--6:24  共计24min要求3:地点:传媒西楼204,会议室要求4:立会内容:1.从昨日会 ...

  7. 第18次Scrum会议(10/30)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/30 17:19~17:38,总计19min.地点:东北师 ...

  8. 04慕课网《vue.js2.5入门》——Vue-cli开发todolist

    主要文件目录: 文件代码: 根实例,初始化vue: <!--index.html,网站入口页面,和main.jsp组成一套.vue文件,包含--> <!DOCTYPE html> ...

  9. c# 捕获一般获取不到的异常

    1.主函数入口加异常事件,代码例如: /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void M ...

  10. Spring学习(五)——Spring注解(一)

    ---恢复内容开始--- 概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射 ...