Hexo + Github Pages搭建的个人博客
这个不算是新手的搭建流程,如果你恰巧看见这篇文章,希望你已经安装好node、git等软件,因为第一步的环境搭建准备并没有详写,默认都会了。希望能解决你的问题。
步骤:
一、 搭建环境准备
二、安装hexo
三、配置hexo,将其与github page 联系起来
四、发布文章
五、更换主题及简单配置
一、 搭建环境准备
这里包括node.js的安装、git的安装、git账号注册和新建git项目
注意: 新建项目的时候,项目名称也就是Repository name的格式必须是:yourgithbuName.github.io,这里的yourgithbuName必须和你的github名称保持一致
这个问题下面会说到,因为我没注意,也踩了这个坑了。
二、 安装hexo
cnpm install hexo -g
安装完毕后,不确定是否安装成功,可以通过 hexo -v查询,会出现下面信息:
之后新建一个空的文件夹,暂且叫mjblog吧,在mjblog文件夹下使用gitbash初始化项目 hexo init。
过程中,如果遇到网络不好,可能会出现超时的问题,问是否要尝试删除你新建的文件夹,填n(NO)就好了。
Start blogging with Hexo! 成功,并且文件夹里多了hexo相关文件.
scaffolds # 模板文件
source # 文章的集放点。里面有个一篇默认的hello-world.md
node_modules # 相关模块包
themes # 主题包。站点的最终样子会根据主题来生成页面
_config.yml # 站点配置,例如和github pages相关的配置都在这里填写
执行 hexo s(hexo server),启动本地服务,会出现下面这句提示:
浏览器打开http://localhost:4000/,就会看到hexo的默认主题页面了。
三、 配置hexo,将其与github page 联系起来
在mjblog文件夹的下有个_config.yml的文件。打开找到Deployment这个字段(在文末),添加这句的git pages信息。例如下面是我的对应配置。
deploy:
type: git
repo: git@github.com:mjtomato/mjliublog.github.io.git
branch: master
repo这个地址去项目上复制黏贴就行了。
想知道有没有成功,生成部署一下就行了。但这之前,先了解hexo几个常用命令行:
1. hexo generate (hexo g) #生成静态文件,会在当前目录下生成一个新的叫做public的文件夹
2. hexo server (hexo s) #启动本地web服务,用于博客的预览
3. hexo deploy (hexo d) #部署播客到远(比如github, heroku等平台)
4. hexo new "postName" #新建文章
5. hexo new page "pageName" #新建页面
6. hexo clean #删除已经生成的静态页面(即public文件夹)
ok,现在就可以执行命令了。
第一步:生成静态资源
hexo g
第二步:部署
hexo d
但很多时候,这两个步骤是可以一块的。
hexo d -g
如果不出意外,这样就可以正常生成部署了。
但是我这边却出现问题:deployer not found: git
解决问题:安装一个拓展
cnpm install hexo-deployer-git --save
之后重新生成部署hexo d -g,按道理来说应该是成功了。但我这里发生一个小插曲。我在部署过程中,也在执行着本地服务:hexo server,所以它一直提示下面这个错误。关闭本地服务那个进程就好了。
正常情况下会提示:
Deploy done: git
然后按着git提示的网址访问,发现东西是出来的,但是css样式,js代码引入路径都错误了...
奇了怪了,都是按着教程走,怎么到我这就不行了呢。
刚开始想着是不是我的_config.yml文件配置错了,又重新走了一遍,还是不行。又去翻我的git项目,是不是我哪里写错了,始终没发现问题。
最后对比了好几篇搭建文章,终于发现,我的博客地址格式跟别人的是不一样的,开始以为是改版了没留意到这个问题。别人都是 https://xxx.github.io/, 而我的是这样的:
原来在建项目的时候,要注意一点:
项目名称也就是Repository name的格式必须是:yourgithbuName.github.io,这里的yourgithbuName必须和你的github名称保持一致
最终会出现这句话:
Your site is ready to be published at https://mjtomato.github.io/.
打开上面的网址,出现Welcome to GitHub Pages,说明成功了,主题是和你在GitHub Pages选的是一样的。
接着更新_config.yml里面的配置repo,把之前错误的项目地址改成现在的,再重新生成部署一次,刷新页面,发现变成hexo默认主题了。
成功。https://mjtomato.github.io/
四、 发布文章
其实发布文章和上面部署的步骤基本一致了,这里就从零新建文章到部署到git上走一次。
顺序是:新建文章>本地web查看>删除之前的静态资源 hexo clean>生成新的静态资源 hexo g>部署到git上git d(后面两步可以合并成:生成部署资源 hexo d -g)
1. 新建文章
可以在source>_posts直接右键新建一个markdown格式的文件,也可以通过命令行方式新建。
hexo new "testName"
就会发现_post文件夹里多了一个testName文件。
里面默认有三个属性:
---
title: testName #testName 就是new时候的名字
date: 2018-07-15 14:41:17 #默认带上新建文件夹的时间
tags: #文章的标签,可自己添加分类
---
这里就是写文章内容的地方了。
2. 删除之前的静态资源 hexo clean
一般这一步正常情况下不执行也可以,但是当 hexo d -g 执行完,发现有问题的时候或者是不成功时,就很有必要先清除一下不完整public文件或者是清除一下缓存了,这里是会删除整个public文件的。然后再重新执行一次 hexo d -g ,直至成功。
3. 生成部署 hexo d -g
执行完hexo d -g , 没问题的话,刷新自己的页面,就会看见新添加的文章了。
五、更换主题及简单配置
1. 安装主题
主题选择里有很多不同风格选择,我选的是比较冷淡风的next主题
在目录下打开gitbash,输入下面命令行
git clone git@github.com:theme-next/hexo-theme-next.git themes/next
下载完毕之后会在themes文件夹下看见多了一个next文件,这个就是next主题包了。
2. 启用next主题
打开目录下的_config.yml文件,找到theme字段,将原来的landscape换成next。
再重启下本地服务 hexo s 就可以看到新的主题已经更换了。
ps: 没错,这里你会发现我的名称、描述、作者都改成自己的了,这个是在站点配置文件_config.yml里修改的。(就在文件开头)
# Site
title: MJBlog # 你的博客名字
subtitle: # 副标题
description: 慢慢尝试,总会有的! # 描述
author: jiaminLiu # 作者名称
language: zh-Hans # 站点语言
timezone: # 时区
修改更新、重启本地服务就好啦~~
3. 更改next主题配置
每个主题包下面都有个和站点目录下同名的_config.yml文件,修改主题包下的配置会对应修改主题展示。包括了主题设计、站点语言、站点菜单等等。
下面我按自己的需要对应修改:(以下说的_config.yml文件都是指主题包下面的)
- 主题设计
搜索Schemes,在下面发现有四种选择,每个都看了一下,最后我选的是Gemini,其实Gemini和Pisces好像没差。
# Schemes
#scheme: Muse
#scheme: Mist
#scheme: Pisces
scheme: Gemini
但是呢,这里有个问题,选择这个主题设计之后,你会发现页面上的菜单都变成德语了??
查了下原因,原来是Hexo 在生成主题的时候将使用你选择的主题设计去查找对应的语言翻译,并提取显示文本。这些翻译包在主题包下的language文件夹里。
像我选的Gemini对应的语言翻译是de.yml。于是,我将de.yml中德语都改成中文了(最简单做法,找到zh-CN.yml那份,然后复制过去覆盖原来的,就搞定了,耶!)
站点语言
上一步完成之后,发现整个页面又变成英文了。这个又为啥啊??而且我的站点配置里也已说明是中文了。
原来这个主题默认翻译是英文的,不信可以看看default.yml这个文件,里面就只写着en.yml。所以我们还需要把主题包下面的language字段的值改为zh-Hans设置头像
搜索Sidebar Avatar,找到avatar,下面有个url字段,默认是这样的
url: # /images/avatar.gif
需要将它打开,就是去掉#号。默认是个灰色的头像,可以找个自己喜欢的图片放到source/images/下面
我的改成这样
url: /images/avatar.jpg
暂时我需要修改的就这么多了,更多配置,可以查看官方文档
以上就是Hexo + Github Pages搭建的个人博客简单版。暂时使用是没问题的啦。其他的功能,例如站点统计,阅读次数统计等之后再添加。
添加百度统计
- 注册一个 百度统计 账号
- 新增自己的网站
例如我的:
网站域名: mjtomato.github.io
网站首页:https://mjtomato.github.io/
填完这两个点确定就可以了 - 获取百度统计id
在代码管理 > 代码获取页面有段统计代码
复制我用红色覆盖那个统计id - 修改baidu_analytics字段
在主题包下的配置文件里找到baidu_analytics字段,将复制的统计id设置成它的值。
搞定~~~
阅读数统计
next主题作为github上星数最多的hexo主题,当然已经有人造好轮子了。而且next主题已经合并这个功能了,所以我们只需要配置_config.yml就可以了,请参考配置LeanCloud
照着上面步骤完成之后,刷新自己的页面,发现文章内的阅读数出错了
点击控制台的链接进去,按着提示完成即可传送门
Hexo + Github Pages搭建的个人博客的更多相关文章
- 使用Hexo + Github Pages搭建个人独立博客
使用Hexo + Github Pages搭建个人独立博客 https://linghucong.js.org/2016/04/15/2016-04-15-hexo-github-pages-blog ...
- Mac - Hexo+GitHub轻松搭建自己的博客
Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页.官方文档传送门.Hexo的安装是个很快速简便的过程,但 ...
- Hexo + Github Pages 搭建个人博客
之前一直想搭建自己的博客,由于自己的懒惰拖到现在.好了,废话不多说!直接上干货! 安装Node.js 安装Git Github Pages配置 安装Hexo及主题设置 进阶篇-高级定制 其它实用功能 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(二)
在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...
- 如何使用 GitHub Pages 维护自己的博客
目录 前置知识 实际操作 声明 本文地址:如何使用 GitHub Pages 维护自己的博客 前置知识 首先,你应该知道如何用 Hexo 在本地搭建一个博客系统,具体见 Hexo. 其次,我们如果想使 ...
- 可能是最详细的 Hexo + GitHub Pages 搭建博客的教程
前言:博主目前大三,Web 前端爱好者.写博客的好处,不是为了写而写,而是一个记录思想的过程.不要考虑它能带给你什么,而是你自己从中收获了什么. 最近刚好有空,于是就参照网上的各种教程,搭建了一个博客 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(一)
前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之. 很快到了 16 年,开始接触网上各大博客网站,接触最多的当属 CSDN,萌生了注册一个博客 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(三)
一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...
- 使用Hexo + GitHub Pages 搭建个人博客
一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...
随机推荐
- 30岁程序员的焦虑 Anxiety of 30-year-old Programmers
还有四个月,我就30周岁了.圈里都在传30岁程序员的焦虑,我也焦虑.身边的朋友,除了已经上岸的一部分,说不焦虑的,几乎找不到. 我们不妨认真地来聊一下这个话题:30岁,程序员,焦虑. 首先,什么是焦虑 ...
- 监控数组与foreach绑定-Knockout.js
html: <h2>Your seat reservations</h2> <table> <thead> <tr> ...
- 牛客网练习赛34-D-little w and Exchange(思维题)
链接:https://ac.nowcoder.com/acm/contest/297/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- ubuntu上安装ansible
1 在最新的ubuntu系统上安装ansible : sudo ape-get install ansible 2 切换到root用户 生成ssh免密登陆 ssh-keygen -t rsa ssh- ...
- criteria用法
Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象.简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如: Java代码 Criteria cri ...
- Netty(7-2)传List
ObjectEchoServer protected void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ...
- OpenCV图像处理之 Mat 介绍
我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看core这部分也算是走马观花吧,随着使用的增多,对Mat这个结构越来越喜爱,也觉得有必要温故而知新,于是这次再看看Mat. Ma ...
- jQuery知识点小结
博主之前学习一段时间后做了点Demo,借此机会发出来分享,其实学jQuery只要简单看看文档即可,但有些细枝末节的东西文档会默认使用者是了解的,所以还是得系统学习系统训练:Talk is cheap, ...
- 遍历List集合的方式
遍历List集合的方式有很多,现在举出最常见的三种 List<String> list = new ArrayList<String>(); list.add("a& ...
- 如何移除网站Response Headers中的X-Powered-By信息?
X-Powered-By是网站响应头信息其中的一个,出于安全的考虑,一般会修改或删除掉这个信息. 如果你用的node.js express框架,那么X-Powered-By就会显示Express.如果 ...