基于hexo+github搭建一个独立博客
一直听说用hexo搭建一个拥有自己域名的博客是很酷炫的事情~,在这十一花上半个小时整个hexo博客岂不美哉。
使用Hexo吸引我的是,其简单优雅, 而且风格多变, 适合程序员搭建个人博客,而且支持多平台的搭建,再加上有些node,git基础,分分钟创建出一个高大上的博客。废话少说,开始吧。
准备工作
1.node:用来生成静态页面的 到Node.js官网下载相应平台的最新版本,一路安装即可。
2.git: 把本地的hexo内容提交到github上去.没有安装的可以看此教程。
3.github:用来做博客的远程创库、域名、服务器。(~不多说了)
然后你还要知道一点点linux命令,域名解析相关知识(以上条件你都达到了,那么恭喜你30分钟搭建倒计时开始~)
安装Hexo
(本人是Mac系统,其他系统的朋友这部分可以看官网教程)
当Node.js和Git都安装好后就可以正式安装Hexo了,终端执行如下命令:
$ sudo npm install -g hexo
输入管理员密码即开始安装
Hexo官网上的安装命令是$ npm install -g hexo-cli,安装时不要忘记前面加上sudo,否则会因为权限问题报错。
注意坑一
初始化
终端cd到一个你选定的目录(比如创建一个blog文件,$cd blog),执行hexo init
命令:
$ hexo init
在blog目录下,执行如下命令,安装npm:
$ npm install
执行如下命令,开启hexo服务器:
$ hexo s
此时,浏览器中打开网址http://localhost:4000,能看到如下页面:
本地设置好后,接下来开始关联Github。
1.创建仓库
登录你的Github帐号,新建仓库,名为用户名.github.io
固定写法。
本地的blog
文件夹下内容为:
_config.yml
db.json
node_modules
package.json
scaffolds
source
themes
终端cd到blog
文件夹下,vim
打开_config.yml
,命令如下:
$ vim _config.yml
打开后往下滑到最后,修改成下边的样子:
deploy:
type: git
repository: https://github.com/MuYunyun/MuYunyun.github.io.git
branch: master
你需要将repository
后MuYunyun换成你自己的用户名
注意坑二:在配置所有的_config.yml文件时(包括theme中的),在所有的冒号:后边都要加一个空格,否则执行hexo命令会报错,切记 切记
注意坑二
在blog
文件夹目录下执行生成静态页面命令:
$ hexo generate 或者:hexo g
此时若出现如下报错:
ERROR Local hexo not found in ~/blog
ERROR Try runing: 'npm install hexo --save'
则执行命令:
npm install hexo --save
若无报错,自行忽略此步骤。
再执行配置命令:
$ hexo deploy 或者:hexo d
注意坑三:若执行命令hexo deploy
仍然报错:无法连接git或找不到git,则执行如下命令来安装hexo-deployer-git:
$ npm install hexo-deployer-git --save
若你未关联Github,则执行hexo deploy
命令时终端会提示你输入Github的用户名和密码,即
Username for 'https://github.com':
Password for 'https://github.com':
hexo deploy
命令执行成功后,浏览器中打开网址http://MuYunyun.github.io(将MuYunyun
换成你的用户名)能看到和打开http://localhost:4000
时一样的页面。
为避免每次输入Github用户名和密码的麻烦,可参照第二节方法
2.添加ssh key到Github
1.1.检查SSH keys是否存在Github
执行如下命令,检查SSH keys是否存在。如果有文件id_rsa.pub
或id_dsa.pub
,则直接进入步骤1.3将SSH key添加到Github中,否则进入下一步生成SSH key。
$ ls -al ~/.ssh
1.2.生成新的ssh key
执行如下命令生成public/private rsa key pair,注意将your_email@example.com
换成你自己注册Github的邮箱地址。
$ ssh-keygen -t rsa -C "your_email@example.com"
默认会在相应路径下(~/.ssh/id_rsa.pub
)生成id_rsa
和id_rsa.pub
两个文件。
1.3.将ssh key添加到Github中
Find前往文件夹~/.ssh/id_rsa.pub
打开id_rsa.pub文件,里面的信息即为SSH key,将这些信息复制到Github的Add SSH key页面即可。
进入Github --> Settings --> SSH keys --> add SSH key:
Title里任意添一个标题,将复制的内容粘贴到Key里,点击下方Add key
绿色按钮即可。
3.发布文章
终端cd到blog
文件夹下,执行如下命令新建文章:
hexo new "postName"
名为postName.md
的文件会建在目录/blog/source/_posts
下。
文章编辑完成后,终端cd到blog
文件夹下,执行如下命令来发布:
hexo generate //生成静态页面
hexo deploy //将文章部署到Github
安装theme
你可以到Hexo官网主题页去搜寻自己喜欢的theme。这里以hexo-theme-next为例
终端cd到 blog
目录下执行如下命令:
$ git clone https://github.com/iissnan/hexo-theme-next themes/next
将blog
目录下_config.yml
里theme
的名称landscape
修改为next
终端cd到blog
目录下执行如下命令(每次部署文章的步骤):
$ hexo clean //清除缓存文件 (db.json) 和已生成的静态文件 (public)
$ hexo g //生成缓存和静态文件
$ hexo d //重新部署到服务器
至于更改theme内容,比如名称,描述,头像等去修改blog/_config.yml
文件和blog/themes/next/_config.yml
文件中对应的属性名称即可,不要忘记冒号:
后加空格。NexT 使用文档里有极详细的介绍。
绑定个人域名
首先假设你有一个域名并且是可用状态。修改你域名的DNS
地址为 f1g1ns1.dnspod.net
和f1g1ns2.dnspod.net
现在使用的域名是Github提供的二级域名,也可以绑定为自己的个性域名。购买域名,我是在万网买的,可直接在其网站做域名解析。
1.Github端
在/blog/themes/landscape/source
目录下新建文件名为:CNAME
文件,注意没有后缀名!直接将自己的域名如:muyunyun.cn
写入。
终端cd到blog
目录下执行如下命令重新部署:
$ hexo clean
$ hexo g
$ hexo d
网上许多都是说在Github上直接新建CNAME文件,如果这样的话,在你下一次执行hexo d部署命令后CNAME文件就消失了,因为本地没有此文件嘛。
注意坑四
2.域名解析
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。登录万网,在你购买的域名后边点击:解析 --> 添加解析
记录类型:CNAME
主机记录:将域名解析为example.com(不带www),填写@或者不填写
记录值:MuYunyun.github.io. (不要忘记最后的.
,MuYunyun
改为你自己的用户名),点击保存即可,如下图:
ps:万网DNS地址更换貌似需要一段时间才能生效,如果不能访问请晚点或者隔天再访问域名,如果还是不行可能就是出问题了。
铛铛铛,点击MuYunyun.github.io和访问http://muyunyun.cn/访问效果一致

总结和说明
github pages
虽然免费,但毕竟是国外的服务器,国内访问可以稍微缓慢,如果可以的话,可去买一个支持Node.js
的国内云空间即可。可以参考我之前写的
1元搭建自己的云服务器~~搭建好这个博客,满满的成就感。祝大家节日快乐~~
参考链接:Mac上搭建基于GitHub的Hexo博客 (这篇博文写得已经大部分很到位了,本文是基于这篇博文上做了些改动,博文所写的都经过实践,如有错误,欢迎指正)
基于hexo+github搭建一个独立博客的更多相关文章
- hexo干货系列:(一)hexo+gitHub搭建个人独立博客
前言 一直想要一个自己的独立博客,但是觉得申请域名+服务器的太麻烦了就一直没有实现.偶然机会发现Hexo这个优秀的静态博客框架,再搭配现在流行的gitHub,简直是完美写博客的黄金搭档(免费+方便). ...
- 如何搭建一个独立博客——简明Github Pages与Hexo教程
摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册.DNS设置.github和Hexo设置等过程,这是我写得最长的一篇教程.我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后 ...
- hexo+github搭建自己的博客
之前很早就想用hexo弄一个自己独立的博客了,在博客园也写了很多的博客,不过不喜欢博客园的风格.不过今天,终于折腾成功了,用hexo搭建了一个在github写的博客,开心,后面会将自己以前的博客慢慢迁 ...
- 使用hexo+github搭建免费个人博客详细教程
[TOC] 本文目录(注意无法点击): 前言 体验更加排版请访问原文链接:http://blog.liuxianan.com/build-blog-website-by-hexo-github.htm ...
- 利用 Hexo + Github 搭建自己的博客
扯在前面 在很久很久以前,一直就想搭建属于自己的一个博客,但由于各种原因,最终都不了了之,恰好最近突然有了兴趣,于是就自己参照网上的教程,搭建了属于自己的博客. 至于为什么要搭建自己的博客了?哈哈,大 ...
- 用 Hexo + Github 搭建自己的博客
扯在前面 在很久很久以前,一直就想搭建属于自己的一个博客,但由于各种原因,最终都不了了之,恰好最近突然有了兴趣,于是就自己参照网上的教程,搭建了属于自己的博客. 至于为什么要搭建自己的博客了?哈哈,大 ...
- 使用hexo+github搭建免费个人博客详细教程(转载)
https://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html 1.上传文档的hexo常用命令 2.输入hexo ...
- 使用GitHub+hexo搭建个人独立博客
前言 使用github pages服务搭建博客的好处有: 全是静态文件,访问速度快: 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 可以随意绑定自己的域名,不仔细看的话 ...
- Mac上基于hexo+GitHub搭建个人博客(一)
原文地址: http://fanjiajia.cn/2018/11/23/Mac%E4%B8%8A%E5%9F%BA%E4%BA%8Ehexo+GitHub%E6%90%AD%E5%BB%BA%E4% ...
随机推荐
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- 【Web动画】SVG 实现复杂线条动画
在上一篇文章中,我们初步实现了一些利用基本图形就能完成的线条动画: [Web动画]SVG 线条动画入门 当然,事物都是朝着熵增焓减的方向发展的,复杂线条也肯定比有序线条要多. 很多时候,我们无法人工去 ...
- [C#] C# 知识回顾 - 异常介绍
异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...
- PHP好用但又容易忽略的小知识
1.PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在.同样的method_ ...
- VS2015在创建项目时的一些注意事项
一.下面是在创建一个新的项目是我最常用的,现在对他们一一做一个详细的介绍: 1.Win32控制台应用程序我平时编写小的C/C++程序都用它,它应该是用的最多的. 2.名称和解决方案名称的区别:名称是项 ...
- interpreter(解释器模式)
一.引子 其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中:在实际应用中,我们可能很少碰到去构造一个语言的文法的情况. 虽然你几乎用 ...