Github 搭建 Hexo 纯静态化个人博客平台
以前一直想搭建一个属于自己的博客平台,有余种种原因一直未能实现,最近闲来无事,参照网上的教程,搭建了属于自己的博客。自己的博客网站,样式自由,不需要受限于各大平台。
本篇为从零开始的基础篇,本篇所包含的内容如下:
- 安装Git
- 安装NodeJs
- 安装hexo
- 生成SSH并添加到github
- 部署项目
- 上传到github
- 绑定个人域名
- 修改及配置主题
- 添加RSS
- 添加评论
- 写文章部分
开始
由于本人的电脑在搭建博客之前就有了各种环境,但是对于没有任何基础的人来讲,我觉得还是从源头开始讲会好一点,就像教别人做菜,总得把所有的用料及步骤说清楚对吧?(大佬们可以自动忽略啊啊啊啊~)
1. 安装Git Bash
我一直不太喜欢在cmd中操作各种命令,所以挑了这个比较好使的Git Bash, 我的是windows环境,所以下载windows版本并安装就可以了。
- 下载地址
- 安装步骤:双击下载好的exe文件,一路next就好啦
- 安装好后,打开gitbash,查看版本:然后你就可以在这里发挥你的聪明才智了
- 命令:
git version
(写这篇博客的时候最新版本:2.12.2)
- 命令:
2. 安装NodeJs
Hexo是基于nodeJS环境的静态博客,里面的npm工具很有用啊,所以还是老老实实把这玩意儿装了吧
- 下载地址(说明:LTS为长期支持版,Current为当前最新版)
- 安装步骤:反正下载好msi文件后,双击打开安装,也是一路next,不过在Custom Setup这一步记得选
Add to PATH
,这样你就不用自己去配置电脑上环境变量了,装完在按win + r
快捷键调出运行,然后输入cmd确定,在cmd中输入path可以看到你的node是否配置在里面(环境变量),没有的话你就自由发挥吧。 - 查看版本:又到自由发挥的时候了
- 命令:
node -v
- 命令:
3. 安装hexo
看到这么多安装,千万不要紧张,小哥哥小姐姐们一定要稳住,别怕,因为后面的东西都是在gitbash中用npm工具安装就好了。
- 先创建一个文件夹(用来存放所有blog的东西),然后
cd
到该文件夹下。 - 安装hexo命令:npm i -g hexo
安装完成后,查看版本:
初始化命令:
hexo init
,初始化完成之后打开所在的文件夹可以看到以下文件:- 解释一下:
- node_modules:是依赖包
- public:存放的是生成的页面
- scaffolds:命令生成文章等的模板
- source:用命令创建的各种文章
- themes:主题
- _config.yml:整个博客的配置
- db.json:source解析所得到的
- package.json:项目所需模块项目的配置信息
做好这些前置工作之后接下来的就是各种配配配置了。
4. 搭桥到github
- 没账号的创建账号,有账号的看下面。
- 创建一个repo,名称为
yourname.github.io
, 其中yourname是你的github名称,按照这个规则创建才有用哦,如下:
- 回到gitbash中,配置github账户信息(YourName和YourEail都替换成你自己的):
- 创建SSH
在gitbash中输入:ssh-keygen
,生成ssh。然后按下图的方式找到
-t rsa -C "youremail@example.comid_rsa.pub
文件的内容。
- 将上面获取的ssh放到github中:
添加一个New
,title随便取,key就填刚刚那一段。
SSH key在gitbash中验证是否添加成功:
ssh
-T git@github.com完成下一步你就成功啦!
- 创建一个repo,名称为
5. 一步之遥
- 用编辑器打开你的blog项目,修改
_config.yml
文件的一些配置(冒号之后都是有一个半角空格的):
deploy:
type: git
repo: https://github.com/YourgithubName/YourgithubName.github.io.git
branch: master
回到gitbash中,进入你的blog目录,分别执行以下命令:
hexo clean
hexo generate
hexo server注:hexo 3.0把服务器独立成个别模块,需要单独安装:
npm i hexo-server
。打开浏览器输入:
http://localhost:4000
接着你就可以遇见天使的微笑了~
6. 上传到github
- 先安装一波:
npm install hexo-deployer-git --save
(这样才能将你写好的文章部署到github服务器上并让别人浏览到) 执行命令(建议每次都按照如下步骤部署):
hexo clean
hexo generate
hexo deploy注意deploy的过程中要输入你的username及passward。如下:
- 在浏览器中输入
http://yourgithubname.github.io
就可以看到你的个人博客啦,是不是很兴奋! - 感觉gitbash中东西太多的时候输入
clear
命令清空。
7. 绑定个人域名
- 不想绑定的自行忽略
- 第一步购买域名:随便在哪个网站买一个就好了,小花是在阿里云购买的visugar.com, DNS也是顺道在那买的。
- 第二步添加CNAME:在项目的source文件夹下新建一个名为CNAME的文件,在里面添加你购买的域名,比如我添加的是
visugar.com
,只能添加一个哦。 - 到DNS中添加一条记录:
其中ip地址为你的github的地址,可在cmd中ping一下就能看到(ping
):
yourname.github.io - 接着再次部署一下,用你购买的域名打开,就可以看到你的博客啦~
8. 修改及配置主题
- hexo初始化之后默认的主题是
landscape
,
然后你可以去这个地址里面找到你想要的主题。在github中搜索你要的主题名称,里面都会有该主题的如何使用的介绍,按着来就好了,反正就是改改改!我选的是hueman
,看起来挺不错,至少是我喜欢的类型。
- 跟该主题相关的配置在
themes/hueman/_config.yml
里面,然后根据你的需要在这配配配就行了。
- 有的东西我也不知道是啥玩意儿,你要多试多倒腾几次,就能意会啦
下面是针对我所选的主题的两小点(别的主题我没看,可能也是类似):
在导航栏添加点东西
- 例如我添加了一个更新日志的模块。
- 在主题的配置文件中,menu添加一栏:
Board:
。
/board - 然后在source中添加一个board,即对应上面的名字。然后再创建一个index.md,里面可以写你想写的内容。
- 在主题的
hueman/langulages/zh-CN.yml
中的index适当的位置加:board:
,位置和名字是你自己设定。
'更新日志' - 重新部署,然后就OK了
在侧边栏添加点东西
- 回到你的主题的配置文件中,找到
widgets
一栏,在你要添加的位置处添加一条你自定义的名称。例如我的叫communiation
且放在了第二行。 - 在上面所提到的
zh-CN.yml
文件中找到sidebar一栏,添加communiation:
。
'你要设的名称' 在
hueman/layout/widget
中添加一个communiation.ejs
,填入模板<% if (site.posts.length) { %>
<div class="widget-wrap widget-list">
<h3 class="widget-title"><%= __('sidebar.communiation') %></h3>
<div class="widget">
<!--这里添加你要写的内容-->
</div>
</div>
<% } %>
9. 添加RSS
- 先安装rss相关插件:
npm i hexo-generator-feed
在你的项目的
_config.yml
配置文件下找到Extensions添加如下内容:# Extensions #插件和主题
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
#RSS订阅
plugin:
- hexo-generator-feed
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20- 进入到你的主题的配置文件下,找到你的放rss的位置,添加
/atom.xml
即可。 重新部署再打开就能看到效果啦~
10、加入站点内容搜索功能
本站点使用的是Local Search。加入站点内容搜索功能步骤如下:
- 安装hexo-generator-searchdb
$ npm install hexo-generator-searchdb --save
|
注意:安装时应在站点根目录下,即myBlog目录下
- 添加search字段
在站点myBlog/_config.yml
中添加search字段,如下:
search:
path: search.xml
field: post
format: html
limit: 10000
|
效果如下:
11、加入数据统计与分析功能
本站点使用的是百度统计。加入数据统计与分析功能步骤如下:
- 注册站长账号并登陆
在这里注册站长账号,并填写信息,网站域名和网站首页以下图为例来填写,注册完成后并登陆。
- 在跳转的页面中会显示下图,复制hm.js后的id值
- 添加baidu_analytics字段
在站点myBlog/_config.yml
中添加search字段,值为上步复制的id值
至此,该功能已成功加入,大约过20min后在百度统计上可以看到站点的访问情况,如下图:
Github 搭建 Hexo 纯静态化个人博客平台的更多相关文章
- 利用GitHub和Hexo打造免费的个人博客
每个程序猿都需要一个个人博客,目前广泛出现在大家视野里的有CSDN.博客园.简书,但是他们却没有给用户一个专属的站点.一个好记的域名.你需要一个https://xxx.xxx.xxx/格式的网址,一个 ...
- 技术人如何利用 github+Jekyll ,搭建一个独立免费的技术博客
上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中 ...
- PHP 页面静态化/纯静态化/伪静态化
个人博客迁移至独立博客:https://blog.plcent.com/,欢迎大家访问 概念 PHP静态化分为:纯静态化 和 伪静态化:纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP ...
- php 开启缓冲,页面纯静态化
服务器默认不开启php缓冲区 两种方法开启 1.php.ini out_put_buffer = on 2.ob_start(); 页面纯静态化 file_put_contents()写文件 ob_s ...
- jekyll 将纯文本转化为静态网站和博客 静态网站生成器
jekyll 将纯文本转化为静态网站和博客 静态网站生成器 这个貌似对windows 支持不是很好~ 但是有支持,官方说不建议使用
- 使用 GitHub, Jekyll 打造自己的免费独立博客
使用 GitHub, Jekyll 打造自己的免费独立博客 GitHub是一个代码托管网站,现在很多开源项目都放在GitHub上. 利用GitHub,可以让全球各地的程序员们一起协作开发.GitHub ...
- Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅
通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个 ...
- Code First开发系列实战之使用EF搭建小型博客平台
返回<8天掌握EF的Code First开发>总目录 本篇目录 理解应用需求 数据库设计 创建实体数据模型 创建实体类 创建关系和导航属性 实现DbContext类 执行数据访问 理解仓储 ...
- 白嫖码云Pages,两分钟的事,就能搭个百度能搜到的个人博客平台
为了攒点钱让女儿做个富二代(笑),我就没掏钱买服务器,白嫖 GitHub Pages 搭了一个博客平台.不过遗憾的是,GitHub Pages 只能被谷歌收录,无法被百度收录,这就白白损失了一大波流量 ...
随机推荐
- flask、tornado、BaseHTTPServer性能简单对比
最近写了一个web应用,分别用flask.tornado.BaseHTTPServer都实现了一次,顺便就对比了一下三者的性能,本结果仅对本次测试负责(这句话很内涵,值得推广). 测试工具用了ab,时 ...
- Linux退出状态码
命令成功结束 一般性未知错误 不适合的shell命令 命令不可执行 没找到命令 无效的退出参数 +x 与Linux信号x相关的严重错误 通过Ctrl+C终止的命令 正常范围之外的退出状态码
- PL/SQL数据类型
在定义变量或常量时,必须要指定一个数据类型,PL/SQL是一种静态类型化的程序设计语言,静态类型化又称为强类型化,也就是说类型会在编译时而不是在运行时被检查,这样在编译时便能发现类型错误,以便增强程序 ...
- etcd 启动错误
Apr 26 16:17:25 ceph-0 etcd: f281dc69fb4dd3d8 became candidate at term 3574Apr 26 16:17:25 ceph-0 et ...
- 64位 windows2008 R2 上安装32位oracle 10g 的方法
首先,我们要解除oracle安装的windows版本检测1.编辑安装包内文件 database\stage\prereq\db\refhost.xml 在 <OPERATING_SYSTEM& ...
- call 和 apply方法解析
ECAMScript 3给Function的原型定义了两个方法,它们是 `Function.prototype.call` 和 `Function. prototype.apply`.在实际开发中,特 ...
- 使用Mongo进行分页
MongoDB’s pipeline aggregation is – like most things in application development these days – confusi ...
- EF的优缺点
优点: 1.简洁的Linq to Sql语句大大提高了开发人员的效率,不要再写复杂的sql语句: 2.不再需要再管应用程序如何去连接数据库: 3.EF可以用作用于数据服务和OData Service的 ...
- acm:屁屁上的巴掌
涉及算法:深度搜索 题目: 题目描述 小新是个调皮的孩子,他总是会把衣服搞脏,他的妈妈美伢非常的生气,于是在<和妈妈的约定条款>加上了第三百七十七条:小新衣服上每有一块污渍妈妈就会打小新的 ...
- 环境准备—之—linux下安装python3和pip3
转自 上海悠悠 https://www.cnblogs.com/yoyoketang/p/10195102.html 前言 centos7 自带有 python,但是却是 python2 版本的 py ...