当前位置: 首页 > news >正文

利用GitHub Pages和Hexo搭建个人博客

本文首发地址: 非生异也

本项目源码托管在GitHub上

Why

阮一峰曾经说过:喜欢写Blog的人,会经历3个阶段。

第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

在这之前,我在博客园里写了两年的博客,数量虽然不多,但都是自己学习过程的真实记录,这属于第一阶段。随着学习的东西越来越多,总想着要有个独立的个人主页,于是就开始不停地Google。最终在SAE + WordPress 和 GitHub Pages + Hexo 之间选择了后者,一是因为Git的存在,二是因为喜欢这种轻量级框架的简单而强大。

Start

GitHub Pages

GitHub Pages的官方介绍是 Websites for you and your projects. 利用它只需要简单的几步,就可以建立一个自己的站点,前提是已经有了一个GitHub帐号。

1、Create a repository:
repository名称的格式必须为 username.github.io (username为自己的GitHub帐号。)

2、Clone the repository:

$ git clone https://github.com/username/username.github.io

3、Hello World:

$ cd user.github.io
$ exho "Hello World" > index.html

4、 Push it:

$ git add --all
$ git commit -m "Initial commit"
$ git push -u origin master

5、已经生成了你的主页 http://username.github.io 

Hexo

Hexo是一个快速、简洁且高效的博客框架,具有如下特点:
急速生成静态网页
支持Markdown
一键部署博客到GitHub Pages等平台
丰富的插件支持

1、 先在本地环境配置好Hexo

$ npm install hexo-cli -g
$ hexo init username.github.io
$ cd username.github.io
$ npm install
$ hexo server

2、将博客部署到GitHub上:这时在浏览器输入http://localhost:4000 就可以在本地预览博客了

安装 hexo-deployer-git

$ npm install hexo-deployer-git --save

修改配置文件_config.yml 

deploy:
  type: git
  repo: <repository url>

提交到GitHub上 

$ hexo clean
$ hexo g
$ hexo d

此时访问 http://username.github.io 就和本地一样的效果了。更多Hexo的使用访问Hexo官方文档 

Append

现在已经可以通过访问你的GitHub Pages二级域名来访问你的博客了,不过既然是独立博客,当然是应该通过独立域名来访问。

购买域名

由于在国内购买域名需要备案(虽然我已经备案过了),费时比较长,所以我又在国外购买了一个域名。而且正好赶上namecheap疯狂促销,就以很满意的价格买了一年的。

域名解析

添加CNAME

在usname.github.io/source/下新建CNAME文件,写入购买的域名,保存并部署。

DNS设置

建议使用DNSpod,添加两条A记录分别为
192.30.252.153
192.30.252.154
这两个IP即GitHub Pages的IP。

去namecheap修改DNS地址

在域名设置里面将DNS改为DNSpod提供的DNS
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
可能需要等段时间才能生效。

后记

本文有些地方可能写得不够清晰,欢迎留言交流。

转载于:https://www.cnblogs.com/scplee/p/5533292.html

相关文章:

  • 为什么Python发展得如此之快?
  • 程序员为什么要时刻保持危机感?
  • 高并发服务设计——缓存
  • 关于领域模型与技术架构的关系的思考
  • 学会容器服务帮你打造Docker云端最佳运行环境
  • ASP.NET中 ListView(列表视图)的使用前台绑定
  • 1507 酒厂选址
  • win10系统的简单优化
  • Unity VR全景漫游
  • 查找、移除某个视图上的某类控件
  • linux 巨页使用测试以及勘误1
  • CSS使图片变灰
  • js跨域
  • 把sublime3打造成c++开发环境
  • 对未来的想法
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android组件 - 收藏集 - 掘金
  • Brief introduction of how to 'Call, Apply and Bind'
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ERLANG 网工修炼笔记 ---- UDP
  • HTTP那些事
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • mongo索引构建
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Node项目之评分系统(二)- 数据库设计
  • Redis中的lru算法实现
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Tornado学习笔记(1)
  • vue 配置sass、scss全局变量
  • 机器学习中为什么要做归一化normalization
  • 记一次和乔布斯合作最难忘的经历
  • 前端攻城师
  • 前端面试题总结
  • 手写双向链表LinkedList的几个常用功能
  • 通过几道题目学习二叉搜索树
  • 异步
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #预处理和函数的对比以及条件编译
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (小白学Java)Java简介和基本配置
  • (一)WLAN定义和基本架构转
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 获取一个正在运行的进程的命令行参数