搭建 github.io 博客站点
前言
很多人都有搭建博客或知识库站点的想法,可自己买云服务器太不划算,部署管理也是个问题;基于免费又热门的 GitHub Pages 来搭建博客站点倒是省钱省力省事的好办法,于是上网一搜,满屏都是关于使用 Jekyll 来搭建站点的文章,这个 Jekyll 是基于 Ruby 开发的,上手得先装一大坨东西、各种啰嗦各种坑,看的一点欲望都没有了。
神器出现
平地一声雷,炸出了 Hexo (https://hexo.io/zh-cn) 这个神器。它只需要 NodeJS 即可,完全不依赖其他乱七八糟的玩意,安装部署超级简单,功能完善、漂亮主题也很多,妥妥的就是它了。
- __Hexo __官网:https://hexo.io/zh-cn/
安装简单,并且官网上提供了很多主题可供选择。
- 我喜欢的一款主题 (Archer)
http://firework.studio/archer-demo/
https://github.com/fi3ework/hexo-theme-archer
建站步骤
有关一般建站步骤,请参考本文后面的“参考文章”部分,在进行后续操作之前,请按照 Hexo 官网的安装指引,确保 NodeJS 和 Hexo 已经成功安装。
友情提示:在此之前请务必详读 Hexo 官网中的文档。
我们的站点源码:https://github.com/Zongsoft/zongsoft.github.io,没必要把 Hexo 运行环境和使用的主题文件都保存在站点仓库中,所以需要将这些不需要的目录和文件加入到 .gitignore 文件中;站点的 Hexo 基本配置(hexo.config.yml)和相应主题配置文件(hexo.config-theme.archer)需要保留,以便下次或别人构建时将其覆盖还原为默认配置。
站点构建
在首次 clone 获取我们站点源码后,按顺序执行下列命令,__注意:__推荐在 Git Bash 中进行操作。
- 初始化 Hexo 站点目录:
hexo init site && cd site
- 安装相关插件:
npm i hexo-generator-json-content --save && npm i hexo-wordcount --save
- 获取 Archer 主题:
git clone https://github.com/fi3ework/hexo-theme-archer.git themes/archer
- 覆盖 Hexo 默认配置文件:
cp ../hexo.config.yml _config.yml
- 覆盖 Archer 主题默认配置文件:
cp ../hexo.config-theme.archer.yml themes/archer/_config.yml
- 加入定制的页面布局:
cp ../post-footer.ejs themes/archer/layout/_partial/post-footer.ejs
- 安装 Hexo 站点:
npm install
文章写作
上面的构建过程稍微需要花点时间,但只要构建一次之后就不用管它了。
- 通过
hexo new [layout] <title>
命令来创建一个文章,也可以手动把写好的文章拷贝到源目录(/docs/_posts/)中。 - 执行
hexo generate
命令生成静态页面(/blog),生成之后,可以使用hexo server
命令来查看实际效果。 - 最后,执行相关 Git 命令将这些改动提交到远程仓库中。
__注意:__创建了一篇新文章后,务必要设置好文章的元信息(即标题、创建时间、所属分类、Tags等),具体定义请参考 Hexo 官网的这篇文章:https://hexo.io/zh-cn/docs/front-matter.html
__提示:__如果生成有问题,可以执行 hexo clean
命令来清空输出目录,之后再把项目所需的资源文件手动拷贝到输出目录的相应子目录中。
其他备注
- 修改 post.ejs (site/themes/archer/layout/) 模板,增加对 post-footer.ejs 局部模板的引用:
<main class="main post-page">
<article class="article-entry">
<%- page.content %>
</article>
<%- partial('_partial/post-footer') %>
- 修改 post.ejs 模板中的分页指示的标签:
<div class="nextSlogan">Next Post</div>
> <a class="nextSlogan" href="<%- url_for(page.prev.path) %>">Next Post</a>> <div class="prevSlogan">Previous Post</div>> <a class="prevSlogan" href="<%- url_for(page.next.path) %>">Previous Post</a>
- 调整了 Archer 主题的 _post_page.scss (site/themes/archer/src/scss/_partial/) 中的部分样式:
// ========== paginator ========== //
.post-paginator {
li {
max-width:18rem;
}
.nextTitle,
.prevTitle{
font-size:1.2rem; //remove this line
}
}
// ========== content ========== //
.abstract-content,
.article-entry {
> p {
text-indent:2em;
}
}
参考文章
《使用 Hexo & GitPage 搭建博客》
https://yuque.com/skyrin/coding/tm8yf5《从多说到跟帖:推荐网易云跟帖》
https://blog.vadxq.com/dstogentie/《集成gitment或者gitalk评论系统》
http://www.huyanbing.me/2017/10/20/46383.html
提示:
本文可能会更新,请阅读原文: https://zongsoft.github.io/blog/zh-cn/misc/github-site,以避免因内容陈旧而导致的谬误,同时亦有更好的阅读体验。
搭建 github.io 博客站点的更多相关文章
- 使用hexo搭建github.io博客(一)
使用github.io可以搭建一个自己的博客,把静态文件项目托管到github上,可以写博客,可以使用markdown语法,也可以展示作品.灵活性高.但是有较大的难度. node,git版本变化日新月 ...
- 使用Hexo搭建Github静态博客
1. 环境环境 1.1 安装Git 默认配置就好 1.2 安装node.js 下载:http://nodejs.org/download/ 安装时直接保持默认配置即可. 2. 配置Github 1.1 ...
- 一站式搭建 GitHub Pages 博客 (一)
本文将详细讲解如何快速搭建 GitHub Pages 博客页面 关于博客主题,博客信息更改,上传文章等将会在 一站式搭建 GitHub Pages 博客 (二) 中进行详细讲解 准备阶段 注册 Git ...
- 搭建了个人的github.io博客
地址:http://www.shutu.tech 说明: 基于github + hexo简易搭建的个人博客,用于收藏经典博文及技术文章,也会用于个人的技术成长记录.我是看到这篇文章搭建的:http:/ ...
- Hexo搭建Github静态博客
1. 环境环境 1.1 安装Git 请参考[1] 1.2 安装node.js 下载:http://nodejs.org/download/ 可以下载 node-v0.10.33-x64.msi 安装时 ...
- 如何搭建github+hexo博客-转
1.前言 其实早在这之前我就一直想过写博客,但由于种种原因一直没有去学习这方面的知识,最近半个月(从开始动手到搭建好)一直陆陆续续的在着手这方面的工作.从开始到搭建完成的过程中遇到了很多困难,因为在这 ...
- 搭建自己的 github.io 博客
1.前言 github.io 是基于 Github 的 repo 管理,这意味着咱们对其是有绝对的控制,这个跟放在第三方的平台比,可控性要好太多. 使用 github pages 服务搭建博客的好处有 ...
- 使用Hugo搭建GitHub个人博客
主题概况 Hugo 是一个用 Go 语言编写的静态网站生成器.类似的静态网站生成器还有Jekyll.hexo等等.以上生成器都使用过,但感觉要么环境麻烦,要么生成静态页面步骤繁琐以及生成缓慢.如果你正 ...
- Jekyll搭建github个人博客
一.安装ruby环境 Windows下载地址: http://rubyinstaller.org/ Ruby官网: http://www.ruby-lang.org/zh_cn/ 下载安装即可 环境配 ...
随机推荐
- Centos 7 系统安装(简单步骤)
前面步骤忽略.进入安装步骤. 运行安装 到选择语言的时候最好选英文版,这里做模板,用的中文版 接着下一步到安装选项 在日期和时间里,选择上海时区 紧接着进行软件安装选择,如图安装就好 接着进行分区,也 ...
- Makefile一 头文件及库搜索路径
头文件及库搜索路径 头文件的搜索路径: 头文件的搜索规则是:找到就使用,停止继续往下寻找 1: #include “mytest.h” 搜索的顺序为: (1)先搜索当前目录 (2)然后搜索编译时 -I ...
- webservice使用windows身份验证,ajax请求报错401未授权的解决办法
$.ajax({ type: "GET", url: service_url, dataType: "xml", data: "ParamId=&qu ...
- 创建线程后马上CloseHandle(threadhandle)起什么作用
原文:http://www.cnblogs.com/eddyshn/archive/2010/04/14/1711674.html HANDLE threadhandle = CreateThread ...
- less @import and extend及mixin详解
在less中,通过 @import (keyword) "filename"的方式引入其他的文件,这个keyword可以是以下6种: referrence referrence这个 ...
- 微软Azure虚拟机备份服务在中国发布
近期,Azure虚拟机备份服务在微软智能云上发布. 相关功能阐述: Azure IaaS虚拟机备份服务针对Windows操作系统,提供了应用一致性的备份技术:同时针对Linux操作系统,提供了文件系统 ...
- SQL点点滴滴_删除临时表
select into 创建的表属于临时表,判断是否存在的方法 select c_adno,c_con_no into #temp from tb_contract IF OBJECT_ID( 'te ...
- PPTP vs. OpenVPN vs. L2TP/IPsec vs. SSTP
Which is the Best VPN Protocol? PPTP vs. OpenVPN vs. L2TP/IPsec vs. SSTP Want to use a VPN? If you’r ...
- /usr/lib64/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team
升级python2.6到2.7后,执行ansible后一直显示警告,如标题所示. 因为安装ansible,使用的是yum的方式,而yum使用的是python2.6,所以ansible安装环境为pyth ...
- ue-edit设置显示函数列表
UltraEdit的函数列表竟然不显示函数,那这功能要它何用,应该如何才能让函数显示出来呢? 公司编程基本上都在UltraEdit中进行,俺刚来公司还不熟悉,今天装了个UltraEdit,可是看着别人 ...