使用Hexo在Github上搭建自己的博客

以前的博客是使用Jekyll托管在github上,后来用着越来越不方便,比如没有自动生成post,不能一键部署,文件结构和配置也是比较繁琐,更重要的是有时候用markdown写一篇文章,生成的静态文件很乱,应该是有些字符解析的问题。现在下决心换成了hexo

Nodejs安装

因为hexo是基于nodejs的应用,所以要先安装nodejs才可以。我这里以ubuntu为例,因为我自己一直在使用ubuntu。使用如下命令即可:

sudo apt-get install nodejs
sudo apt-get install npm

Hexo安装

Hexo 是一个功能强大的静态网站生成系统,快速、简洁、高效。Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。可以一键部署到github,还有丰富的插件和主题,还支持热部署哦。执行如下命令进行安装。

sudo npm install hexo-cli -g

快速开始

安装Hexo安成后,使用如下命令快速新建一个博客系统,然后运行它

hexo init blog
cd blog
npm install
hexo server

如果npm安装失败,请使用sudo安装。运行成功后,访问http://0.0.0.0:4000/就可以看到博客的样子的,对就是我现在的博客这个样子,o(∩∩)o...哈哈。

现在我们来看看Hexo 生成博客的目录结构

.
├── _config.yml
├── db.json
├── node_modules
├── package.json
├── public
├── scaffolds
├── source
└── themes

其中_config.yml是配置站点的文件,public是hexo生成的静态站点文件夹,scaffolds是模板文件夹,source是存在用户资源的文件夹,themes是主题文件夹。

站点配置

找到title,subtitle,author参数配置,分别配置站点的标题、副标题和作者,比如我这里是:

title: 飞雪无情的博客
subtitle: 专注于Android、Java、移动互联网、项目管理、软件架构
description:
author: 飞雪无情
language: zh-CN

然后配置站点的url和permalink,这两个分别是你的站点的url host地址以及文章的永久连接,我这里是:

url: http://www.flysnow.org
root: /
permalink: :year/:month/:day/:title.html
permalink_defaults:

permalink 我配置的是年月日以及title,后缀是html,便于搜索收录。permalink详情参见: http://hexo.io/zh-cn/docs/permalinks.html

新增一篇文章

使用如下命令即可新增一篇md格式的文章

hexo new 'github-page-with-hexo'

然后就会在sources/_posts生成一篇文件名为github-page-with-hexo.md的markdown文件。编辑该文件就可以写博客了。这里有一些Front-matter需要介绍,可以配置文章使用的模板、所属的分类和tag等。

Front-matter 是文件最上方以 — 分隔的区域,用于指定个别文件的变量,举例来说:

title: "使用Hexo在Github上搭建自己的博客"
date: 2015-03-10 22:30:04
tags:
- Hexo
- Github
categories:
- Hexo
---

请注意,目前的categories只能有一个一级分类,如果填写多个,第二个会被解析为二级分类,以及类推。tags可以允许有多个。更多关于Front-matter请参考 http://hexo.io/zh-cn/docs/front-matter.html

发布到github page

首先你已经创建好了你的github page对应的git库,没有创建的可以google相关博客。然后新建一个hexo分支,存放你现在hexo的所有文件。然后执行如下命令清理并生成发布的静态站点文件。

hexo clean
hexo generate

然后把生成的public目录下的文件放到你的master分支下即可。git commit后把这两个分支推送到你的github上。git库结构可以参见我的github page库 https://github.com/rujews/rujews.github.io

最后

然后等个几分钟,访问你的域名就可以看到你的网站了。如http://www.flysnow.org/ 。关于更多的Hexo请参考官方文档,以后有时间也会介绍 http://hexo.io/zh-cn/docs/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

这8种命令都不会,还算什么Linux运维!

01 查看系统内核版本 显示了系统名称(CentOS)和内核版本(release 6.5) The file /etc/issue is a text file...

3617
来自专栏cloudskyme

maven parent

5.2.parent artifactId 父项目的artifact标识符 groupId 父项目的group标识符 v...

30610
来自专栏Ryan Miao

Hexo next博客添加折叠块功能添加折叠代码块

前言 有大段的东西想要放上去,但又不想占据大量的位置。折叠是最好的选择。下面在Hexo的主题上定制添加折叠功能。 本文基于Hexo Next的主题修改。其他主题...

5598
来自专栏杨建荣的学习笔记

MySQL中的半同步复制(r11笔记第65天)

关于MySQL的复制架构,大体有下面三种方式,异步,全同步复制,半同步复制。 三种复制方式 第一种是异步复制,是比较经典的主从复制,搭建主从默认的架构方...

3986
来自专栏程序员的SOD蜜

解决服务器SID引起虚拟机不能加入AD域用户,无法远程登录的问题

最近在公司搭建AD域控制器,发现无法在计算机真正添加域用户,也就是添加的用户虽然可以在本地登录,但是无法远程登录,尝试多种方法都无法解决,而最终原因居然是虚拟机...

6875
来自专栏dotnet & java

这可能是最low的发布dotnet core站点到centos7教程

不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash。。我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的。

923
来自专栏编程

移动Web性能测试笔记之二

收集整理 @2017/12/21 Chrome浏览器Network面板http请求时间分析 Chrome浏览器开发者工具Network窗口下,可以查看下载各组件...

1799
来自专栏王磊的博客

ReactNative环境搭建扩展篇——安装后报错解决方案

之前一篇写了《逻辑性最强的React Native环境搭建与调试》说了RN的安装,今天在这里做一个复盘,让我们能够更直观更深入的了解React Native(以...

3608
来自专栏北京马哥教育

ansible基础应用

一、运维主要工作 ? ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansib...

3907
来自专栏王磊的博客

使用Hexo搭建个人博客的终极资料

Hexo 是一个基于 NodeJs 博客框架,可以快速的帮我们搭建一个博客系统,Hexo使用的是Markdown(下文简称MD)解析文章的,在几秒内即可利用靓丽...

2872

扫码关注云+社区

领取腾讯云代金券