当我的博客有了 logo 和网站图标后,总还是感觉少了点什么,所以逛了逛别的大佬建的站,发现了许多好玩的玩意儿,在这里记录一下,本篇为第三篇。
由于内容比较多,目前暂时分为四个部分,链接如下:
Hugo 的 LoveIt 主题修改及增强(一)
Hugo 的 LoveIt 主题修改及增强(二)
Hugo 的 LoveIt 主题修改及增强(三)
Hugo 的 LoveIt 主题修改及增强(四)
本文将大量修改_custom.scss
与custom.js
文件,关于_custom.scss
与custom.js
文件的引入,可见 Hugo 的 LoveIt 主题修改及增强(二)
双击生成颜表情
在your_site\static\js\custom.js
文件中,添加如下内容:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
/* 返回随机颜色 */
function randomColor() {
return "rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")";
}
/* 点击生成字符特效 */
var a_idx = 0;
var a_click = 1;
/* 生成的字符内容 */
var a = new Array("乀(ˉεˉ乀)","𓂃𓂃𓂃𓊝𓄹𓄺𓂃𓂃𓂃","˘ᗜ˘","(╥╯^╰╥)","╰(*´︶`*)╯","✧(◍˃̶ᗜ˂̶◍)✩","。◕‿◕。",
"(๑ت๑)","(๑❛ᴗ❛๑)","w(゚Д゚)w","Σ( ° △ °|||)︴","(⊙ˍ⊙)","(๑ˉ∀ˉ๑)","<( ̄︶ ̄)>","╰(*°▽°*)╯","✿",
"(,,•́ . •̀,,)","վ'ᴗ' ի","(◔◡◔)","⚝","₍ᐢ. ֑ .ᐢ₎");
jQuery(document).ready(function($) {
$("body").click(function(e) {
/* 点击频率,点击几次就换文字 */
var frequency = 2;
if (a_click % frequency === 0) {
var $i = $("<span/>").text(a[a_idx]);
a_idx = (a_idx + 1) % a.length;
var x = e.pageX,
y = e.pageY;
$i.css({
"z-index": 9999,
"top": y - 20,
"left": x,
"position": "absolute",
"font-weight": "bold",
"color": randomColor(),
"-webkit-user-select": "none",
"-moz-user-select": "none",
"-ms-user-select": "none",
"user-select": "none"
});
$("body").append($i);
$i.animate({
"top": y - 180,
"opacity": 0
},
1500,
function() {
$i.remove();
});
}
a_click ++;
});
});
|
离开进入网站的标题变化
可以发现,若离开我的网站去其他页面,那么我的网站的标题和图标会发生变化。若再次回到我的网站,则标题和图标会再次发生变化。想要达到这个效果,只需在your_site\static\js\custom.js
文件中添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/* 离开当前页面时修改网页标题,回到当前页面时恢复原来标题 */
window.onload = function() {
var OriginTitile = document.title;
var titleTime;
document.addEventListener('visibilitychange', function() {
if(document.hidden) {
$('[rel="icon"]').attr('href', "/failure.ico");
$('[rel="shortcut icon"]').attr('href', "/failure.ico");
document.title = '哦~该回码头了';
clearTimeout(titleTime);
} else {
$('[rel="icon"]').attr('href', "/favicon.ico");
$('[rel="shortcut icon"]').attr('href', "/favicon.ico");
document.title = '哈~又整到薯条了';
titleTime = setTimeout(function() {
document.title = OriginTitile;
}, 2000);
}
});
}
|
其中文字部分改为自己喜欢的就可以了,而至于网站图标文件favicon.ico
和failure.ico
如果不清楚,具体可见我之前的文章 Hugo 的美化。
这里只简单的说一下:一般而言,我们会把网站图标放到your_site\static\
路径下,而在当前的目的下,我们可以只调用48*48的.ico
文件作为显示图标。此外,favicon.ico
一般是我们原来的网站图标,所以我们只需要在创建一个failure.ico
作为离开页面时显示的图标即可。
修改二级标题,行内代码和分割线等样式
为了使文章的可读性更强,在这里最好修改一下 LoveIt 主题的文章样式。
二级标题的修改
原主题的二级标题我不好评价,它跟下一级的标题几乎区分不开,这导致文章看起来没有条理。因此在这里我们将修改二级标题的样式以做区分。
找到your_site\assets\css\_custom.scss
文件,在里面添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/* 标题 */
.page.single h2 {
box-shadow: rgb(95, 90, 75) 0px 0px 0px 1px, rgba(10, 10, 0, 0.5) 1px 1px 6px 1px;
color: rgb(255, 255, 255);
font-family: 微软雅黑, 宋体, 黑体, Arial;
font-weight: bold;
line-height: 1.3;
text-shadow: rgb(34, 34, 34) 2px 2px 3px;
background: rgb(43, 102, 149);
border-radius: 6px;
border-width: initial;
border-style: none;
border-color: initial;
border-image: initial;
padding: 7px;
margin: 18px 0px 18px -5px !important;
}
|
行内代码
原主题的行内代码能用,但只能用一点点,实在是与正文区分不开,所以在这修改一下它的样式。
找到your_site\assets\css\_custom.scss
文件,在里面添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/* 行内代码块 */
code {
margin: 0 .2rem;
font-size: .9em;
border: 1px solid #d6d6d6;
border-radius: .2rem;
}
/* 预格式代码块(用tab键插入的代码块) */
pre code {
margin: 0;
border: none;
font-size: .875rem;
}
/* 标题里的代码块样式 */
.page.single .content>h2 code {
color: #f7ab01;
background: transparent !important;
border: none;
}
|
分割线
在原主题中分割线几乎看不到,这里修改一下。
找到your_site\assets\css\_custom.scss
文件,在里面添加如下内容:
1
2
3
4
5
|
/* 分隔线 */
hr {
border: none;
border-bottom: 2px dashed #7a7a7a !important;
}
|
页脚分割线
页脚内容与其他内容连在一起有点杂乱,因此添加一个页脚的分割线还是很有必要的。
找到your_site\assets\css\_custom.scss
文件,在里面添加如下内容:
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
|
/* 页脚分割线 */
.footer {
display: block;
border-top-width: 3px;
border-top-style: solid;
border-top-color: #96c1db;
position: relative;
z-index: -1;
max-width: 800px;
width: 60%;
margin: .5rem auto 0 auto;
padding-left: 0rem;
padding-right: 0rem;
}
@media only screen and (max-width: 1440px) {
.footer {
width:54.5%
}
}
@media only screen and (max-width: 1200px) {
.footer {
width:50.5%
}
}
@media only screen and (max-width: 960px) {
.footer {
width: 77%
}
}
@media only screen and (max-width: 680px) {
.footer {
width: 95%
}
}
|
首页头像旋转
这是一个没什么用的功能,但是好玩。
找到your_site\assets\css\_custom.scss
文件,在里面添加如下内容:
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
|
/* 头像旋转 */
.home .home-profile .home-avatar img {
width: 5rem;
/* 设置循环动画
[animation:
(play)动画名称
(2s)动画播放时长单位秒或微秒
(ease-out)动画播放的速度曲线为以低速结束
(1s)等待1秒然后开始动画
(1)动画播放次数(infinite为循环播放) ]*/
/* 鼠标经过头像旋转360度 */
-webkit-transition: -webkit-transform 1.0s ease-out;
-moz-transition: -moz-transform 1.0s ease-out;
transition: transform 1.0s ease-out;
&:hover {
/* 鼠标经过停止头像旋转
-webkit-animation-play-state:paused;
animation-play-state:paused;*/
/* 鼠标经过头像旋转360度 */
-webkit-transform: rotateZ(360deg);
-moz-transform: rotateZ(360deg);
transform: rotateZ(360deg);
}
}
|
更新时间设置
原主题是有最近更新时间
参数的,只不过藏的比较深,一般不显示。但实际上,更新时间是要比发布时间更好用的(毕竟老文章改改也就成新文章了)。
首页显示最近更新时间
虽然我们有最近更新时间
,但首页并不显示,这好吗?这不好!所以我劝年轻人们都把它加上。
把your_site/themes/LoveIt/layouts/_default/summary.html
复制到your_site/layouts/_default/
路径下,然后打开your_site/layouts/_default/summary.html
文件,找到如下内容:
1
2
3
4
5
|
{{- with .Site.Params.dateFormat | default "2006-01-02" | .PublishDate.Format -}}
<span class="post-publish">
{{- printf `<time datetime="%v">%v</time>` . . | dict "Date" | T "publishedOnDate" | safeHTML -}}
</span>
{{- end -}}
|
把它修改为下面的内容:
1
2
3
4
5
6
7
8
9
10
11
|
{{- with .Site.Params.dateFormat | default "2006-01-02" | .PublishDate.Format -}}
<span class="post-publish">
{{- printf `<time datetime="%v">%v</time>` . . | dict "Date" | T "publishedOnDate" | safeHTML -}},
</span>
{{- end -}}
{{- with .Site.Params.dateFormat | default "2006-01-02" | .Lastmod.Format -}}
<span class="post-publish">
{{- printf `<time datetime="%v">%v</time>` . . | dict "Date" | T "updatedOnDate" | safeHTML -}},
</span>
{{- end -}}
|
显示最近更新的十篇文章
一般来说,归档页面只有按发布时间排序的列表,但是我们最新的动态往往会涉及到修改以前的文章,所以我们最好加一栏用来显示最近更新的文章。
首先,在your_site/config.toml
配置文件中添加新参数:
1
2
3
|
[params.section]
# 显示最近更新文章的数量
lastUpdatedSize = 10
|
然后,把your_site/themes/LoveIt/layouts/_default/section.html
复制到your_site/layouts/_default/
路径下,然后打开your_site/layouts/_default/section.html
文件,找到如下内容:
在它的上面添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{{- /* Last Modified */ -}}
{{- $lastUpdatedSize := .Site.Params.section.lastUpdatedSize -}}
{{- if $lastUpdatedSize -}}
{{- if .Pages -}}
{{- $pages := .Pages.ByLastmod.Reverse -}}
<h3 class="group-title">{{ T "RecentUpdate" -}} <sup>{{- $lastUpdatedSize -}}</sup></h3>
{{- range first $lastUpdatedSize $pages -}}
<article class="archive-item">
<a href="{{ .RelPermalink }}" class="archive-item-link">
{{- .Title -}}
</a>
<span class="archive-item-date2">
{{- "2006-01-02" | .Lastmod.Format -}}
</span>
</article>
{{- end -}}
{{- end -}}
{{- end -}}
|
接着来修改国际化文件,把your_site\themes\LoveIt\i18n\zh-CN.toml
复制到your_site\i18n\
路径下,打开your_site\i18n\zh-CN.toml
文件,添加如下内容:
1
2
|
[RecentUpdate]
other = "最近更新"
|
如果还设置了其他语言,那么我们只需将这个参量添加到对应的文件,再把 other 的内容改掉即可。
然后在your_site/assets/css/_custom.scss
中添加如下内容:
1
2
3
|
.archive-item-date2 {
color: #7c7c88;
}
|
最后,为了区分开发布时间和最近更新时间,我们要在每篇文章中添加最近更新时间的 meta。把your_site/themes/LoveIt/layouts/posts/single.html
复制到your_site/layouts/posts/
路径下,然后打开your_site/layouts/posts/single.html
文件,找到如下内容:
1
2
3
|
{{- with .Site.Params.dateformat | default "2006-01-02" | .PublishDate.Format -}}
<i class="far fa-calendar-alt fa-fw"></i> <time datetime="{{ . }}">{{ . }}</time>
{{- end -}}
|
将其改为:
1
2
3
4
5
6
|
{{- with .Site.Params.dateformat | default "2006-01-02" | .PublishDate.Format -}}
<i class="far fa-calendar fa-fw"></i> <time datetime="{{ . }}">{{ . }}</time>
{{- end -}}
{{- with .Site.Params.dateformat | default "2006-01-02" | .Lastmod.Format -}}
<i class="far fa-calendar-plus fa-fw"></i> <time datetime="{{ . }}">{{ . }}</time>
{{- end -}}
|
参考文章:
- NexT主题美化与博客功能增强 · 第二章
- LoveIt主题美化与博客功能增强 · 第四章
警告
本文最后更新于 July 31, 2023,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系删除。
若文章帮助到了您,就不妨点一下👇广告,支持博主吧!