前两年开始用 wordpress 搭了一个网站,但服务器是在 Linode 上,之所以要放在 Linode 上,要从买的域名说起,因为我买的域名是 fengzheng.pub ,.pub 是不允许备案的,所以不能解析到国内的服务器,例如阿里云上,所以只能部署在国外的服务器。

但是由于网络方面的限制,导致网站访问速度一直不是很快,因此,也还是在博客园和这个网站双份维护。

这两天借助 Hexo 和 github ,将网站迁移到了 GitHub Pages,GitHub Pages 提供免费的空间,可以借助一个特殊的 github 仓库,完成一个个人网站的运行。

Hexo 是什么

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

安装部署步骤

本地部署 Hexo

1、安装 nodejs ,不做介绍;

2、安装 git ,不做介绍;

3、安装 hexo-cli ,命令如下:

npm install hexo-cli -g

4、新建一个本地目录,例如/Users/fengzheng/fengzheng-blog,进入此目录cd /Users/fengzheng/fengzheng-blog

5、执行 Hexo 初始化命令:

//其中 blog 是自己定义的博客根目录名称,可以自定义 例如 hexo init my-blog
hexo init blog

6、进入目录 blog ,cd blog

7、安装依赖模块,执行命令 npm install

8、清理 hexo ,类似于清理编译结果,例如 mvn clean, 执行命令 hexo clean

9、生成静态页面, 执行命令hexo g

10、启动服务,执行命令hexo s ,默认在 4000 端口启动,访问本地4000端口即可查看本地网站;

更换主题 NexT

NexT 主题是 Hexo 最流行的主题了,界面简洁,做技术博客再适合不过了。

1、下载 NexT,此时还是在 blog 目录下,执行如下命令:

$ mkdir themes/next
$ curl -s https://api.github.com/repos/iissnan/hexo-theme-next/releases/latest | grep tarball_url | cut -d '"' -f 4 | wget -i - -O- | tar -zx -C themes/next --strip-components=1

2、修改网站 _config.yaml 配置文件,设置 theme: next ,next 即为主题名称。顺便修改一下网站的基本属性(标题、描述、作者、语言等),例如:

title: 古时的风筝
subtitle:
description: 一个不只是关注技术的技术人的技术博客。
author: 风筝
language: zh-Hans

请注意,每个 key 的冒号后面需要一个空格(必须的),否则会报错。

3、之后执行命令,重新生成并启动网站:

hexo clean
hexo g
hexo s

4、NexT 主题自带 4 中不同的风格,稍有不同,可以依次看一下效果,选一个你喜欢的,分别是:

#scheme: Muse
#scheme: Mist
scheme: Pisces
#scheme: Gemini

部署到 github

1、首先要有 github 账号,然后创建一个名称为 {用户名}.github.io 的仓库,其中用户名是你的 github 账号名称,例如我的就是 huzhicheng.github.io。这是一个固定的格式,必须要这么创建,才能配合 Github Pages 使用,并且每个账号只能有一个这种仓库。

2、设置部署类型和 github 仓库位置和主分支,到网站配置文件 _config.yml 中修改如下:

表示部署类型为 git;

仓库为 git@github.com:huzhicheng/github.io.git ,替换成你的仓库即可;

分支为 master 主分支;

deploy:type: gitrepo: git@github.com:huzhicheng/github.io.gitbranch: master

3、安装 git 扩展模块 hexo-deployer-git,到 blog 目录中执行命令:

 npm install hexo-deployer-git --save

4、执行命令hexo d ,部署到上面创建的 github 仓库中。

这一步就是向 github 仓库的master 分支提交文件,所以本地要有权限向你的 github 仓库提交。需要 sshkey,至于怎么添加 sshkey,如果不清楚,查一下就知道了。

最后执行成功显示如下:

To github.com:huzhicheng/github.io.git* [new branch]      HEAD -> master
Branch master set up to track remote branch master from git@github.com:huzhicheng/github.io.git.
INFO  Deploy done: git

5、到这一步,通过地址 https://huzhicheng.githubio 就可以访问了。

分类、标签页和新文章

添加分类页

1、新建一个分类页面,命名为 categories。命令如下:

hexo new page categories

2、编辑刚新建的页面,将页面的类型设置为 categories ,主题将自动为这个页面显示所有分类。

---
title: 分类
date: 2017-12-10 12:39:04
type: "categories"
---

3、在菜单中添加链接。编辑主题的 _config.yml ,即 themes/next 下的配置文件,区别于网站根目录下的配置文件,将 menu 中的 categories: /categories || th 注释去掉,如下:

menu:home: / || home#about: /about/ || usertags: /tags/ || tagscategories: /categories/ || tharchives: /archives/ || archive

添加标签页

1、创建一个名为 tags 页面。命令如下:

hexo new page tags

2、编辑刚新建的页面,将页面的类型设置为 tags ,主题将自动为这个页面显示所有标签。

---
title: 标签
date: 2017-12-09 22:06:51
type: "tags"
---

3、在菜单中添加链接。编辑主题的 _config.yml ,即 themes/next 下的配置文件,区别于网站根目录下的配置文件,将 menu 中的 tags: /tags || tags 注释去掉,如下:

menu:home: / || home#about: /about/ || usertags: /tags/ || tagscategories: /categories/ || tharchives: /archives/ || archive

添加新文章

1、Hexo 中有 Front-matter 这个概念,是文件最上方以 --- 分隔的区域,用于指定文件的属性。例如, 在 hexo new post "Spring AOP 和 动态代理技术" 时会生成 Spring-AOP-和-动态代理技术.md 文件,文件生成好的文章属性。

---
title: Spring AOP 和 动态代理技术
date: 2017-12-10 17:57:14
tags:
---

2、在其中添加categories属性,再部署之后就可以在分类页看到分类了

---
title: Spring AOP 和 动态代理技术
date: 2016-03-16 08:12:43
tags:
categories: Java
--- 

3、再为其添加 tag,就可以把它和标签关联起来

---
title: Spring AOP 和 动态代理技术
date: 2016-03-16 08:12:43
tags:- Spring- Java- AOP- 动态代理
categories: Java
--- 

增加 about 页面

1、创建一个名为 about 页面。命令如下:

hexo new page "about"

2、修改生成的 md 文件,修改 title,例如关于我

3、修改 themes/next/_config.yaml 文件中的 menu 下的菜单配置,如下:

menu:home: / || home#about: /about/ || usertags: /tags/ || tagscategories: /categories/ || tharchives: /archives/ || archive

社交媒体、头像和文章底部二维码

打开 themes/next/_config.yaml 文件,修改内容如下:

social 是社交媒体链接,可以配置更多的例如 微博、Twitter 等等;

avatar 是头像图片地址;

wechat_subscriber 是设置每个文章底部的二维码链接,这里就可以配置上自己的微信公众号二维码了,省去每发一篇文章都要在文章内容里自己添加二维码的麻烦,需要 NexT 5.1 版本以上才支持。

social:GitHub: https://github.com/huzhicheng || github知乎: https://www.zhihu.com/people/moonkite/activities avatar: http://wx2.sinaimg.cn/small/0070QarDly8fm5qpcu0ljj30hs0hsgmc.jpg
wechat_subscriber:enabled: trueqcode: /uploads/wechat-qcode.jpgdescription: 欢迎您扫一扫上面的微信公众号,订阅我的博客!

配置评论功能

配置 disqus 评论

1、登录 https://disqus.com/ ,注册账号;

2、点击 GET STARTED ,如图:

3、点击 “I want to install Disqus on my site”

4、然后按提示填写信息,其中最重要的是Website Name,对应着要在配置文件中 disqus 的 shortname

1、配置 themes/next/_config.yaml 中的 disqus 配置如下:

disqus:enable: falseshortname: your_shortnamecount: true

2、之后重启服务即可。

注意:disqus 虽然好用,但是在国内被墙的厉害,如果期望有不FQ的用户可以评论,建议还是放弃他。

配置 hypercomments 评论

hypercomments 也是 NexT 默认支持的评论系统,而且比起 disqus 来,可以不FQ。

1、到 https://www.hypercomments.com/ 注册账号,仅支持 Google 账号注册。

2、按提示一步步往下走。

3、完成之后,在设置页面,找到 Widget ->code 中的 widget_id 值。

4、之后在 themes/next/_config.yaml 中配置,如下:

hypercomments_id: widget_id

配置图床

文章里经常需要配图,图片存储在什么地方呢,我这里使用的是七牛云存储,注册并认证一个个人账号可以有免费10G的容量,足够个人博客使用了。而且作为专业的图片存储服务商,访问速度和服务质量有保障,可以配置自己的域名解析到七牛 bucket 。具体的操作可以到七牛官网上查看相应的文档。

另外,如果不用七牛的话,微博相册功能也可以作为图床使用。但是由于一些原因,如果账号被封,则相册也就无法访问了,而且也不排除微博有可能封了相册外链的功能,到时候就麻烦了。

配置独立域名

前面通过 https://huzhicheng.github.io 可以访问博客网站。配上一个自己个性化的域名是不是更有个性呢。

这里以阿里云万网域名为例,我的域名是在阿里云购买的。

1、登录阿里云账号,在域名管理中找到需要绑定的域名;

注意绑定了两个记录类型为 A、主机记录为 www 的记录到 192.30.252.154 和 192.30.252.153 ,这两个 IP 是 GitHub Pages 的 IP,表示把域名解析到 GitHub Pages。

另外添加一个记录类型为 CNAME ,主机记录为 @ 的记录到自己的 {username}.github.io. ,注意 io 后面还有一个点。这条记录的意思是将域名转向到 {username}.github.io 。

2、进入到网站的 source 目录中,添加一个名称为 CNAME 的文件(没有后缀名,必须大写),在里面添加记录你的个性化域名,例如我的是:

fengzheng.pub

只需要这一行就好,不用 www 。

3、稍等域名解析生效,最后的效果就是访问 fengzheng.pub 或 www.fengzheng.pub 都会解析到 github.io 那个网站上。

当然别忘了使用 hexo g,hexo d 部署网站了。

统计分析

网站跑起来了,每天与多少人看,用户画像是什么样的,就需要用相应的统计分析工具了,这里用到百度统计功能,也是 NexT 主题默认支持的。

1、首先需要注册百度统计账号;

2、进入账号,添加一个网站,设置好对应的网站域名;

3、获取统计代码,例如下面这样的,找到 hm.js? 后面的一串 id;

<script>
var _hmt = _hmt || [];
(function() {var hm = document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?bssfdfff9050f68a2d014c30fea8878";var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);
})();
</script>

4、打开 themes/next/_config.yaml 配置文件,找到 baidu_analytics,配置上这串 id 即可,例如:

baidu_analytics: bssfdfff9050f68a2d014c30fea8878

配置阅读量

默认的情况下,每篇文章的阅读量是没有显示的,需要做一下配置。这里用的是最简单的 busuanzi_count ,配置如下:

busuanzi_count:# count values only if the other configs are falseenable: true# custom uv span for the whole sitesite_uv: falsesite_uv_header: <i class="fa fa-user"></i> 访问人数site_uv_footer: # custom pv span for the whole sitesite_pv: falsesite_pv_header: <i class="fa fa-eye"></i> 总访问量 site_pv_footer:# custom pv span for one page onlypage_pv: truepage_pv_header: <i class="fa fa-file-o"></i> 浏览page_pv_footer: 次

当然还可以用功能更丰富的 LeanCloud ,调研过 APP 消息推送功能的可能了解过,具体的集成可以搜索一下。

除了以上说到的这些,还有其他的一些可以定制的东西,例如动画效果、搜索服务、404页面、代码高亮样式等等,丰富多样的服务,都可以非常方便的集成上去。

** 查看效果 http://www.fengzheng.pub
**如不嫌弃欢迎关注我的微信公众号。

转载于:https://www.cnblogs.com/fengzheng/p/8031518.html

Hexo + github 打造个人博客相关推荐

  1. hexo+github打造个人博客系列之Coding Pages去广告

    尴尬的广告 大家应该可以看到,在第一次以自定义域名访问Coding Pages时,会有一个跳转广告.是不是很尴尬?经查阅官方说明,得知原因. 银牌会员的 Coding Pages 在访问时默认会先加载 ...

  2. Hexo+github搭建个人博客-博客发布篇

    通过 Hexo+github搭建个人博客-环境搭建篇 以及 Hexo+github搭建个人博客-博客初始化篇 ,我们了解到了利用Hexo搭建个人博客需要的环境以及配置,下面这篇文章将会介绍如何把我们的 ...

  3. Hexo+github搭建个人博客-博客初始化篇

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 上一篇博文 [<Hexo+github搭建个人博客-环境搭建篇>](http:// ...

  4. Hexo+github搭建个人博客-环境搭建篇

    一.概述 我们使用Hexo + Github搭建个人博客,我们自然不能错过,事不宜迟,我们现在立马来认识一下,他们究竟是何方神圣吧. 1.1 关于 GitHub 1.1.1 Github 接触编程一段 ...

  5. vsphere通用配置_Mac环境下如何用Hexo+Github搭建个人博客

    一个爱折腾的人,总是忍不住去自己动手尝试新鲜事物.就拿写博客来说,虽然网上已经提供了很多博客平台,但是总有一些个性化的需要得不到满足.所以就抽空去网上找了下如何使用Hexo+Github 搭建自己博客 ...

  6. (Ⅰ)基于Hexo+GitHub Page搭建博客,绑定域名及备份

    前言 这里引用阮一峰老师网络日志里说的,对于喜欢写博客的人,会经历三个阶段: 第一阶段,刚接触 Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间, ...

  7. win10+hexo+github搭建个人博客

    win10+hexo+github搭建个人博客 参考:https://hexo.io/,博客用于记录自己的学习工作历程 参考以下步骤安装 1.搭建环境准备(包括node.js和git环境,gitHub ...

  8. 【小白】【新手向】Hexo+Github搭建个人博客

    如题,一个[小白][新手向]的,关于Hexo+Github搭建个人博客. 针对于: 对于代码完全不懂的纯小白! 完全不知道什么是hexo,git和github的小白! 感觉像是在打广告,其实并不是.事 ...

  9. hexo+github创建个人博客--深入篇

    内容简介 此篇文章介绍的是个人博客的一些配置内容,包含博客项目的介绍.主题配置.图床配置以及各种第三方功能插件的使用,若还未搭建个人博客的哥们可以先参考hexo+github创建个人博客–基础篇搭建出 ...

最新文章

  1. Laravel框架中的event事件操作
  2. AI产业落地风向标,2019全球智博会亮点回顾
  3. cgi硬盘安装器_简简单单,玩转虚拟硬盘装多系统
  4. oauth2中用户的信息如何动态获取和存储_oAuth2.0 简介
  5. [TYVJ] P1016 装箱问题
  6. 人工智能--遗传算法(旅行商问题)
  7. boost::adaptors::copied相关的测试程序
  8. 一个数据包大小是多少k_算法交流: 6046 数据包的调度机制 【2.6基本算法之动态规划】...
  9. bzoj4152-[AMPPZ2014]The_Captain
  10. 阿里云镜像下载ubuntu 1
  11. C++语言类的多态介绍和示例
  12. CozyRSS2开发记录0-win10开坑
  13. vue调用接口修改密码_vue开发前后端分离前端如何调用后端接口?
  14. 张敬富审计百度云资源_钟平逻辑英语资源百度云
  15. linux dhcp服务器配置及小实验
  16. 周志华-机器学习.pdf 学习心得 附整理材料
  17. android 4k 测试图片,高端4K测试图助4K电视进“测一下”时代
  18. 成都学计算机的大学有哪些专业学校,成都市计算机类专业开设的院校有哪些
  19. 经典的测试开发面试题
  20. Win10系统Ctrl键锁定无法使用解决方法

热门文章

  1. WINDOWS操作系统32位(x86)和64位(x64)的区别
  2. dll修改和EXCOPE
  3. 这样的极客大会千万别停!如今中国太需要为技术传道、为极客正名
  4. 毕啸南专栏 | 对话姚星:腾讯有后来居上的传统,我们的战略是全民AI
  5. 百度DuerOS与高通合推手机语音交互解决方案,谁会欢喜谁要愁?
  6. 谨慎设计方法签名(40)
  7. Java代码题目:计算奖金和完全平方数
  8. Exchange Server2013 系列七:客户端访问服务器高可用性部署实战
  9. 前景看淡,移动医疗九成或将成炮灰
  10. Golang gRPC实践 连载七 HTTP协议转换