GitHub Pages是GitHub提供的静态网页托管工具,可以用来建立个人网页,也可以建立网页介绍某个项目。
最后Travis CI是针对GitHub的一款持续集成工具,这里用来完成网站的自动化部署。
GitHub Pages设置
GitHub Pages主页中有建站的简单教程,为了支持MarkDown撰写博客,选择使用博客框架Hexo,并选择一个比较流行的框架NexT。
在此基础上可以添加许多功能:
置顶
- 移除默认安装的插件
npm uninstall hexo-generator-index --save
- 安装新插件
npm install hexo-generator-index-pin-top --save
- 在需要置顶的文章头部
top: true
或top:整数
,其中整数越大的文章越靠前 - 为置顶的文章添加置顶标签,在
/themes/next/layout/_macro/post.swig
文件的<div class="post-meta">
下方,插入如下代码:1
2
3
4
5{% if post.top %}
<i class="fa fa-thumb-tack"></i>
<font color=7D26CD>置顶</font>
<span class="post-meta-divider">|</span>
{% endif %}
- 移除默认安装的插件
数学公式
- 编辑
theme/next/_config.yml
1
2
3
4
5# MathJax Support
mathjax:
enable: true
per_page: false
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML - 为了更好的性能,不选择在所有页面下支持数学公式。在需要支持matchjax的文章头部,添加
mathjax: true
- 编辑
评论功能
- 评论功能和阅读统计都可以使用LeanCloud
- 编辑
theme/next/_config.yml
1
2
3
4
5
6
7
8
9
10valine:
enable: true
appid: xxxxxxxx
appkey: yyyyyyyyyyy
notify: false # mail notifier , https://github.com/xCss/Valine/wiki
verify: false # Verification code
placeholder: 评论 # comment box placeholder
avatar: mm # gravatar style
guest_info: nick,mail,link # custom comment header
pageSize: 10 # pagination size
阅读统计
为NexT主题添加文章阅读量统计功能字数统计
- 编辑
theme/next/_config.yml
1
2
3
4
5
6post_wordcount:
item_text: true
wordcount: true
min2read: true
totalcount: true
separated_meta: true - 执行
npm install hexo-wordcount@2 --save
,安装需要的库
- 编辑
添加网易云播放器
- 去网易云音乐找一首喜欢的歌。
- 点击“生成外链播放器”,复制HTML代码。
- 将HTML代码添加到
/themes/hexo-theme-next/layout/_macro/sidebar.swig
中<aside id="sidebar" class="sidebar”>
后面,并用<div>
包裹。
将标签云改为彩色
- 在
themes/next/layout/
中新建tag-color.swig
文件,代码为:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35<script type="text/javascript">
var alltags = document.getElementsByClassName('tag-cloud-tags');
var tags = alltags[0].getElementsByTagName('a');
for (var i = tags.length - 1; i >= 0; i--) {
var r=Math.floor(Math.random()*75+130);
var g=Math.floor(Math.random()*75+100);
var b=Math.floor(Math.random()*75+80);
tags[i].style.background = "rgb("+r+","+g+","+b+")";
}
</script>
<style>
.tag-cloud-tags{
/*font-family: Helvetica, Tahoma, Arial;*/
/*font-weight: 100;*/
text-align: center;
counter-reset: tags;
}
.tag-cloud-tags a{
border-radius: 6px;
padding-right: 5px;
padding-left: 5px;
margin: 8px 5px 0px 0px;
}
.tag-cloud-tags a:before{
content: "?";
}
.tag-cloud-tags a:hover{
box-shadow: 0px 5px 15px 0px rgba(0,0,0,.4);
transform: scale(1.1);
/*box-shadow: 10px 10px 15px 2px rgba(0,0,0,.12), 0 0 6px 0 rgba(104, 104, 105, 0.1);*/
transition-duration: 0.15s;
}
</style> - 在
/themes/next/layout/page.swig
中引入tag-color.swig
,即在<div class="tag-cloud">
代码段下方添加{ % include 'tag-color.swig' % }
- 也可以将标签云直接加入主页,在
/themes/next/layout/index.swig
中的block content代码块中加入以下代码:1
2
3
4
5
6
7
8<div class="tag-cloud">
<div class="tag-cloud-tags" id="tags">
{{ tagcloud({min_font: 16, max_font: 16, amount: 300, color: true, start_color: '#fff', end_color: '#fff'}) }}
</div>
</div>
<br>
{% include 'tag-color.swig' %}
- 在
展示近期文章
修改
themes/next/layout/_macro/sidebar.swig
。找到theme.social
,在该板块后隔一行添加如下代码。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18{# recent posts #}
{% if theme.recent_posts %}
<div class="links-of-blogroll motion-element {{ "links-of-blogroll-" + theme.recent_posts_layout }}">
<div class="links-of-blogroll-title">
<!-- modify icon to fire by szw -->
<i class="fa fa-history fa-{{ theme.recent_posts_icon | lower }}" aria-hidden="true"></i>
{{ theme.recent_posts_title }}
</div>
<ul class="links-of-blogroll-list">
{% set posts = site.posts.sort('-date') %}
{% for post in posts.slice('0', '5') %}
<li class="recent_posts_li">
<a href="{{ url_for(post.path) }}" title="{{ post.title }}" target="_blank">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}编辑
themes/next/source/css/_common/components/sidebar/sidebar-blogroll.styl
1
2
3
4
5
6
7
8li.recent_posts_li {
text-align: cengter;
display: block;
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}在
themes/next/_config.yml
中添加下方代码1
2
3
4# 近期文章设置
recent_posts_title: 近期文章
recent_posts_layout: block
recent_posts: true
Travis CI自动部署GitHub Pages
Travis官方教程
有了Travis CI,更换电脑时,不需要在本地配置完整的环境,可以直接修改md文件,push到github后,Travis CI会自动生成和部署,非常的方便。
1 | sudo: false |