2017年最新基于hexo搭建个人免费博客——自定义页面样式二
前言
本篇文章继续讲解一些hexo下next主题博客样式的修改。主要内容为修改首页文章摘要样式,文章详情样式,以及文章阅读次数的统计深入讲解,酷炫的博客背景,在首页菜单里添加的独立的标签页,文章结尾的模版样式修改。暂时想到了这么多,欢迎大家提出新的东西,等后面有空了再讲新东西。
首页文章摘要样式修改
准备
假设看这篇文章的人是没有前端样式调试基础的,建议去看我上一篇文章——,看完后再继续看这篇。
传送门:2017年最新基于hexo搭建个人免费博客——自定义页面样式一 http://www.cduyzh.com/hexo-settings-3/
查看对应样式
查看对应样式通过浏览器的开发者工具可以查看到首页文章摘要对应的CSS
可以看到header标签内为文章的头部的样式,大家可以进行一些修改,但是基本没什么需要改动的,大家可以自己DIY,
给文章首页摘要添加阴影效果
查看对应样式大家看下箭头,修改对应的CSS样式,进行重写覆盖,修改的文件路径如下(以我自己的为例):
D:\hexo\blog\themes\next\source\css\_custom\custom.styl
修改代码如下
// Custom styles.
//首页文章阴影样式
.post {
margin-top: 60px;
margin-bottom: 60px;
padding: 25px;
-webkit-box-shadow: 0 0 14px rgba(202, 203, 203, .5);
-moz-box-shadow: 0 0 14px rgba(202, 203, 204, .5);
}
阅读文章按钮样式修改
阅读文章按钮样式修改主要为三个CSS样式的修改
.post-button .btn
.post-button .btn a
.btn:hover, .post-button .btn:hover
阅读文章按钮样式修改
最后一个为伪类,有时候查找元素的时候不能第一时间看到,多抓取几次。
也可以自己在本地编辑器测试修改.btn:hover, .post-button .btn:hover样式下的属性,测试显示效果就行。
默认主题下把鼠标移入按钮时的样式中,按钮下方有个阴影,是主题自带的,如果不想要可以添加对应的CSS样式
border:none
来取消这效果,然后调整一下圆角值,居中设置,还有颜色的变化,大家自己参考下我之前发的样式表,或自己测试。
文章详情样式修改
文章详情头部样式
这个样式的修改和前面首页那个的样式基本一致,所以此处跳过,但是说一点
文章详情头部样式
图中框内的图标元素更改CSS样式是无法更改的,我更改了字数统计和阅读市场的ICON,具体做法大家可以看我以前写过的一篇文章,要在源码中更改CSS的值。
2017年最新基于hexo搭建个人免费博客——基本设置和了解http://www.cduyzh.com/hexo-settings-2/
文章相应底部样式修改
文章相应底部样式修改最大的红框部分的内容都不是我编辑的文章里的,都是我更改了源代码加入的DIV样式标签形成的效果,当然还可以在每一篇文章最后加入对应的代码也可以,但是为了麻烦每次来粘贴所以我就没去这样做
思路
修改文章模板文件
哪个是文章主要内容的模板文件,对应的路径themes\next\layout\_macro\post.swig
文章底部的代码位置如下:
{{ content.substring(0, theme.auto_excerpt.length) }}
{% if content.length > theme.auto_excerpt.length %}...{% endif %}
<div class="post-more-link text-center">
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#more{% endif %}" rel="contents">
{{ __('post.read_more') }} »
</a>
</div>
{% else %}
{% if post.type === 'picture' %}
<a href="{{ url_for(post.path) }}">{{ post.content }}</a>
{% else %}
{{ post.content }}
{% endif %}
{% endif %}
{% else %}
{{ post.content }}
### 编辑区域
{% endif %}
那个打赏功能是主题自带的一个参数配置,大家可以去next主题官方文档上看。
文章底部的横线样式修改
文章底部的横线样式修改小红框里面的一条线,有些人觉得想换样式,换颜色或直接去掉。
直接在.post-nav下加入一个样式
.post-nav {
border: none;
}
文章阅读次数的统计深入讲解
对比分析方法
文章详情头部样式再次用下这张图,我这里面的阅读次数是通过leanCloud,来实现文章阅读量统计的,next主题还自带了一个不蒜子的统计参数配置,相信大家用过了,在主题的配置文件里有如下代码:
# Show PV/UV of the website/page with busuanzi.
# Get more information on http://ibruce.info/2015/04/04/busuanzi/
busuanzi_count:
# count values only if the other configs are false
enable: true
# custom uv span for the whole site
site_uv: true
site_uv_header: <i class="fa fa-user"></i> 访问用户:
site_uv_footer: 人
# custom pv span for the whole site
site_pv: true
site_pv_header: <i class="fa fa-eye"></i> 访问次数:
site_pv_footer: 次
# custom pv span for one page only
page_pv: false
page_pv_header: <i class="fa fa-file-o"></i> 点击量
page_pv_footer: 次
我设置page_pv为false因为我打算用leanCloud来实现,因为用不蒜子这个来统计是没问题,但是它说了 # custom pv span for one page only意思是只显示在文章相应这里,你在首页是看不到阅读次数统计的,对用户体验来说十分不好,所以打算用leanCloud,如果觉得首页不展示阅读次数什么的无所谓的,就可以用next主题的不蒜子插件,具体的查看官方文档上面有写方法。
这里讲下官方文档上没有详细说明的leanCloud,来实现文章阅读量统计的方法
leanCloud来实现阅读统计
我现在版本的next主题是集成了这个插件的,并且给出了对应的参数配置
# Show number of visitors to each article.
# You can visit https://leancloud.cn get AppID and AppKey.
leancloud_visitors:
enable: true
app_id: TxBSdzFliqxOpec29xEd8pO5-gzGzoHsz
app_key: 5rH911Nhs9V7AWFjEYqe8Bz7
过程是:
1.注册leancloud账户并完成验证后登录leanCloud的,创建应用并配置相关操作
2.获取对应的AppID和AppKey
3.配置相应参数完成阅读文章的数量的统计
注册账户
过程省略...没啥好说的
创建一个应用
leanCloud来实现阅读统计进入应用创建Class
leanCloud来实现阅读统计我之前已经创建好了一个Class名为Counter,创建成功就会出来了。
获取AppID和AppKey
leanCloud来实现阅读统计设置主题配置文件
设置主题配置文件_config.yml相关字段,实现阅读数量的统计
添加以下字段
leancloud_visitors:
enable: true
app_id: #你的App ID
app_key: #你的的App Key
完成配置并重新编译。
通过在本地服务器测试是看不到阅读次数的统计的,所以要发布到网上查看才行。
酷炫的博客背景
添加背景特效
背景的几何线条是采用的nest效果,一个基于html5
canvas绘制的网页背景效果,非常赞!来自github的开源项目canvas-nest 特性
不依赖任何框架或者内库,比如不依赖jQuery,使用原生的javascript。
非常小,只有1.66kb,如果开启gzip,可以更小。
非常容易实现,配置简单,即使你不是web开发者,也能简单搞定。
使用非常简单
color: 线条颜色, 默认: ‘0,0,0’ ;三个数字分别为(R,G,B),注意用,分割
opacity: 线条透明度(0~1), 默认: 0.5
count: 线条的总数量, 默认: 150
zIndex: 背景的z-index属性,css属性用于控制所在层的位置, 默认: -1
添加修改代码
next/layout/_layout.swig
,在body标签之前添加如下代码:
{% if theme.canvas_nest %}
<script type="text/javascript" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>
{% endif %}
打开next/_config.yml
,添加以下代码:
# Canvas-nest
canvas_nest: true
如果是最新的next主题是集成了这段代码的,如果没手动添加,有就设置为true
完成
重新编译配置后,在本地测试就能看到效果了。
在首页菜单里添加的独立的标签页
标题的意思大概是文章列表实现
效果如图:
实现过程思想
1、修改HEXO POST模板,添加categories。以后的文章将会以此作为模板新增。
2、新增一文章,并修改分类属性。分类属性如果被设置,在HEXO编译会生成对应分类目录
3、修改主题配置文件(config.yml),添加MENU分类字段 ,导航栏显示分类链接
4、假定为中文网站,修改主题目录下的语言配置文件(zh-Hans.yml) .导航栏链接显示中文
修改HEXO POST模板
添加categories
在你的HEXO根目录下,找到文件夹scaffolds
,此文件夹下定义创建文章的基本模型,你可以修改此模板
实现每次进行HEXO NEW 文章名,文章会以您的模板进行对应配置属性创建。这里我们主要是新增categories
字段,让每次新增文章都会打上此属性字段。
scaffolds
里有三个文件分别对应草稿、页面、文章,建议都加上如下代码:
---
title: {{ title }}
date: {{ date }}
tags:
categories:
---
新增一文章,并修改分类属性
新建文章后如: hexo new 你的文章名,并打开您的文章,在categories写上你的分类名字,
此操作后并保存文档,在你进行hexo g编译的时候会在你的PUBLIC目录下的 categories下建立以你分类名字命名的
文件夹,
以后的链接将定向到此文件夹。(本文的测试分类名为:life 中文名生活)
修改主题配置文件添加MENU分类字段
修改代码大概如下,参考下就行了。
menu:
home: /
categories: /categories
about: /about
archives: /archives
tags: /tags
#commonweal: /404.html
#sitemap: /sitemap.xml
life: /categories/life
technology: /categories/technology
修改主题目录下的语言配置文件
路径为themes\next\languages
文件为zh-Hans.yml
修改代码如下
menu:
home: 首页
archives: 归档
categories: 分类
tags: 标签
about: 关于
search: 搜索
schedule: 日程表
sitemap: 站点地图
commonweal: 公益404
life: 生活
technology: 技术
完成
重新编译预览下效果。
总结
这篇写了不少小技巧,都是平时总结的,当然还有一些没讲到的点,如果有疑问的可以在下面评论说,我会在后面的文章提及。