hexo+NexT(v7.72+)超全二十一大主题美化,打造“超炫”网站(四)

news/2024/5/17 1:58:11/文章来源:https://blog.csdn.net/kuashijidexibao/article/details/106422838

(14)Hexo博客NexT主题美化之自定义文章底部版权声明

参考文章
效果如下

1.在目录themes/next/layout/_macro/下添加my-copyright.swig ,内容如下:

{% if page.copyright %} <div class="my_post_copyright"> <script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script> <!-- JS库 sweetalert 可修改路径 --> <script type="text/javascript" src="http://jslibs.wuxubj.cn/sweetalert_mini/jquery-1.7.1.min.js"></script> <script src="http://jslibs.wuxubj.cn/sweetalert_mini/sweetalert.min.js"></script> <link rel="stylesheet" type="text/css" href="http://jslibs.wuxubj.cn/sweetalert_mini/sweetalert.mini.css"> <p><span>本文标题:</span>{{ page.title }}</a></p> <p><span>文章作者:</span>{{ theme.author }}</a></p> <p><span>发布时间:</span>{{ page.date.format("YYYY年MM月DD日 - HH:mm:ss") }}</p> <p><span>最后更新:</span>{{ page.updated.format("YYYY年MM月DD日 - HH:mm:ss") }}</p> <p><span>原始链接:</span><a href="{{ url_for(page.path) }}" title="{{ page.title }}">{{ page.permalink }}</a> <span class="copy-path" title="点击复制文章链接"><i class="fa fa-clipboard" data-clipboard-text="{{ page.permalink }}" aria-label="复制成功!"></i></span> </p> <p><span>许可协议:</span><i class="fa fa-creative-commons"></i> <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank" title="Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)">署名-非商业性使用-禁止演绎 4.0 国际</a> 转载请保留原文链接及作者。</p> </div> <script> var clipboard = new Clipboard('.fa-clipboard'); clipboard.on('success', $(function(){ $(".fa-clipboard").click(function(){ swal({ title: "", text: '复制成功', html: false, timer: 500, showConfirmButton: false }); }); })); </script> {% endif %}

2.在目录 themes/next/source/css/_common/components/post/ 下添加my-post-copyright.styl,内容如下:


.my_post_copyright { width: 85%; max-width: 45em; margin: 2.8em auto 0; padding: 0.5em 1.0em; border: 1px solid #d3d3d3; font-size: 0.93rem; line-height: 1.6em; word-break: break-all; background: rgba(255,255,255,0.4); } .my_post_copyright p{margin:0;} .my_post_copyright span { display: inline-block; width: 5.2em; color: #333333; // title color font-weight: bold; } .my_post_copyright .raw { margin-left: 1em; width: 5em; } .my_post_copyright a { color: #808080; border-bottom:0; } .my_post_copyright a:hover { color: #0593d3; // link color text-decoration: underline; } .my_post_copyright:hover .fa-clipboard { color: #000; } .my_post_copyright .post-url:hover { font-weight: normal; } .my_post_copyright .copy-path { margin-left: 1em; width: 1em; +mobile(){display:none;} } .my_post_copyright .copy-path:hover { color: #808080; cursor: pointer; }

3.修改themes/next/layout/_macro/post.swig ,如下:在代码

{%- if post.reward_settings.enable %}{{ partial('_partials/post/post-reward.swig') }}{%- endif %

之后,新增如下代码:

<div> {% if not is_index %} {% include 'my-copyright.swig' %} {% endif %} </div>

4.打开themes/next/source/css/_common/components/post/post.styl 文件,在最后一行增加代码:

@import "my-post-copyright"

5.设置新建文章自动开启 copyright ,即新建文章自动显示自定义的版权声明,设置~/scaffolds/post.md文件,如下:

---
title: {{ title }} 
date: {{ date }} 
copyright: true #新增,开启
---

(15)在每篇文章末尾添加“本文结束”标记

在路径/blog/themes/next/layout/_macro中新建 passage-end-tag.swig 文件,并添加以下内容

<div>{% if not is_index %}<div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div>{% endif %}
</div>

接着打开/blog/themes/next/layout/_macro/post.swig文件,在post-body 之后, post-footer之前添加,代码如下:

<div>{% if not is_index %}{% include 'passage-end-tag.swig' %}{% endif %}
</div>

然后打开主题配置文件(_config.yml),在末尾添加:

#文章末尾添加“本文结束”标记
passage_end_tag:enabled: true

效果:

(16)字数统计和阅读时长(网站底部/文章内)

首先安装插件:

$ npm install hexo-symbols-count-time --save

然后修改主题配置文件如下:

symbols_count_time:separated_meta: true   #显示属性名称,设为false后只显示图标和统计数字,不显示属性的文字item_text_post: true   #显示属性名称,设为false后只显示图标和统计数字,不显示属性的文字item_text_total: true #底部footer是否显示字数统计属性文字(如站点总字数,站点阅读时长 ≈ 1 分钟)awl: 4     #计算字数的一个设置,没设置过wpm: 275  #一分钟阅读的字数	

站点配置文件中添加:

symbols_count_time:#文章内是否显示symbols: truetime: true# 网页底部是否显示total_symbols: truetotal_time: true

完成后并不能显示,而是

??
后来文章统计正常,但网页下方未变
勿急,等一会(可能要一天)会显示出来

(17)添加文章置顶功能

安装插件

卸载原来的插件,安装带置顶功能的插件 netcan/hexo-generator-index-pin-top: Index generator plugin for Hexo. Pin top version

$ npm uninstall hexo-generator-index --save
$ npm install hexo-generator-index-pin-top --save
使用

在需要置顶的文章中的 Front-matter 加入 top: true 即可。

优化

打开 /themes/next/layout/_macro下的 post.swig 文件,定位到 <div class="post-meta"> 下 (约 63 行),插入如下代码:

{% if post.top %}   <i class="fa fa-thumb-tack"></i>    <font color=7D26CD>置顶</font>  <span class="post-meta-divider">|</span>{% endif %}

位置如图:

效果:

参考文章

(18)添加阅读进度条

主题配置文件中改为true即可

(19)添加代码复制块

代码块会展示出该效果

在之前创建的styles.styl末尾添加

// 复制按钮样式top调整
.highlight-wrap .copy-btn {
padding: 
1px 6px;  
top: 3px;
}

(20)全国哀悼日将网站变灰

方法:fn+f12打开调试面板,在body处添加
-webkit-filter: grayscale(100%)即可实现

在这里插入图片描述

(21)点击爆炸效果

实现的效果图:

实现方法跟那个红心是差不多的,首先在themes/next/source/js/src里面建一个叫fireworks.js的文件,代码如下:

"use strict";function updateCoords(e){pointerX=(e.clientX||e.touches[0].clientX)-canvasEl.getBoundingClientRect().left,pointerY=e.clientY||e.touches[0].clientY-canvasEl.getBoundingClientRect().top}function setParticuleDirection(e){var t=anime.random(0,360)*Math.PI/180,a=anime.random(50,180),n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function createParticule(e,t){var a={};return a.x=e,a.y=t,a.color=colors[anime.random(0,colors.length-1)],a.radius=anime.random(16,32),a.endPos=setParticuleDirection(a),a.draw=function(){ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.fillStyle=a.color,ctx.fill()},a}function createCircle(e,t){var a={};return a.x=e,a.y=t,a.color="#F00",a.radius=0.1,a.alpha=0.5,a.lineWidth=6,a.draw=function(){ctx.globalAlpha=a.alpha,ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.lineWidth=a.lineWidth,ctx.strokeStyle=a.color,ctx.stroke(),ctx.globalAlpha=1},a}function renderParticule(e){for(var t=0;t<e.animatables.length;t++){e.animatables[t].target.draw()}}function animateParticules(e,t){for(var a=createCircle(e,t),n=[],i=0;i<numberOfParticules;i++){n.push(createParticule(e,t))}anime.timeline().add({targets:n,x:function(e){return e.endPos.x},y:function(e){return e.endPos.y},radius:0.1,duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule}).add({targets:a,radius:anime.random(80,160),lineWidth:0,alpha:{value:0,easing:"linear",duration:anime.random(600,800)},duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule,offset:0})}function debounce(e,t){var a;return function(){var n=this,i=arguments;clearTimeout(a),a=setTimeout(function(){e.apply(n,i)},t)}}var canvasEl=document.querySelector(".fireworks");if(canvasEl){var ctx=canvasEl.getContext("2d"),numberOfParticules=30,pointerX=0,pointerY=0,tap="mousedown",colors=["#FF1461","#18FF92","#5A87FF","#FBF38C"],setCanvasSize=debounce(function(){canvasEl.width=2*window.innerWidth,canvasEl.height=2*window.innerHeight,canvasEl.style.width=window.innerWidth+"px",canvasEl.style.height=window.innerHeight+"px",canvasEl.getContext("2d").scale(2,2)},500),render=anime({duration:1/0,update:function(){ctx.clearRect(0,0,canvasEl.width,canvasEl.height)}});document.addEventListener(tap,function(e){"sidebar"!==e.target.id&&"toggle-sidebar"!==e.target.id&&"A"!==e.target.nodeName&&"IMG"!==e.target.nodeName&&(render.play(),updateCoords(e),animateParticules(pointerX,pointerY))},!1),setCanvasSize(),window.addEventListener("resize",setCanvasSize,!1)}"use strict";function updateCoords(e){pointerX=(e.clientX||e.touches[0].clientX)-canvasEl.getBoundingClientRect().left,pointerY=e.clientY||e.touches[0].clientY-canvasEl.getBoundingClientRect().top}function setParticuleDirection(e){var t=anime.random(0,360)*Math.PI/180,a=anime.random(50,180),n=[-1,1][anime.random(0,1)]*a;return{x:e.x+n*Math.cos(t),y:e.y+n*Math.sin(t)}}function createParticule(e,t){var a={};return a.x=e,a.y=t,a.color=colors[anime.random(0,colors.length-1)],a.radius=anime.random(16,32),a.endPos=setParticuleDirection(a),a.draw=function(){ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.fillStyle=a.color,ctx.fill()},a}function createCircle(e,t){var a={};return a.x=e,a.y=t,a.color="#F00",a.radius=0.1,a.alpha=0.5,a.lineWidth=6,a.draw=function(){ctx.globalAlpha=a.alpha,ctx.beginPath(),ctx.arc(a.x,a.y,a.radius,0,2*Math.PI,!0),ctx.lineWidth=a.lineWidth,ctx.strokeStyle=a.color,ctx.stroke(),ctx.globalAlpha=1},a}function renderParticule(e){for(var t=0;t<e.animatables.length;t++){e.animatables[t].target.draw()}}function animateParticules(e,t){for(var a=createCircle(e,t),n=[],i=0;i<numberOfParticules;i++){n.push(createParticule(e,t))}anime.timeline().add({targets:n,x:function(e){return e.endPos.x},y:function(e){return e.endPos.y},radius:0.1,duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule}).add({targets:a,radius:anime.random(80,160),lineWidth:0,alpha:{value:0,easing:"linear",duration:anime.random(600,800)},duration:anime.random(1200,1800),easing:"easeOutExpo",update:renderParticule,offset:0})}function debounce(e,t){var a;return function(){var n=this,i=arguments;clearTimeout(a),a=setTimeout(function(){e.apply(n,i)},t)}}var canvasEl=document.querySelector(".fireworks");if(canvasEl){var ctx=canvasEl.getContext("2d"),numberOfParticules=30,pointerX=0,pointerY=0,tap="mousedown",colors=["#FF1461","#18FF92","#5A87FF","#FBF38C"],setCanvasSize=debounce(function(){canvasEl.width=2*window.innerWidth,canvasEl.height=2*window.innerHeight,canvasEl.style.width=window.innerWidth+"px",canvasEl.style.height=window.innerHeight+"px",canvasEl.getContext("2d").scale(2,2)},500),render=anime({duration:1/0,update:function(){ctx.clearRect(0,0,canvasEl.width,canvasEl.height)}});document.addEventListener(tap,function(e){"sidebar"!==e.target.id&&"toggle-sidebar"!==e.target.id&&"A"!==e.target.nodeName&&"IMG"!==e.target.nodeName&&(render.play(),updateCoords(e),animateParticules(pointerX,pointerY))},!1),setCanvasSize(),window.addEventListener("resize",setCanvasSize,!1)};

打开themes/next/layout/_layout.swig,在上面写下如下代码:

{% if theme.fireworks %}<canvas class="fireworks" style="position: fixed;left: 0;top: 0;z-index: 1; pointer-events: none;" ></canvas> <script type="text/javascript" src="//cdn.bootcss.com/animejs/2.2.0/anime.min.js"></script> <script type="text/javascript" src="/js/src/fireworks.js"></script>
{% endif %}

打开主题配置文件,在里面最后写下:

# Fireworks
fireworks: true

希望以上二十一个主题美化功能能够给读者带来帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_778708.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ICP和公安网备案以及网站底部添加相应备案号

网站备案 网站建立成功后要分别进行公信网备案和公安备案然后部署在网站底部 公信网备案 用阿里云&#xff0c;买一个服务器进行个人信息填写 等待一段时间&#xff08;一周到三周不等&#xff09;的审核后通过 公安网备案 比较公信网&#xff0c;这个就要快很多 1.打开全…

提高网站打开速度的7大秘籍

2019独角兽企业重金招聘Python工程师标准>>> 很多站长使用虚拟主机来做网站&#xff0c;网页内容一旦很多&#xff0c;网站打开速度就会特别慢&#xff0c;如果说服务器、带宽、CDN这类硬指标我们没有经济实力去做&#xff0c;不妨通过网页代码优化的方式来提高速度…

优化杭州某著名电子商务网站高并发千万级大型数据库经验之- 读写分离

为什么80%的码农都做不了架构师&#xff1f;>>> 好久没写博客了&#xff0c;一方面是日常工作繁忙&#xff0c;另外一方面是想更多的时间陪陪家里人&#xff0c;享受春天的美好时光&#xff0c;还在写一本《程序员&#xff0c;你伤不起》的一本书要由人民邮电出版社…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起&#xff0c;安全威胁就一直伴随着网站的发展&#xff0c;各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击&#xff08;…

微软发布IIS漏洞补丁,影响我国五分之一网站

2015年4月14日&#xff0c;微软发布月度例行安全公告&#xff0c;共释放出11项更新&#xff0c;一举修复包括Windows操作系统、IE浏览器、Office办公软件、.NET Framework、Server软件、Office Services和Web Apps在内的26个安全漏洞。在这11项更新中&#xff0c;有4项更新综合…

Scrapy框架学习笔记(2)——小说网站简单信息的爬取

本项目参考书上的例子自己找了一个小说网站&#xff08;以笔趣阁为例&#xff09;对各种热门书目信息爬取&#xff0c;用于练手&#xff0c;希望能够对和我一样的初学者有帮助。 友情链接 本文参考书目作者博客链接&#xff1a;https://cloud.tencent.com/developer/article/…

使用 varnish + nginx + lua 搭建网站的降级系统

通常一个网站数据库挂掉后&#xff0c;后果将是非常严重的。基本上整个网站基本不可用了。对于一些网站来说&#xff0c;当数据库挂掉后&#xff0c;如果能提供基本的浏览服务&#xff0c;也是不错的。本文将尝试使用 varnish nginx lua 搭建网站降级系统来实现整个目标。 降…

大型网站的核心构架要素

当今的互联网时代&#xff0c;技术日新月异。如何打造一个高可用、高性能、易扩展、可伸缩且安全的网站?如何让网站随应用所需灵活变动? 相较于传统企业应用系统&#xff0c;大型互联网网站应用系统的部署架构至少需要具备五大核心要素&#xff1a;高性能、高可用、伸缩性、扩…

购书网站前端实现(HTML+CSS+JavaScript)

目录 购书阅读静态网页设计与实现 一、主页设计HTML 1、效果展示及实现 2、完整代码 二、主页样式布局CSS 三、空间功能实现Javascript 主要功能 Javascript完整代码&#xff1a; 总结 购书阅读静态网页设计与实现 ① 网盘下载&#xff1a;关注我的博客最后的微信公众…

口罩预约管理系统——系统网站实现(前端+PHP+MySQL)

口罩预约管理系统网站实现 一、前言 二、系统登陆逻辑及界面实现 三、用户模块 1、用户预约系统界面 2、用户查看我的订单界面 3、用户修改预约信息 四、管理员模块 1、管理员登陆界面 2、查看用户预约订单 3、修改/删除用户信息 五、快递员模块 1、快递员登录配送系…

云服务器 ECS 建站教程:GitLab的安装及使用

GitLab的安装及使用前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统&#xff0c;实现一个自托管的Git项目仓库&#xff0c;可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。可以管理团队对…

使用python requests库,使用bs4解析网页内容提取url,使用广度优先算法,爬取一个网站的所有网页

实现一个类&#xff0c;抓取一个网站所有页面 实现思路&#xff1a;一边添加url&#xff0c;一边抓取&#xff0c;一直进行下去就可以了&#xff0c;直到列表遍历完成&#xff0c;说明没有新的url可供抓取&#xff0c;即抓取完成。 实际上是图的广度优先遍历。 import urllib.…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再加上近来感觉有不少同学都很难明白为什么…

网站api访问不到服务器,实现一个 RESTful API 服务器

RESTful 是目前最为流行的一种互联网软件结构。因为它结构清晰、符合标准、易于理解、扩展方便&#xff0c;所以正得到越来越多网站的采用。什么是 RESTREST(REpresentational State Transfer)&#xff0c;首次出现在 2000 年 Roy Thomas Fielding 的博士论文中&#xff0c;它指…

记一次真实的网站被黑经历

前言 距离上次被DDOS攻 击已经有10天左右的时间&#xff0c;距离上上次已经记不起具体那一天了&#xff0c;每一次都这么不了了只。然而近期一次相对持久的攻 击&#xff0c;我觉得有必要静下心来&#xff0c;分享一下被黑的那段经历。 在叙述经历之前&#xff0c;先简单的介绍…

android 弹出菜单 toast,Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)...

1.Toast提醒为昨天写的按钮程序添加一个提醒&#xff0c;在MainActivity中添加如下代码&#xff1a;Button bt1 (Button) findViewById(R.id.button_1);bt1.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Toast.makeText(MainActi…

eyoucms 到底什么是网站根目录?

对于站长和互联网技术人员而言&#xff0c;网站根目录是一个很常见的概念&#xff0c;弄不明白到底哪一个目录才是根目录的新手也并不少见&#xff0c;今天益吾库就跟大家分享一下到底什么是网站根目录的相关知识。 什么是根目录 顾名思义&#xff0c;根就像树根一样&#xff0…

网站如何获得收入?初识个站广告盈利的基本方法

鄙人不才&#xff0c;建站足有半年有余博客zzzmh.cn 壁纸bz.zzzmh.cn 插件chrome.zzzmh.cn 粗(初)布算了一笔账&#xff0c;没有杂七杂八的优惠&#xff0c;一般来说建站开支少说要30 ~ 150每月。。。那么如果想长期经营&#xff0c;最好能有一笔微薄的收益来支撑这些成本。最…

SEO人员,该如何寻找高价值的关键词?

对于企业SEO而言&#xff0c;每个站点都需要更多的自然流量&#xff0c;为了得到它&#xff0c;你可能需要对关键词排名&#xff0c;有的时候&#xff0c;为了获得更加精准的流量与提高产品转化率。 在选择关键词的时候&#xff0c;我们不得不&#xff0c;花费更多的时间&…