Github + Hexo 免费搭建静态博客站点#01

临夜写稿,将一直规划很久迟迟没有动笔的这一系列落实,也为今日清晨就要举办的前端社区活动做干货分享准备。我的这个学习模型,每当有一个技术主题出现,常常伴随着以下几个

  • 线上社区宣传主题
  • 博客写作
  • 加班加点的制作相关 ppt
  • 微信订阅号的文章推送配合并群发宣传

每一次的技术分享都走遍了所有流程,回首看来,着实挺累,但也还算值得。

这一系列便来讲讲 Github Pages+ Hexo 搭建专属静态博客站点。

我的博客模板

1 博客与静态博客?

正如我之前的这篇文章 《如何写一篇优质的博客》 画图所示,网络博客在短短的几十年间得到了巨大的普及,传递着每一个故事。博客有一个最忠实的群体,那就是发明他们的人:程序员,或者叫做极客、黑客和软件工程师更能生动的形容他们对新技术的激情。

写博客的好处是我们用博客表达自己、升华自己。在我们学会写博客的同时还能提升我们的演讲、辩论能力。写博客的前期准备便需要我们能够对自己、对博客主题进行明确的定位以及对博客叙述的把控,达到最好的效果。

Weblog = Web + Log;

那静态博客是什么?通俗来讲,静态博客站点便是没有数据库没有后台交互的纯前台博客站点,哪怕是评论系统也是由第三方提供数据支持。静态博客站点常常作为 HTML 页面出现,可用博客制作器制作,Hexo 便是其中之一。相比有数据库有后台交互的动态博客站点来说,静态博客站点有如下好处:

  • 省钱。静态网站占用的系统资源少。如果挂到github pages上,只要注册一个域名就可以了。
  • 速度快。不经过php解析器,不用数据库,速度自然比动态网站快
  • 安全。由于静态网站的简洁,免疫很多web攻击方式。
  • 服务器端配置简单。只需要一个web server(apache、nginx)。
  • 非常容易维护。

Git、Github 和 Github Pages?

Git 是一个版本控制系统,可以用来随着时间变化跟踪一个项目中文件的改变。Git 代表性的功能就是记录文件有什么改变、谁做出的改、改变者对这次改变做出了怎样的阐述和说明等。Git 主要被各类软件开发项目所使用。

如下图所示,每一个文件代表着一次“保存”,没有了 Git,你就不能随意退回到曾经的某次修改之中。

有了 Git,改变将是多方向的,每一次修改都会得到保存,每一个保存都可以引发新的时间线,版本回退、分支管理、协作开发等功能都有了发展条件。

--everything-is-local

在基于 Git 的众多管理系统中, Github 是最突出的一个。Github 上有成千上万激动人心的卓越项目,我们可以轻松的下载项目源代码或
克隆这个项目到自己的仓库并进行自己的开发。目前最火的开源项目便是 freeCodeCamp,一个 JS 全栈在线学习平台。

Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服 务,站点可以被免费托管在 Github 上,你可以选择使用 Github Pages 默 认提供的域名 github.io 或者自定义域名来发布站点。Github Pages 支持自动利用第三方静态站点生成工具生成站点,也同样支持纯 HTML 文档,将你的静态站点托管在 Github Pages 上是一个不错的选择。

Hexo?

有很多静态站点的主题可供我们选择,根据这些主题所用的开发语言可以分为如下几类,可见我这里选择 Hexo 的原因在于 Hexo 基于 Node.js ,与我的前端技术栈相匹配且有一定的用户量,主题仓库里会得到很多及时的更新。

  • Ruby:Jekyll,Octopress、Middleman
  • Node.js:Hexo、Metalsmith、Wintersmith
  • GO:Hugo
  • Python:Pelican

开始实战

搭建 Node.js 开发环境

官网下载:https://nodejs.org/zh-cn/

Node.js®是一个基于Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。Node.js 之生态系统是目前最大的开源包管理系统。Hexo 博客制作器需要 node 和 npm 的环境。

安装 Git 客户端

官网下载:https://git-scm.com/

一般来说,Linux 和 MaxOS 都会默认集成 Git 的功能,进行版本控制。而在 Windows 下,常常需要下载 Git 客户端 -- Git Bash 来进行命令行操作。

安装过程中一路默认即可。

解决 git bash 中 node、npm 命令不存在的问题

安装完 Node.js 和 Git,发现在 Git Bash 中输入 node -vnpm -v 提示命令不存在的报错信息,是我们在 Windows 下没有链接环境变量的缘故。打开环境变量的设置,在 PATH 变量后加入 Node 安装的目录即可。

安装初始化 Hexo

现在有了 Node 的 js 环境和 Git Bash 提供的命令行环境,开始着手安装 Hexo。

npm install -g hexo

以上命令会用 npm 的 node 包管理器将 hexo 安装到本地,-g 参数表明安装目录为本地的全局 npm 包中,而不是某个项目的 npm 包中。这时我们就可以使用 hexo 命令了。

新建一个文件夹,并在这个文件夹中初始化 Hexo 站点。

mkdir test
cd test
hexo init

初始化过程较为缓慢,hexo 将会把核心站点仓库从远程服务器拉到本地,并默认配置好 landscape 主题,这个主题可以根据自己的爱好来去官网主题仓库挑选。hexo init 命令会在当前文件夹下生成如下目录:

.
├── .deploy #需要部署的文件
├── node_modules #Hexo插件
├── public #生成的静态网页文件
├── scaffolds #模板
├── source #博客正文和其他源文件,404、favicon、CNAME 都应该放在这里
| ├── _drafts #草稿
| └── _posts #文章
├── themes #主题
├── _config.yml #全局配置文件
└── package.json

有了 Hexo 的本地博客站点,在可以进行快速的博客发布前,我们还得配置当前目录下的 _config.yml 文件,具体配置及简介如下。

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site # 站点信息
title: 韩亦乐の博客集 # 标题
subtitle: 做最好的自己,影响该影响的人 # 副标题
description: 韩亦乐の博客集 # 站点描述,给搜索引擎看的
author: 韩亦乐 # 作者
email: hylerrix@gmail.com # 电子邮箱
language: zh-cn # 语言
timezone:

# URL # 链接格式
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://hylerrix.github.io/Blog # 网址
root: /Blog/ # 根目录
permalink: :year/:month/:day/:title/ # 文章的链接格式
permalink_defaults:

# Directory # 目录
source_dir: source # 源文件目录
public_dir: public # 生成的网页文件目录
tag_dir: tags # 标签目录
archive_dir: archives # 存档目录
category_dir: categories # 分类目录
code_dir: downloads/code
i18n_dir: :lang
skip_render:

# Writing
new_post_name: :title.md # 新文章标题
default_layout: post # 默认的模板,包括 post、page、photo、draft
titlecase: false # 标题转换成大写
external_link: false # 在新选项卡中打开连接
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight: # 语法高亮
  enable: true # 是否启用
  line_number: true # 显示行号
  auto_detect: false
  tab_replace:

# Category & Tag # 分类和标签
default_category: uncategorized # 默认分类
category_map:
tag_map:

# Archives
# 2: 开启分页
# 1: 禁用分页
# 0: 全部禁用
archive: 2
category: 2
tag: 2

# Server # 本地服务器
# port: 4000 # 端口号
# server_ip: localhost # IP 地址
# logger: false
# logger_format: dev

# Date / Time format # 日期时间格式
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination # 分页
## Set per_page to 0 to disable pagination
per_page: 10 # 每页文章数,设置成 0 禁用分页
pagination_dir: page

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: freemind.386 # 主题
plugins: # 插件,例如生成 RSS 和站点地图的
- hexo-generator-feed
- hexo-generator-sitemap

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:hylerrix/Blog.git
  branch: gh-pages

配置好

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
hexo init Blog
cd Blog
npm install hexo-server --save
npm install hexo-deployer-git --save
git clone git@github.com:blackshow/hexo-theme-freemind.386.git themes/freemind.386
rm -rf themes/landscape
vim _config.yml

选择 Hexo 主题

Hexo 拓展

  • 插件之向百度主动提交链接
  • Hexo 第三方评论系统

Hexo插件之百度主动提交链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容