日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

hexo博客主题推荐_wordpress社交主题(Hexo系列)

發(fā)布時間:2023/12/19 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 hexo博客主题推荐_wordpress社交主题(Hexo系列) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

個人博客

個人博客: https://www.crystalblog.xyz/

備用地址: https://wang-qz.gitee.io/crystal-blog/

上篇hexo博客搭建及主題優(yōu)化(一)
下篇hexo博客搭建及主題優(yōu)化(三)

主題優(yōu)化二

21. 網(wǎng)站log設(shè)置

主題目錄下的_config.yml 配置文件中:

# 配置網(wǎng)站favicon和網(wǎng)站LOGO
## 本地
#favicon: /favicon.png
#logo: /medias/logo.png
# 此處我用的CDN,也可以使用本地文件
favicon: https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.png
logo: https://cdn.jsdelivr.net/gh/guixinchn/image/blog/logo.png

圖片資源在主題目錄的\themes\hexo-theme-matery\source\medias下面 , 也可以使用外鏈圖片.

22. 網(wǎng)站動態(tài)標(biāo)題行

實現(xiàn)方法,引入 js 文件,在主題文件下的 /source/js/ 下新建 funnyTitle.js,增加以下代碼:

var OriginTitle = document.title;
 var titleTime;
 document.addEventListener('visibilitychange', function () { 
   
     if (document.hidden) { 
   
         $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.png");
         document.title = '我相信你還會回來的!';
         clearTimeout(titleTime);
     }
     else { 
   
         $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.png");
         document.title = '哈哈,我就知道!' + OriginTitle;
         titleTime = setTimeout(function () { 
   
             document.title = OriginTitle;
         }, 2000);
     }
 });

然后在主題目錄下的/layout/layout.ejs 引入

<script src="<%- theme.jsDelivr.url %><%- url_for('/js/funnyTitle.js') %>"></script>

23. about頁面添加個人簡歷

打開主題目錄下的 /layout/about.ejs 文件,新增如下代碼:

<div class="card-content article-card-content">
   <div class="title center-align" data-aos="zoom-in-up">
      <i class="fa fa-address-book"></i>&nbsp;&nbsp;<%- __('個人簡歷') %>
   </div>
   <div id="articleContent" data-aos="fade-up">
      <%- page.content %>
   </div>
</div>

在主題目錄下的/layout/about.ejs 文件里面關(guān)于下面代碼中的profile相關(guān)信息從主題的 _config.yml 配置文件中獲取.

<div class="profile center-align">
    <div class="avatar">
        <img src="<%- theme.jsDelivr.url %><%- url_for(theme.profile.avatar) %>" alt="<%- config.author %>" class="circle responsive-img avatar-img">
    </div>
    <div class="author">
        <div class="post-statis hide-on-large-only" data-aos="zoom-in-right">
            <%- partial('_partial/post-statis') %>
        </div>
        <div class="title"><%- config.author %></div>
        <div class="career"><%- theme.profile.career %></div>
        <div class="social-link hide-on-large-only" data-aos="zoom-in-left">
            <%- partial('_partial/social-link') %>
        </div>
    </div>
</div>

主題目錄下的 _config.yml 配置文件中profile信息配置, 可以修改…

# profile in about page, including avatars, career, and personal introductions.
# 在”關(guān)于”頁面中配置個人信息,包括頭像、職業(yè)和個人介紹.
profile:
  avatar: /medias/avatar.jpg
  career: Software Engineer
  introduction: If you wish to succeed, you should use persistence as your good friend, experience as your reference, prudence as your brother and hope as your sentry.

24. 404頁面

原來的主題沒有404頁面,首先在主題目錄下的/source/目錄下新建一個404.md,內(nèi)容如下:

---
title: 404
date: 2017-07-19 16:41:10
type: "404"
layout: "404"
description: "你訪問的頁面被外星人叼走了 :("
---

然后在主題目錄下新建一個/layout/404.ejs文件,內(nèi)容如下:

<style type="text/css"> /* don't remove. */ .about-cover { 
      height: 90.2vh; } </style>
<div class="bg-cover pd-header about-cover">
    <div class="container">
        <div class="row">
            <div class="col s10 offset-s1 m8 offset-m2 l8 offset-l2">
                <div class="brand">
                    <div class="title center-align">
                        404
                    </div>
                    <div class="description center-align">
                        <%= page.description %>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<% if (theme.banner.enable) { %>
    <script> // 每天切換 banner 圖. Switch banner image every day. var bannerUrl = "<%- theme.jsDelivr.url %><%- url_for('/medias/banner/') %>" + new Date().getDay() + '.jpg'; $('.bg-cover').css('background-image', 'url(' + bannerUrl + ')'); </script>
<% } else { %>
    <script> $('.bg-cover').css('background-image', 'url(<%- theme.jsDelivr.url %><%- url_for('/medias/banner/0.jpg') %>)'); </script>
<% } %>

25. 網(wǎng)站頁腳修改

根據(jù)自己需要修改主題目錄下的/layout/_partial/footer.ejs文件, 可以設(shè)置站點訪問量, 訪問人數(shù), 字?jǐn)?shù)統(tǒng)計, 站點運行時間, 網(wǎng)站備案等信息.

<footer class="page-footer bg-color">
<% if (theme.music.enable && theme.music.fixed) { %>
<%- partial('_widget/music') %>
<% } %>
<div class="container row center-align">
<div class="col s12 m8 l8 copy-right">
Copyright&nbsp;&copy;
<% if (theme.time.year !== new Date().getFullYear()) { %>
<span id="year"><%- theme.time.year %>-<%- new Date().getFullYear() %></span>
<% } else { %>
<span id="year"><%- theme.time.year %></span>
<% } %>
<i class="fa fa-heart"></i>
<a href="<%- url_for('/about') %>" target="_blank"><%- config.author %></a>
|&nbsp;Powered by&nbsp;<a  target="_blank">Hexo</a>
|&nbsp;&nbsp;<a  target="_blank">Matery</a>
<br>
<% if (theme.postInfo.totalCount) { %>
<span>
&nbsp;  <i class="fas fa-chart-area"></i>&nbsp;<%- __('siteTotalWords') %>:&nbsp;<span class="white-color"><%= totalcount(site) %></span>
<span/>
<% } %>
<% let socialClass = '' %>
<% if (theme.busuanziStatistics && theme.busuanziStatistics.enable) { %>
<% socialClass = 'social-statis' %>
<% } %>
<% if (theme.busuanziStatistics && theme.busuanziStatistics.totalTraffic) { %>
<span id="busuanzi_container_site_pv3">
&nbsp;|&nbsp;<i class="far fa-eye"></i>&nbsp;<%- __('siteTotalVisits') %>:&nbsp;<span id="busuanzi_value_site_pv" class="white-color"><%= totalcount(site) %></span>
</span>
<% } %>
<% if (theme.busuanziStatistics && theme.busuanziStatistics.totalNumberOfvisitors) { %>
<span id="busuanzi_container_site_uv3">
&nbsp;|&nbsp;<i class="fas fa-users"></i>&nbsp;<%- __('siteTotalVisitors') %>:&nbsp;<span id="busuanzi_value_site_uv" class="white-color"><%= totalcount(site) %></span>
</span>
<% } %>
<br>
<!-- 運行天數(shù)提醒. -->
<% if (theme.time.enable) { %>
<span id="sitetime"> Loading ...</span>
<script> var calcSiteTime = function () { 
 var seconds = 1000; var minutes = seconds * 60; var hours = minutes * 60; var days = hours * 24; var years = days * 365; var today = new Date(); var startYear = "<%- theme.time.year %>"; var startMonth = "<%- theme.time.month %>"; var startDate = "<%- theme.time.date %>"; var startHour = "<%- theme.time.hour %>"; var startMinute = "<%- theme.time.minute %>"; var startSecond = "<%- theme.time.second %>"; var todayYear = today.getFullYear(); var todayMonth = today.getMonth() + 1; var todayDate = today.getDate(); var todayHour = today.getHours(); var todayMinute = today.getMinutes(); var todaySecond = today.getSeconds(); var t1 = Date.UTC(startYear, startMonth, startDate, startHour, startMinute, startSecond); var t2 = Date.UTC(todayYear, todayMonth, todayDate, todayHour, todayMinute, todaySecond); var diff = t2 - t1; var diffYears = Math.floor(diff / years); var diffDays = Math.floor((diff / days) - diffYears * 365); var diffHours = Math.floor((diff / hours) - diffYears * 365 * 24 - diffDays * 24); var diffMinutes = Math.floor((diff / minutes) - diffYears * 365 * 24 * 60 - diffDays * 24 * 60 - diffHours * 60); var diffSeconds = Math.floor((diff / seconds) - diffYears * 365 * 24 * 60 * 60 - diffDays * 24 * 60 * 60 - diffHours * 60 * 60 - diffMinutes * 60); // 區(qū)分是否有年份. var language = '<%- config.language %>'; if (startYear === String(todayYear)) { 
 document.getElementById("year").innerHTML = todayYear; var daysTip = 'This site has been running for ' + diffDays + ' days'; if (language === 'zh-CN') { 
 daysTip = '本站已運行 ' + diffDays + ' 天'; } else if (language === 'zh-HK') { 
 daysTip = '本站已運行 ' + diffDays + ' 天'; } document.getElementById("sitetime").innerHTML = daysTip; } else { 
 document.getElementById("year").innerHTML = startYear + " - " + todayYear; var yearsAndDaysTip = 'This site has been running for ' + diffYears + ' years and ' + diffDays + ' days'; if (language === 'zh-CN') { 
 yearsAndDaysTip = '本站已運行 ' + diffYears + ' 年 ' + diffDays + ' 天 ' + diffHours + ' 小時 ' + diffMinutes + ' 分鐘 ' + diffSeconds + ' 秒'; } else if (language === 'zh-HK') { 
 yearsAndDaysTip = '本站已運行 ' + diffYears + ' 年 ' + diffDays + ' 天'; } document.getElementById("sitetime").innerHTML = yearsAndDaysTip; } } var timer = setInterval(calcSiteTime); // calcSiteTime(); </script>
<% } %>
&nbsp;|&nbsp;
<% if (theme.icp.enable) { %>
<span id="icp">
<img src="<%- theme.jsDelivr.url %><%- url_for('/medias/icp.png') %>"/>
<a href="<%- url_for(theme.icp.url) %>" target="_blank"><%=                                 theme.icp.text %></a>
</span>
<% } %>
</div>
<div class="col s12 m4 l4 social-link <%- socialClass %>">
<%- partial('_partial/social-link') %>
</div>
</div>
</footer>

還可以添加百度不蒜子統(tǒng)計

找到/layout/_partial/footer.ejs 文件,修改對應(yīng)樣式為

<!--總訪問人數(shù)-->
<% if (theme.busuanziStatistics && theme.busuanziStatistics.totalNumberOfvisitors) { 
 %>
<span id="busuanzi_container_site_uv">
&nbsp;|&nbsp;<i class="fas fa-users"></i>&nbsp;<%- __('siteTotalVisitors') %>:&nbsp;<span
id="busuanzi_value_site_uv" class="white-color"></span>
</span>
<% } %>
<!--最后加上-->
<script>
let _hmt = _hmt || [];
(function () { 

var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?147475454185ebcf440a27cc35e793ef";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>

26. 添加動漫人物

安裝插件hexo-helper-live2d

npm install --save hexo-helper-live2d

安裝下載動畫人物庫, 動畫人物有很多, 可以網(wǎng)上查詢資料, 下面推薦幾種.

npm install --save live2d-widget-model-shizuku #課桌女孩
npm install --save live2d-widget-model-hibiki  #御姐
npm install --save live2d-widget-model-wanko   #狗狗
npm install --save live2d-widget-model-haruto  #海軍服女孩
npm install --save live2d-widget-model-miku    #蘿莉

博客根目錄_config.yml文件配置:

## 添加動畫live2d模塊 npm install --save hexo-helper-live2d
## 下載動畫人物庫 npm install live2d-widget-model-z16 -D
live2d:
enable: true
scriptFrom: local # 默認(rèn)
pluginRootPath: live2dw/ # 插件在站點上的根目錄(相對路徑)
pluginJsPath: lib/ # 腳本文件相對與插件根目錄路徑
pluginModelPath: assets/ # 模型文件相對與插件根目錄路徑
tagMode: false # 標(biāo)簽?zāi)J? 是否僅替換 live2d tag標(biāo)簽而非插入到所有頁面中
debug: false # 調(diào)試, 是否在控制臺輸出日志
model:
use: live2d-widget-model-miku
display:
position: right #動畫位置
width: 150
height: 190
# 位置配置,這個在左側(cè)邊欄位置很居中
hOffset: 50  # 調(diào)節(jié)水平位置
vOffset: -5  # 調(diào)節(jié)垂直位置
mobile:
show: false # 是否在移動設(shè)備上顯示
scale: 0.5 # 移動設(shè)備上的縮放
react:
opacityDefault: 0.7
opacityOnHover: 0.8

27. 雪花和櫻花效果

添加雪花飄落效果

在主題目錄下新增/source/js/snow.js文件, 添加內(nèi)容:

/*樣式一*/
(function ($) { 

$.fn.snow = function (options) { 

var $flake = $('<div id="snowbox" />').css({ 

'position': 'absolute',
'z-index': '9999',
'top': '-50px'
}).html('❄'),
documentHeight = $(document).height(),
documentWidth = $(document).width(),
defaults = { 

minSize: 10,
maxSize: 20,
newOn: 1000,
flakeColor: "#AFDAEF" /* 此處可以定義雪花顏色,若要白色可以改為#FFFFFF */
},
options = $.extend({ 
}, defaults, options);
var interval = setInterval(function () { 

var startPositionLeft = Math.random() * documentWidth - 100,
startOpacity = 0.5 + Math.random(),
sizeFlake = options.minSize + Math.random() * options.maxSize,
endPositionTop = documentHeight - 200,
endPositionLeft = startPositionLeft - 500 + Math.random() * 500,
durationFall = documentHeight * 10 + Math.random() * 5000;
$flake.clone().appendTo('body').css({ 

left: startPositionLeft,
opacity: startOpacity,
'font-size': sizeFlake,
color: options.flakeColor
}).animate({ 

top: endPositionTop,
left: endPositionLeft,
opacity: 0.2
}, durationFall, 'linear', function () { 

$(this).remove()
});
}, options.newOn);
};
})(jQuery);
$(function () { 

$.fn.snow({ 

minSize: 5, /* 定義雪花最小尺寸 */
maxSize: 50,/* 定義雪花最大尺寸 */
newOn: 300  /* 定義密集程度,數(shù)字越小越密集 */
});
});
/*樣式二*/
/* 控制下雪 */
function snowFall(snow) { 

/* 可配置屬性 */
snow = snow || { 
};
this.maxFlake = snow.maxFlake || 200;   /* 最多片數(shù) */
this.flakeSize = snow.flakeSize || 10;  /* 雪花形狀 */
this.fallSpeed = snow.fallSpeed || 1;   /* 墜落速度 */
}
/* 兼容寫法 */
requestAnimationFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame ||
function (callback) { 

setTimeout(callback, 1000 / 60);
};
cancelAnimationFrame = window.cancelAnimationFrame ||
window.mozCancelAnimationFrame ||
window.webkitCancelAnimationFrame ||
window.msCancelAnimationFrame ||
window.oCancelAnimationFrame;
/* 開始下雪 */
snowFall.prototype.start = function () { 

/* 創(chuàng)建畫布 */
snowCanvas.apply(this);
/* 創(chuàng)建雪花形狀 */
createFlakes.apply(this);
/* 畫雪 */
drawSnow.apply(this)
}
/* 創(chuàng)建畫布 */
function snowCanvas() { 

/* 添加Dom結(jié)點 */
var snowcanvas = document.createElement("canvas");
snowcanvas.id = "snowfall";
snowcanvas.width = window.innerWidth;
snowcanvas.height = document.body.clientHeight;
snowcanvas.setAttribute("style", "position:absolute; top: 0; left: 0; 
z-index: 1; pointer-events: none;");
document.getElementsByTagName("body")[0].appendChild(snowcanvas);
this.canvas = snowcanvas;
this.ctx = snowcanvas.getContext("2d");
/* 窗口大小改變的處理 */
window.onresize = function () { 

snowcanvas.width = window.innerWidth;
/* snowcanvas.height = window.innerHeight */
}
}
/* 雪運動對象 */
function flakeMove(canvasWidth, canvasHeight, flakeSize, fallSpeed) { 

this.x = Math.floor(Math.random() * canvasWidth);   /* x坐標(biāo) */
this.y = Math.floor(Math.random() * canvasHeight);  /* y坐標(biāo) */
this.size = Math.random() * flakeSize + 2;          /* 形狀 */
this.maxSize = flakeSize;                           /* 最大形狀 */
this.speed = Math.random() * 1 + fallSpeed;         /* 墜落速度 */
this.fallSpeed = fallSpeed;                         /* 墜落速度 */
this.velY = this.speed;                             /* Y方向速度 */
this.velX = 0;                                      /* X方向速度 */
this.stepSize = Math.random() / 30;                 /* 步長 */
this.step = 0                                       /* 步數(shù) */
}
flakeMove.prototype.update = function () { 

var x = this.x,
y = this.y;
/* 左右擺動(余弦) */
this.velX *= 0.98;
if (this.velY <= this.speed) { 

this.velY = this.speed
}
this.velX += Math.cos(this.step += .05) * this.stepSize;
this.y += this.velY;
this.x += this.velX;
/* 飛出邊界的處理 */
if (this.x >= canvas.width || this.x <= 0 || this.y >= canvas.height || this.y <= 0) { 

this.reset(canvas.width, canvas.height)
}
};
/* 飛出邊界-放置最頂端繼續(xù)墜落 */
flakeMove.prototype.reset = function (width, height) { 

this.x = Math.floor(Math.random() * width);
this.y = 0;
this.size = Math.random() * this.maxSize + 2;
this.speed = Math.random() * 1 + this.fallSpeed;
this.velY = this.speed;
this.velX = 0;
};
// 渲染雪花-隨機形狀(此處可修改雪花顏色!!!)
flakeMove.prototype.render = function (ctx) { 

var snowFlake = ctx.createRadialGradient(this.x, this.y, 0, this.x, this.y, this.size);
snowFlake.addColorStop(0, "rgba(255, 255, 255, 0.9)");  /* 此處是雪花顏色,默認(rèn)是白色 */
snowFlake.addColorStop(.5, "rgba(255, 255, 255, 0.5)"); /* 若要改為其他顏色,請自行查 */
snowFlake.addColorStop(1, "rgba(255, 255, 255, 0)");    /* 找16進制的RGB 顏色代碼。 */
ctx.save();
ctx.fillStyle = snowFlake;
ctx.beginPath();
ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
ctx.fill();
ctx.restore();
};
/* 創(chuàng)建雪花-定義形狀 */
function createFlakes() { 

var maxFlake = this.maxFlake,
flakes = this.flakes = [],
canvas = this.canvas;
for (var i = 0; i < maxFlake; i++) { 

flakes.push(new flakeMove(canvas.width, canvas.height, this.flakeSize, this.fallSpeed))
}
}
/* 畫雪 */
function drawSnow() { 

var maxFlake = this.maxFlake,
flakes = this.flakes;
ctx = this.ctx, canvas = this.canvas, that = this;
/* 清空雪花 */
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (var e = 0; e < maxFlake; e++) { 

flakes[e].update();
flakes[e].render(ctx);
}
/* 一幀一幀的畫 */
this.loop = requestAnimationFrame(function () { 

drawSnow.apply(that);
});
}
/* 調(diào)用及控制方法 */
var snow = new snowFall({ 
maxFlake: 60});
snow.start();

在主題目錄下/layout/layout.ejs里添加如下代碼:

<!-- 雪花特效 -->
<% if (theme.snow.enable) { %>
<script src="<%-%20theme.jsDelivr.url%20%><%-%20url_for('/js/snow.js'%20)%20%>"></script>
<% } %>

在主題目錄下_config.yml里配置:

# 雪花特效
snow:
enable: true

添加櫻花飄落效果

在主題目錄下新增/source/js/sakura.js文件, 添加內(nèi)容:

var stop, staticx;
var img = new Image();
img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUgAAAEwCAYAAADVZeifAAAACXBIWXMAAACYAAAAmAGiyIKYAAAHG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NDFDMjQxQjYyNjIwNjgxMTgwODNEMjE2MDAzOTU1NDQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDozNDVjOWViOC04NDc4LTFkNDctOGRjMi0yZDkyOGNhYTYxZWQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjAzN2ZiMGItNTU5Mi0xYjRkLWJjZGQtOWU4NGExMDJiMGM2IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTA1LTA5VDE0OjQ5OjM3KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0wNS0wOVQxNDo1MToyNSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOC0wNS0wOVQxNDo1MToyNSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyMjVlZWE3LTEyY2QtMTY0NC04ZDAzLWFjOTE2ZTAxZDQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0idXVpZDoxRDIwNUFGNjZCRDlFNTExOUM5REMwMzg2RjlEQjFGNyIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphYmMzNjIzMy1hOWNkLWNiNDQtODViYi0zZTgyMjEwYmIxMjYiIHN0RXZ0OndoZW49IjIwMTgtMDUtMDlUMTQ6NTE6MjUrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YjAzN2ZiMGItNTU5Mi0xYjRkLWJjZGQtOWU4NGExMDJiMGM2IiBzdEV2dDp3aGVuPSIyMDE4LTA1LTA5VDE0OjUxOjI1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2Vx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";
function Sakura(x, y, s, r, fn) { 

this.x = x;
this.y = y;
this.s = s;
this.r = r;
this.fn = fn;
}
Sakura.prototype.draw = function (cxt) { 

cxt.save();
var xc = 40 * this.s / 4;
cxt.translate(this.x, this.y);
cxt.rotate(this.r);
cxt.drawImage(img, 0, 0, 40 * this.s, 40 * this.s)
cxt.restore();
}
Sakura.prototype.update = function () { 

this.x = this.fn.x(this.x, this.y);
this.y = this.fn.y(this.y, this.y);
this.r = this.fn.r(this.r);
if (this.x > window.innerWidth || this.x < 0 || this.y > window.innerHeight || this.y < 0) { 

this.r = getRandom('fnr');
if (Math.random() > 0.4) { 

this.x = getRandom('x');
this.y = 0;
this.s = getRandom('s');
this.r = getRandom('r');
} else { 

this.x = window.innerWidth;
this.y = getRandom('y');
this.s = getRandom('s');
this.r = getRandom('r');
}
}
}
SakuraList = function () { 

this.list = [];
}
SakuraList.prototype.push = function (sakura) { 

this.list.push(sakura);
}
SakuraList.prototype.update = function () { 

for (var i = 0, len = this.list.length; i < len; i++) { 

this.list[i].update();
}
}
SakuraList.prototype.draw = function (cxt) { 

for (var i = 0, len = this.list.length; i < len; i++) { 

this.list[i].draw(cxt);
}
}
SakuraList.prototype.get = function (i) { 

return this.list[i];
}
SakuraList.prototype.size = function () { 

return this.list.length;
}
function getRandom(option) { 

var ret, random;
switch (option) { 

case 'x':
ret = Math.random() * window.innerWidth;
break;
case 'y':
ret = Math.random() * window.innerHeight;
break;
case 's':
ret = Math.random();
break;
case 'r':
ret = Math.random() * 6;
break;
case 'fnx':
random = -0.5 + Math.random() * 1;
ret = function (x, y) { 

return x + 0.5 * random - 1.7;
};
break;
case 'fny':
random = 1.5 + Math.random() * 0.7
ret = function (x, y) { 

return y + random;
};
break;
case 'fnr':
random = Math.random() * 0.03;
ret = function (r) { 

return r + random;
};
break;
}
return ret;
}
function startSakura() { 

requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame;
var canvas = document.createElement('canvas'),
cxt;
staticx = true;
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
canvas.setAttribute('style', 'position: fixed;left: 0;top: 0;pointer-events: none;');
canvas.setAttribute('id', 'canvas_sakura');
document.getElementsByTagName('body')[0].appendChild(canvas);
cxt = canvas.getContext('2d');
var sakuraList = new SakuraList();
for (var i = 0; i < 50; i++) { 

var sakura, randomX, randomY, randomS, randomR, randomFnx, randomFny;
randomX = getRandom('x');
randomY = getRandom('y');
randomR = getRandom('r');
randomS = getRandom('s');
randomFnx = getRandom('fnx');
randomFny = getRandom('fny');
randomFnR = getRandom('fnr');
sakura = new Sakura(randomX, randomY, randomS, randomR, { 

x: randomFnx,
y: randomFny,
r: randomFnR
});
sakura.draw(cxt);
sakuraList.push(sakura);
}
stop = requestAnimationFrame(function () { 

cxt.clearRect(0, 0, canvas.width, canvas.height);
sakuraList.update();
sakuraList.draw(cxt);
stop = requestAnimationFrame(arguments.callee);
})
}
window.onresize = function () { 

var canvasSnow = document.getElementById('canvas_snow');
}
img.onload = function () { 

startSakura();
}
function stopp() { 

if (staticx) { 

var child = document.getElementById("canvas_sakura");
child.parentNode.removeChild(child);
window.cancelAnimationFrame(stop);
staticx = false;
} else { 

startSakura();
}
}

在主題目錄下/layout/layout.ejs里添加如下代碼:

<!-- 櫻花特效 -->
<% if (theme.sakura.enable) { %>
<script src="<%-%20theme.jsDelivr.url%20%><%-%20url_for('/js/sakura.js')%20%>"></script>
<% } %>

在主題目錄下_config.yml里配置:

# 櫻花特效
sakura:
enable: true

28. 鼠標(biāo)點擊愛心效果

鼠標(biāo)點擊樣式1

在主題目錄下/source/libs/others/clicklove.js文件中為鼠標(biāo)點擊愛心效果代碼.

!function(e,t,a){ 
function r(){ 
for(var e=0;e<n.length;e++)n[e].alpha<=0?(t.body.removeChild(n[e].el),n.splice(e,1)):(n[e].y--,n[e].scale+=.004,n[e].alpha-=.013,n[e].el.style.cssText="left:"+n[e].x+"px;top:"+n[e].y+"px;opacity:"+n[e].alpha+";transform:scale("+n[e].scale+","+n[e].scale+") rotate(45deg);background:"+n[e].color+";z-index:99999");requestAnimationFrame(r)}var n=[];e.requestAnimationFrame=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){ 
setTimeout(e,1e3/60)},function(e){ 
var a=t.createElement("style");a.type="text/css";try{ 
a.appendChild(t.createTextNode(e))}catch(t){ 
a.styleSheet.cssText=e}t.getElementsByTagName("head")[0].appendChild(a)}(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"),function(){ 
var a="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){ 
a&&a(),function(e){ 
var a=t.createElement("div");a.className="heart",n.push({ 
el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}),t.body.appendChild(a)}(e)}}(),r()}(window,document);

鼠標(biāo)點擊樣式2

在主題目錄下/source/js/wenzi.js文件中為鼠標(biāo)點擊愛心效果代碼.

/* 鼠標(biāo)點擊文字特效 */
var a_idx = 0;
jQuery(document).ready(function ($) { 

$("body").click(function (e) { 

// var a = new Array("❤富強❤","❤民主❤","❤文明❤","❤和諧❤","❤自由❤","❤平等❤","❤公正❤","❤法治❤","❤愛國❤","❤敬業(yè)❤","❤誠信❤","❤友善❤");
var a = new Array("富強", "民主", "文明", "和諧", "自由", "平等", "公正", "法治", "愛國", "敬業(yè)", "誠信", "友善");
var $i = $("<span></span>").text(a[a_idx]);
a_idx = (a_idx + 1) % a.length;
var x = e.pageX,
y = e.pageY;
$i.css({ 

"z-index": 
999999999999999999999999999999999999999999999999999999999999999999999,
"top": y - 20,
"left": x,
"position": "absolute",
"font-weight": "bold",
"color": "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) 
+ "," + ~~(255 * Math.random()) + ")"
});
$("body").append($i);
$i.animate({ 

"top": y - 180,
"opacity": 0
},
1500,
function () { 

$i.remove();
});
});
});

在主題目錄下/layout/layout.ejs里添加如下代碼:

<!-- 鼠標(biāo)點擊特效 -->
<% if (theme.wenzi.enable) { %>
<script src="<%-%20theme.jsDelivr.url%20%><%-%20url_for('/js/wenzi.js')%20%>"></script>
<% } %>

在主題目錄下_config.yml里配置:

# 鼠標(biāo)點擊特效
wenzi:
enable: true

29. 修改博客文章模板

為了新建文章方便,我們可以修改一下文章模板,可以將/scaffolds/post.md修改為如下代碼:

title: {
{ title }} 
date: {
{ date }} 
author: 
img: 
cover: false
coverImg: 
top: false
toc: true 
mathjax: false 
password: 
summary: 
keywords: 
tags: 
categories: 

30. 在線編輯hexo博客

hexo編輯文章時,其原生方式不便利,官網(wǎng)提供了一款插件hexo-admin界面化了markdown編輯器.

首先安裝hexo-admin插件

npm install --save hexo-admin

然后啟動 hexo s, 訪問 http://127.0.0.1:4000/crystalBlog/admin 就可方便快捷的進行博文編輯了.

編輯后還可以快速部署發(fā)布. 不過還是更喜歡在typora上面寫markdown語法, 如果部署在自己的服務(wù)器上面可以使用該功能, 部署在gitee或github上還是無法使用.

31. 站點統(tǒng)計不顯示問題

有時候請求busuanzi數(shù)據(jù)比較慢,然后瀏覽量和訪問人數(shù)就會隱藏,可能是默認(rèn)的,在matery.css中增加以下代碼可以讓它一直顯示.

#busuanzi_container_site_pv, #busuanzi_value_site_pv, #busuanzi_container_site_uv { 

display: inline !important;
}

32. 文章鏈接部分超長處理

/source/css/matery.css中增加以下代碼:

/*文章鏈接超長部分隱藏*/
.reprint__type { 

display: inline-block;
width: 100%;
overflow: hidden;
}

33. 靜態(tài)/動態(tài)彩帶, 背景canvas

背景靜態(tài)彩帶

主題目錄下的/layout/layout.ejs 文件主題目錄下_config.yml中靜態(tài)彩帶的配置項:

<!--背景靜止彩帶-->
<% if (theme.ribbon.enable) { %>
<% var ribbonSrc = theme.ribbon.clickChange ? theme.libs.js.ribbon : theme.libs.js.ribbonRefresh; %>
<script type="text/javascript" size="<%- theme.ribbon.size %>" alpha='<%- theme.ribbon.alpha %>'
zIndex="<%- theme.ribbon.zIndex %>" src="<%-%20theme.jsDelivr.url%20%><%-%20url_for(ribbonSrc)%20%>" async="async"></script>
<% } %>

主題目錄下_config.yml中靜態(tài)彩帶的配置項:

# 背景靜止彩帶.
ribbon:
enable: false  # 改為true即可開啟背景靜態(tài)彩帶
size: 150 # 彩帶大小, 默認(rèn): 90.
alpha: 0.6 # 彩帶透明度 (0 ~ 1), 默認(rèn): 0.6.
zIndex: -1 # 背景的z-index屬性,css屬性用于控制所在層的位置, 默認(rèn): -1.
clickChange: false  # 設(shè)置是否每次點擊都更換彩帶.

背景動態(tài)彩帶

主題目錄下的/layout/layout.ejs 文件主題目錄下_config.yml中動態(tài)彩帶的配置項:

<!--背景動態(tài)彩帶-->
<% if (theme.ribbon_dynamic.enable) { %>
<script type="text/javascript" src="<%-%20theme.jsDelivr.url%20%><%-%20url_for(theme.libs.js.ribbon_dynamic)%20%>" async="async"></script>
<% } %>

主題目錄下_config.yml中動態(tài)彩帶的配置項:

# 背景動態(tài)彩帶.
ribbon_dynamic:
enable: true # 改為true即可開啟背景動態(tài)彩帶

背景canvas

主題目錄下的/layout/layout.ejs 文件主題目錄下_config.ymlcanvas的配置項:

<!--背景靜止彩帶-->
<% if (theme.ribbon.enable) { %>
<% var ribbonSrc = theme.ribbon.clickChange ? theme.libs.js.ribbon : theme.libs.js.ribbonRefresh; %>
<script type="text/javascript" size="<%- theme.ribbon.size %>" alpha='<%- theme.ribbon.alpha %>'
zIndex="<%- theme.ribbon.zIndex %>" src="<%-%20theme.jsDelivr.url%20%><%-%20url_for(ribbonSrc)%20%>" async="async"></script>
<% } %>

主題目錄下_config.ymlcanvas的配置項:

#背景canvas-nest
canvas_nest:
enable: true
color: 0,0,255 # 線條顏色, 默認(rèn): '0,0,0' ;三個數(shù)字分別為(R,G,B),注意用,分割
pointColor: 0,0,255 # 交點顏色, 默認(rèn): '0,0,0' ;三個數(shù)字分別為(R,G,B),注意用,分割
opacity: 0.7 # 線條透明度(0~1), 默認(rèn): 0.5
zIndex: -1 # 背景的 z-index 屬性,css 屬性用于控制所在層的位置, 默認(rèn): -1.
count: 99 # 線條的總數(shù)量, 默認(rèn): 99

主題目錄下/layout/layout.ejs 是全局布局文件, 可以自己添加自定義效果, 方式同上面添加雪花飄落.

34. 提取相冊(壁紙)

新建相冊(壁紙)文件

hexo new page wallpaper

修改主題目錄下的_config.yml文件, 我的是提取到清單-相冊導(dǎo)航處.

Lists:  ##清單
url: /
icon: fas fa-list
children:
- name: 音樂
url: /musics
icon: fas fa-music
- name: 電影
url: /movies
icon: fas fa-film
- name: 閱讀
url: /books
icon: fas fa-book
- name: 壁紙
url: /wallpaper
icon: fas fa-image

修改站點 /galleries/index.md文件

---
title: 壁紙
date: 2019-02-04 21:35:22
layout: wallpaper
---

主題目錄下新建/layout/wallpaper.ejs文件,添加內(nèi)容如下:

<style type="text/css"> /* don't remove. */ .about-cover { 
 height: 75vh; } </style>
<%- partial('_partial/bg-cover') %>
<!--下面就是提取博客自帶相冊功能的代碼-->
<main class="content">
<% if (theme.myGallery && theme.myGallery.enable) { %>
<%- partial('_widget/my-gallery') %>
<% } %>
</main>
<% if (page.total > 1) { %>
<%- partial('_partial/paging') %>
<% } %>

同時注釋主題目錄下的/layout/about.ejs文件的如下部分:

<!--gallery功能遷移到[清單-相冊]導(dǎo)航處-->
<!--<% if (theme.myGallery && theme.myGallery.enable) { %> <%- partial('_widget/my-gallery') %> <% } %>-->

相冊讀取的圖片配置路徑在主題路徑下的_config.yml文件中:

# 在“關(guān)于”頁面配置"我的相冊"圖片,如果你不需要這些信息則可以將其設(shè)置為不激活或者將其刪除.
myGallery:
enable: true
data:
- /medias/featureimages/0.jpg
- /medias/featureimages/1.jpg
- /medias/featureimages/2.jpg

修改相冊布局, 找到/source/css/matery.css 文件,修改如下部分:

.my-gallery { 

margin: 4.5rem auto 1rem;
padding: 0 1.2rem; /*這是顯示寬度,前邊是頁面寬度,后邊是圖片寬度*/
max-width: 1100px;
/*position: relative;*/
}
.my-gallery .photo { 

margin: .5rem 0; /*這是上下兩行的行距*/
/*position: relative; overflow: hidden;*/
}
.my-gallery .photo img { 

width: 100%;
height: 200px; /*限制高度,使同行保持等高,不然會很亂*/
border-radius: 10px;
cursor: pointer;
}

35. 添加相冊列表

相冊列表可以參考博客的友情鏈接界面, 將友鏈信息存放在/source/_data/friends.json文件中, 然后hexo會按照friends.ejs模板文件里的結(jié)構(gòu)渲染出來友鏈列表. 效果如下:

原理其實就是三個a標(biāo)簽, 里面包含頭像, 地址等信息, 點擊后跳轉(zhuǎn)到對于的地址. 那么我們也可以自定義一個相冊列表的配置文件(galleries.json)和模板文件(galleries.ejs), 然后hexo讀取配置文件, 自動生成相冊列表界面, 如果可以這樣優(yōu)化, 后面新增相冊就只需要在配置文件galleries.json中維護相冊信息即可. (增刪改)

那我們說干就干, 下面開始咯.

添加清單-相冊菜單

這里要修改幾個文件:

主題目錄下的配置文件_config.yml ,不要跟站點根目錄下的同名文件搞混了,在menu下添加以下代碼:

menu: 
Lists:  ##清單
url: /crystal-blog
icon: fas fa-list
children:
# 此處省略其他菜單
- name: 壁紙
url: /wallpaper
icon: fas fa-image
- name: 相冊
url: /galleries
icon: fas fa-camera

在站點根目錄source下新建galleries目錄,然后在該目錄下新建index.md,就會生成index.html文件了

hexo new page "galleries"

修改/galleries/index.md文件, 指定布局界面:

---
title: 我的相冊
date: 2021-08-25 19:56:35
type: galleries
layout: galleries
---

添加相冊配置文件

在主題目錄下新建/source/_data/galleries.json文件, 按照自定義約定添加如下的相冊配置內(nèi)容(我維護了三個相冊):

[
{ 

"name": "博客背景圖",
"url": "/gallery2",
"cover": "https://www.bing.com/th?id=OHR.Mpumalanga_ZH-CN9666962271_tmb.jpg&rf=",
"description": "博客背景圖",
"photos": [
"https://www.bing.com/th?id=OHR.Mpumalanga_ZH-CN9666962271_tmb.jpg&rf=",
]
},
{ 

"name": "彭于晏",
"url": "/gallery0",
"cover": "https://uploadfile.bizhizu.cn/2016/0106/20160106033828391.jpg",
"description": "彭于晏寫生",
"photos": [
"http://i.52desktop.cn:81/upimg/allimg/20191204/2019124151645578778013.jpg",
"http://i.52desktop.cn:81/upimg/allimg/20191204/2019124151645687778016.jpg"
]
},
{ 

"name": "劉德華",
"url": "/gallery1",
"cover": "https://tu1.whhost.net/uploads/20181029/18/1540809870-NgSCnhWkcJ.jpg",
"description": "劉德華寫生",
"photos": [
"https://uploadfile.bizhizu.cn/2015/0306/20150306103233272.jpg",
"https://www.beihaiting.com/uploads/allimg/150401/10723-150401195426203.jpg"
]
}
]

添加相冊布局文件

在主題目錄下新建/layout/galleries.ejs模板文件, 參照friends.ejs文件修改后內(nèi)容如下:

<link rel="stylesheet" href="<%- theme.jsDelivr.url %><%- url_for(theme.libs.css.gallery) %>">
<%- partial('_partial/bg-cover') %>
<main class="content">
<div class="container">
<div class="title center-align" data-aos="zoom-in-up">
<i class="fas fa-camera"></i>&nbsp;&nbsp;<%- __('galleries') %>
</div>
<% if (site.data && site.data.galleries) { %>
<% var galleries = site.data.galleries; %>
<div class="gallery-wrapper row">
<% for (var i = 0, len = galleries.length; i < len; i++) { %>
<% var gallery = galleries[i]; %>
<div class="col s6 m4 l4 xl3 gallery-box">
<a href="./<%- gallery.url %>" class="gallery-item" data-aos="zoom-in-up">
<div class="gallery-cover-box">
</div>
<p class="gallery-name">
<%- gallery.name %>
</p>
</a>
</div>
<% } %>
</div>
<% } %>
</div>
</main>

相冊列表中的每個相冊都是一個<a></a>標(biāo)簽, 點擊單個相冊會跳轉(zhuǎn)到相冊圖片展示頁面, 在主題目錄下新建/layout/gallery.ejs, 這里我們可以參考壁紙my-gallery.ejs文件的布局和渲染方式, 優(yōu)化后的代碼如下:

<%- partial('_partial/bg-cover') %>
<%
var galleries = site.data.galleries;
var pageTitle = page.title;
var currentGallery = getCurrentGallery(galleries, pageTitle)
var photos = currentGallery.photos;
function getCurrentGallery(galleries, pageTitle) {
for (let i = 0; i < galleries.length; i++) {
if (galleries[i]['name'] == pageTitle) {
return galleries[i];
}
}
}
/***/
%>
<div id="myGallery" class="my-gallery">
<div class="title center-align" data-aos="zoom-in-up">
<p class="gallery-name">
<b><%- currentGallery.name %></b>
</p>
</div>
<div class="row">
<% if (photos) { %>
<% Object.keys(photos).forEach(function(photo) { %>
<div class="photo col s12 m6 l4" data-aos="fade-up">
<div class="img-item" data-src="<%- photos[photo] %>">
<img src="<%- theme.jsDelivr.url %><%- url_for(photos[photo]) %>" class="responsive-img">
</div>
</div>
<% }); %>
<% } %>
</div>
</div>
<script> $(function () { 
 let animateClass = 'animated pulse'; $('#myGallery .photo').hover(function () { 
 $(this).addClass(animateClass); }, function () { 
 $(this).removeClass(animateClass); }); }); </script>

添加相冊列表樣式

/layout/galleries.ejs模板文件模板引用了gallery.css樣式文件, 所以需要在主題目錄下新增/source/css/gallery.css文件, 添加內(nèi)容如下:

.gallery-wrapper { 

padding-top: 30px;
}
.gallery-wrapper .gallery-box { 

padding: 5px !important;
}
.gallery-wrapper .gallery-item { 

display: block;
overflow: hidden;
background-color: #fff;
padding: 5px;
padding-bottom: 0;
position: relative;
-moz-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
-webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
}
.gallery-cover-box { 

width: 100%;
padding-top: 60%;
text-align: center;
overflow: hidden;
position: relative;
background: center center no-repeat;
-webkit-background-size: cover;
background-size: cover;
}
.gallery-cover-box .gallery-cover-img { 

display: inline-block;
width: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.gallery-item .gallery-name { 

font-size: 14px;
line-height: 24px;
text-align: center;
color: #666;
margin: 0;
}
.waterfall { 

column-count: 3;
column-gap: 1em;
}
.photo-wrapper { 

padding-top: 20px;
}
.photo-item { 

display: block;
padding: 10px;
padding-bottom: 0;
margin-bottom: 14px;
font-size: 0;
-moz-page-break-inside: avoid;
-webkit-column-break-inside: avoid;
break-inside: avoid;
background: white;
-moz-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
-webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.22);
}
.photo-item img { 

width: 100%;
}
.photo-item .photo-name { 

font-size: 14px;
line-height: 30px;
text-align: center;
margin-top: 10px;
margin-bottom: 10px;
border-top: 1px solid #dddddd;
}
/*適配移動端布局*/
@media only screen and (max-width: 601px) { 

.waterfall { 

column-count: 2;
column-gap: 1em;
}
}

相冊列表效果

相冊展示效果

相冊密碼設(shè)置

給相冊設(shè)置密碼, 可以參考博客文章密碼訪問. 在主題目錄下的/layout/gallery.ejs文件中添加如下代碼:

<% if (theme.verifyPassword.enable) { 
 %>
<script src="<%- theme.jsDelivr.url %><%- url_for(theme.libs.js.crypto) %>"></script>
<script>
(function() { 

/*pwd是博客中配置的sha256加密后的密碼*/
let pwd = '<%- page.password %>';
if (pwd && pwd.length > 0) { 

if (pwd !== CryptoJS.SHA256(prompt('請輸入訪問本相冊的密
碼')).toString(CryptoJS.enc.Hex)) { 

alert('密碼錯誤!');
location.href = '<%- url_for("/galleries") %>';
}
}
})();
</script>
<% } %>

然后在需要設(shè)置密碼的gallery3相冊目錄下的/source/galleries/gallery3/index.md文件中設(shè)置password即可. 密碼需要使用SHA256加密.

36. 修改導(dǎo)航欄不透明

透明導(dǎo)航欄經(jīng)常給我造成閱讀障礙,可以設(shè)置不使用透明導(dǎo)航欄, 指定好看的顏色. 找到主題目錄下的/source/css/matery.css 文件,修改如下部分:

header .nav-transparent { 

background-color: transparent !important;
/*background-color: #000B3F;*/  /*修改導(dǎo)航欄不透明 #16103f #4cbf30 #7371BC*/
background-image: none;
box-shadow: none;
}

37. 添加快捷導(dǎo)航

在博客根目錄下的\source\_posts\navigate\index.md目錄下新建快捷導(dǎo)航:

hexo new page navigate

修改主題目錄下的_config.yml文件, 添加快捷導(dǎo)航菜單:

## 快捷導(dǎo)航
menu:
// .... 此處省略其他菜單
Navigate:
url: /navigate
icon: fas fa-location-arrow

修改站點 /navigate/index.md文件

---
title: 快捷導(dǎo)航
date: 2021-08-29 16:25:05
layout: navigate
---

主題目錄下新建/layout/navigate.ejs文件,添加內(nèi)容如下:

<div class="navi-height bg-cover pd-header">
<div class="link-box container">
<div class="baidu baidu-2 large-screen">
<form name="f" action="https://www.baidu.com/" target="_blank">
<div id="Select-2">
<div class="Select-box-2" id="baidu">
<ul>
<li class="this_s">百 度</li>
<li class="bing_s">必 應(yīng)</li>
<li class="google_s">谷 歌</li>
<li class="baidu_s">百 度</li>
</ul>
</div>
<input name="wd" id="kw-2" maxlength="100" autocomplete="off" type="text">
</div>
<div class="qingkong" id="qingkong" title="清 · 空">x</div>
<input value="搜 索" id="su-2" type="submit"/>
<ul class="keylist"></ul>
</form>
</div>
<div class="row tags-posts">
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">編程 · 學(xué)習(xí)</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">開源中國</a>
</li>
<li>
<a  class="link-3" target="_blank">HTML狗</a>
</li>
<li>
<a  class="link-3" target="_blank">中國大學(xué)慕課</a>
</li>
<li>
<a  class="link-3" target="_blank">慕課網(wǎng)</a>
</li>
<li>
<a  class="link-3" target="_blank">小程序</a>
</li>
<li>
<a  class="link-3" target="_blank">菜鳥教程</a>
</li>
<li>
<a  class="link-3" target="_blank">51CTO</a>
</li>
<li>
<a  class="link-3" target="_blank">實驗樓</a>
</li>
<li>
<a href="/posts/2d1a17c5.html" class="link-3" target="_blank">個人收藏頁</a>
</li>
</ul>
</div>
</div>
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">社區(qū) · Code</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">留言
</a>
</li>
<li>
<a  class="link-3" target="_blank">GitHub</a>
</li>
<li>
<a  class="link-3" target="_blank">Coding</a>
</li>
<li>
<a  class="link-3" target="_blank">掘金</a>
</li>
<li>
<a  class="link-3" target="_blank">碼云</a>
</li>
<li>
<a  class="link-3" target="_blank">CSDN</a>
</li>
<li>
<a  class="link-3" target="_blank">簡書</a>
</li>
<li>
<a  class="link-3" target="_blank">思否</a>
</li>
<li>
<a  class="link-3" target="_blank">云+社區(qū)
</a>
</li>
</ul>
</div>
</div>
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">實用 · 工具</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">Nice編輯器</a>
</li>
<li>
<a  class="link-3" target="_blank">谷歌翻譯</a>
</li>
<li>
<a  class="link-3" target="_blank">在線PS</a>
</li>
<li>
<a  class="link-3" target="_blank">思維導(dǎo)圖</a>
</li>
<li>
<a  class="link-3" target="_blank">超清壁紙</a>
</li>
<li>
<a  class="link-3" target="_blank">二維碼</a>
</li>
<li>
<a  class="link-3" target="_blank">音范思</a>
</li>
<li>
<a  class="link-3" target="_blank">谷歌插件</a>
</li>
<li>
<a  class="link-3" target="_blank">OW分發(fā)</a>
</li>
</ul>
</div>
</div>
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">娛樂 · 影視</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">京東</a>
</li>
<li>
<a  class="link-3" target="_blank">淘寶</a>
</li>
<li>
<a  class="link-3" target="_blank">天貓</a>
</li>
<li>
<a  class="link-3" target="_blank">騰訊視頻</a>
</li>
<li>
<a  class="link-3" target="_blank">愛奇藝</a>
</li>
<li>
<a  class="link-3" target="_blank">嗶哩嗶哩</a>
</li>
<li>
<a  class="link-3" target="_blank">網(wǎng)易云音樂</a>
</li>
<li>
<a  class="link-3" target="_blank">QQ音樂</a>
</li>
<li>
<a  class="link-3" target="_blank">酷狗音樂</a>
</li>
</ul>
</div>
</div>
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">資訊 · 趨勢</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">虎嗅</a>
</li>
<li>
<a  class="link-3" target="_blank">技術(shù)調(diào)查
</a>
</li>
<li>
<a  class="link-3" target="_blank">摸魚</a>
</li>
<li>
<a  class="link-3" target="_blank">少數(shù)派</a>
</li>
<li>
<a  class="link-3" target="_blank">WikeHom</a>
</li>
<li>
<a  class="link-3" target="_blank">
前端趨勢
</a>
</li>
<li>
<a  class="link-3" target="_blank">GitHub趨勢</a>
</li>
<li>
<a  class="link-3" target="_blank">編程趨勢</a>
</li>
<li>
<a  class="link-3" target="_blank">Google趨勢</a>
</li>
</ul>
</div>
</div>
<div class="col s12 m6 l4 friend-div" data-aos="zoom-in-up">
<div class="card">
<div class="jj-list-tit">搜索 · 其他</div>
<ul class="jj-list-con">
<li>
<a  class="link-3" target="_blank">谷歌鏡像</a>
</li>
<li>
<a  class="link-3" target="_blank">網(wǎng)盤搜索</a>
</li>
<li>
<a  class="link-3" target="_blank">音樂搜索</a>
</li>
<li>
<a  class="link-3" target="_blank">電影天堂</a>
</li>
<li>
<a  class="link-3" target="_blank">代碼圖片</a>
</li>
<li>
<a  class="link-3" target="_blank">Boos</a>
</li>
<li>
<a  class="link-3" target="_blank">圖標(biāo)庫</a>
</li>
<li>
<a  class="link-3" target="_blank">
在線工具
</a>
</li>
<li>
<a  class="link-3" target="_blank">中國色</a>
</li>
</ul>
</div>
</div>
</div>
<script> $(".Select-box ul").hover(function () { 
 $(this).css("height", "auto") }, function () { 
 $(this).css("height", "40px") }), $(".Select-box-2 ul").hover(function () { 
 $(this).css("height", "auto") }, function () { 
 $(this).css("height", "46px") }), $(".Select-box li").click(function () { 
 var t = $(this).attr("class"), s = $(this).html(); "baidu_s" == t && (t = "https://www.baidu.com/s", _name = "wd"), "google_s" == t && (t = "https://www.google.com/search", _name = "q"), "bing_s" == t && (t = "https://www.bing.com/search", _name = "q"), $(".baidu form").attr("action", t), $(".this_s").html(s), $("#kw").attr("name", _name), $(".Select-box ul").css("height", "40px") }), $(".Select-box-2 li").click(function () { 
 var t = $(this).attr("class"), s = $(this).html(); "baidu_s" == t && (t = "https://www.baidu.com/s", _name = "wd"), "google_s" == t && (t = "https://www.google.com/search", _name = "q"), "bing_s" == t && (t = "https://www.bing.com/search", _name = "q"), $(".baidu form").attr("action", t), $(".this_s").html(s), $("#kw-2").attr("name", _name), $(".Select-box-2 ul").css("height", "48px") }); $("#qingkong").click(function () { 
 $("input[ name='wd' ] ").val(""); }); let timer; function backgroundImgRandom() { 
 clearInterval(timer); timer = setInterval(function () { 
 // [0-9) $("body").css("background-image", "url(<%- theme.background.url[parseInt(Math.random() * 9)] %>"); }, 5000); } window.onload = backgroundImgRandom; </script>
</div>
</div>
<style> * { 
 margin: 0; padding: 0; font-family: consolas, hl, "微軟雅黑" } dd, dl, dt, form, h1, h2, h3, h4, h5, h6, li, p, ul { 
 margin: 0; padding: 0; font-size: 14px; font-weight: 400 } img { 
 border-style: none } li { 
 list-style: none; float: left } a { 
 text-decoration: none } .card { 
 background-color: rgba(25, 240, 229, 0); width: 96%; margin-left: 2% } .baidu { 
 float: left; margin-left: 100px } .baidu form { 
 position: relative } .Select-box ul { 
 height: 40px; position: absolute; left: -1px; top: 0; z-index: 9999; background: #FFF; border: 1px solid #ccc; border-top: none; overflow: hidden } .Select-box li { 
 width: 60px; line-height: 40px; font-size: 14px; color: #484848; border: 0; cursor: pointer } .Select-box li:hover { 
 background: #3385ff; color: #FFF } .Select-box .this_s { 
 color: #317ef3 } .Select-box .this_s:hover { 
 background: #FFF; color: #317ef3 } .qingkong { 
 position: absolute; right: 120px; top: 12px; width: 18px; height: 18px; background: rgba(0, 0, 0, .1); border-radius: 18px; line-height: 16px; color: #666; cursor: pointer; text-align: center; font-size: 14px; display: none; color: #881509; } .qingkong:hover { 
 background: rgba(0, 0, 0, .2) } .qingkong:active { 
 background: rgba(0, 0, 0, .3) } .baidu-2 { 
 width: 100%; height: 110px; margin: 0 auto; background: 0 0; padding-top: 50px } .baidu-2 form { 
 width: 520px; margin: 0 auto } .baidu-2 input { 
 padding: 13px 8px; opacity: .9; font-size: 15px } #Select-2 { 
 float: left } .Select-box-2 { 
 text-align: center; float: left; position: relative } .Select-box-2 ul { 
 height: 46px; position: absolute; left: 0; top: 1px; z-index: 9999; background: rgba(255, 255, 255, .9); border: 1px solid #ccc; border-top: none; overflow: hidden } .Select-box-2 li { 
 width: 60px; line-height: 46px; font-size: 15px; color: #484848; border: 0; cursor: pointer } .Select-box-2 li:hover { 
 background: #3385ff; color: #FFF } .Select-box-2 .this_s { 
 color: #317ef3 } .Select-box-2 .this_s:hover { 
 background: 0 0; color: #317ef3 } #kw-2 { 
 width: 335px; outline: 0; border: 1px solid #ccc; background: rgba(255, 255, 255, .2); color: #000; padding-left: 70px; font-weight: 700 } #su-2 { 
 width: 90px; background: #4e6ef2; border: none; border-top: #3385ff 1px solid; border-bottom: 1px solid #2d78f4; color: #FFF; cursor: pointer; outline: 0 } #su-2:hover { 
 background: #00f; border-bottom: 1px solid #00f } #su-2:active { 
 background: #00f; box-shadow: inset 1px 1px 3px #00f; -webkit-box-shadow: inset 1px 1px 3px #00f } #su-3 { 
 width: 90px; background: #00f; border: none; border-top: #3385ff 1px solid; border-bottom: 1px solid #2d78f4; color: #FFF; cursor: pointer; outline: 0 } .jj-list-tit { 
 font-size: 16px; line-height: 25px; color: #fff; width: 100%; padding-left: 38.5% } .jj-list-con { 
 overflow: hidden; margin: 0 auto } .jj-list-con li { 
 width: 31.333%; margin: 1% } .link-3 { 
 display: block; background: rgba(0, 0, 0, .35); color: #FFF; font-size: 13px; text-align: center; line-height: 35px; padding: 4px 0; border-radius: 2px; transition: all .2s } .link-3:hover { 
 background: rgba(0, 0, 0, .45); font-size: 15px; font-weight: 700 } @media only screen and (max-width: 584px) { 
 .navi-height { 
 height: 1300px } .link-box { 
 margin-top: 5% } .large-screen { 
 display: none } } @media only screen and (min-width: 584px) and (max-width: 993px) { 
 .navi-height { 
 height: 800px } .link-box { 
 margin-top: 5% } .large-screen { 
 display: none } } @media only screen and (min-width: 993px) { 
 .navi-height { 
 position: absolute; width: 100%; height: 100% } } .page-footer { 
 display: none } </style>

主題目錄下的/layout/_partial/navigation.ejs文件添加快捷導(dǎo)航菜單中文名稱. 以及移動客戶端文件/layout/_partial/mobile-nav.ejs一樣添加.

<%
var menuMap = new Map();
menuMap.set("Index", "首頁");
menuMap.set("Tags", "標(biāo)簽");
menuMap.set("Categories", "分類");
menuMap.set("Archives", "歸檔");
menuMap.set("About", "關(guān)于");
menuMap.set("Contact", "留言板");
menuMap.set("Friends", "友情鏈接");
menuMap.set("Lists", "清單");
menuMap.set("Navigate", "快捷導(dǎo)航");
var configRoot = config.root
configRoot = (configRoot === null || configRoot === undefined 
|| configRoot === '/') ? '' : configRoot;
%>

38. 添加音樂導(dǎo)航頁

在博客根目錄下新增\source\_posts\musics\index.md文件

hexo new page musics

主題目錄下的_config.yml文件中添加[清單-音樂]菜單:

menu:
// 此處省略其他菜單項
Lists:  ##清單
url: /
icon: fas fa-list
children:
- name: 音樂
url: /musics
icon: fas fa-music

修改音樂文件/musics/index.md指定布局配置:

---
title: musics
date: 2021-08-25 19:55:53
layout: musics
---

主題目錄下新增音樂布局文件 /layout/musics.ejs, 添加如下內(nèi)容:

<style type="text/css"> /* don't remove. */ .about-cover { 
 height: 75vh; } </style>
<%- partial('_partial/bg-cover') %>
<main class="content">
<% if (theme.mymusic.enable) { %>
<%- partial('_widget/mymusic') %>
<% } %>
</main>

主題目錄下新增自定義音樂播放器文件 /layout/_widget/mymusic.ejs, 添加如下內(nèi)容:

<link rel="stylesheet" href="<%- theme.jsDelivr.url %><%- url_for(theme.libs.css.aplayer) %>">
<style> .aplayer .aplayer-lrc p { 
 <%if(theme.mymusic.hideLrc){ 
%> display: none; <%}%> font-size: 12px; font-weight: 700; line-height: 16px !important; } .aplayer .aplayer-lrc p.aplayer-lrc-current { 
 <%if(theme.mymusic.hideLrc){ 
%> display: none; <%}%> font-size: 15px; color: <%- theme.mymusic.theme %>; } <%if(theme.mymusic.autoHide){ 
%> .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body { 
 left: -66px !important; } .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover { 
 left: 0px !important; } <%}%> </style>
<div class="<% if(!theme.mymusic.fixed) { %>music-player<% } %>">
<% if (!theme.mymusic.fixed && theme.mymusic.title.enable) { %>
<div class="title center-align">
<i class="fas fa-music"></i>&nbsp;&nbsp;<%- theme.mymusic.title.show %>
</div>
<% } %>
<div class="row">
<meting-js class="col l8 offset-l2 m10 offset-m1 s12" server="<%- theme.mymusic.server %>" type="<%- theme.mymusic.type %>" id="<%- theme.mymusic.id %>" fixed='<%- theme.mymusic.fixed ? 'true' : 'false' %>'
autoplay='<%- theme.mymusic.autoplay === true %>'
theme='<%- theme.mymusic.theme %>'
loop='<%- theme.mymusic.loop %>'
order='<%- theme.mymusic.order %>'
preload='<%- theme.mymusic.preload %>'
volume='<%- Number(theme.mymusic.volume) %>'
list-folded='<%- theme.mymusic.listFolded ? 'true' : 'false' %>'
>
</meting-js>
</div>
</div>
<script src="<%- theme.jsDelivr.url %><%- url_for(theme.libs.js.aplayer) %>"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>

主題目錄下配置文件_config.yml添加自定義音樂播放器配置:

# 自定義音樂組件, 展示在自己需要的頁面
mymusic:
enable: true
title: #非吸底模式有效
enable: true
show: 輕松時刻
autoHide: true    # hide automaticaly
server: netease   #require music platform: netease, tencent, kugou, xiami, baidu
type: playlist    #require song, playlist, album, search, artist
id: 4965675848     #require song id / playlist id (useful playlist 4965675848 2888085740)/ album id / search keyword
fixed: false       # 開啟吸底模式 true 播放器會在站點側(cè)邊,點擊會出現(xiàn)
autoplay: false   # 是否自動播放
theme: '#42b983'
loop: 'all'       # 音頻循環(huán)播放, 可選值: 'all', 'one', 'none'
order: 'random'   # 音頻循環(huán)順序, 可選值: 'list', 'random'
preload: 'auto'   # 預(yù)加載,可選值: 'none', 'metadata', 'auto'
volume: 0.7       # 默認(rèn)音量,請注意播放器會記憶用戶設(shè)置,用戶手動設(shè)置音量后默認(rèn)音量即失效
listFolded: false  # 列表默認(rèn)折疊
hideLrc: false     # 隱藏歌詞

39. 生成電影卡片

安裝hexo-tag-mtime插件

npm install hexo-tag-mtime --save

新增電影導(dǎo)航頁面, 博客根目錄下生成/source/movies/index.md文件:

hexo new page movies

/source/movies/index.md文件添加如下內(nèi)容:

---
title: 電影推薦
date: 2021-08-25 19:56:04
type: movies
---
## 精彩電影推薦
###  怒火·重案
{% mtime 263501 %}
###  再見,少年
{% mtime 259370 %}
### 流浪地球
{% mtime 218707 %}
id可以在時光網(wǎng) https://www.mtime.com 相應(yīng)的電影網(wǎng)址獲取

40. 添加夜間模式切換

在主題目錄下的/layout/layout.ejs文件添加夜間模式切換按鈕:

<!-- 切換夜間/白天模式按鈕 -->
<a onclick="switchNightMode()" id="sma"> <i class="fa fa-moon-o" id="nightMode" aria-hidden="true"></i> </a>

在主題目錄下的/source/js/matery.js文件添加js代碼:

// 深色模式按鈕設(shè)置
if (localStorage.getItem('dark') === '1') { 

document.body.classList.add('dark');
} else if (new Date().getHours() >= 22 || new Date().getHours() < 7) { 

/*定時開啟暗色模式<默認(rèn)晚22點至早6點默認(rèn)開啟>*/
// document.body.classList.add('dark');
// $("#nightMode").removeClass("fa-moon-o").addClass("fa-lightbulb");
} else if (matchMedia('(prefers-color-scheme: dark)').matches) { 

document.body.classList.add('dark');
}
// 深色模式設(shè)置
function switchNightMode() { 

var body = document.body;
if (body.classList.contains('dark')) { 

document.body.classList.remove('dark');
localStorage.setItem('dark', '0');
$('#nightMode').removeClass("fa-lightbulb").addClass("fa-moon-o");
return;
} else { 

document.body.classList.add('dark');
localStorage.setItem('dark', '1');
$('#nightMode').removeClass("fa-moon-o").addClass("fa-lightbulb");
return;
}
}
/*提醒開啟夜間模式功能*/
setTimeout(
function () { 

if ((new Date().getHours() >= 19 || new Date().getHours() < 7) && !$('body').hasClass('DarkMode')) { 

let toastHTML = '<span token operator">+ '<i class="fa fa-bell" aria-hidden="true"></i>晚上使用深色模式閱讀更好哦。(?▽?)/</span>'
M.toast({ 
html: toastHTML})
}
}, 2200);

在主題目錄下的/source/css/matery.css文件添加夜間模式切換的樣式:

/******夜間模式切換樣式 start*******/
/* 深色模式按鈕設(shè)置 */
#sma { 

background: #000;
width: 38px;
height: 38px;
display: block;
position: fixed;
border-radius: 50%;
right: 15px;
bottom: 170px;
padding-top: 15px;
margin-bottom: 0;
z-index: 998;
cursor: pointer;
}
#sma .fa-moon-o { 

position: absolute;
right: 8px;
bottom: 8px;
font-size: 1.48rem !important;
}
#sma .fa-lightbulb { 

position: absolute;
right: 13px;
bottom: 8px;
font-size: 1.5rem !important;
}
.fa-moon-o:before { 

content: "\f186";
}
.fa-comments:before { 

content: "\f086";
}
/* 深色模式設(shè)置 */ /* 字體顏色變灰白色 */
body.dark .fas, body.dark .title, body.dark .row .text, body.dark article .article-content .summary, body.dark .card .card-image .card-title, body.dark .fa-moon-o:before, body.dark .fa-lightbulb:before, body.dark article .article-tags .chip, body.dark .chip-container .tag-title, body.dark div.jqcloud a, body.dark .friends-container .tag-title, body.dark .frind-ship .title h1, body.dark .card .card-content p, body.dark .v[data-class=v] .vcount, body.dark .v[data-class=v] .vcount .vnum, body.dark pre code, body.dark h1, body.dark h2, body.dark h3, body.dark h4, body.dark h5, body.dark h6, body.dark li, body.dark p, body.dark header .side-nav .mobile-head .logo-name, body.dark header .side-nav .mobile-head .logo-desc, body.dark header .side-nav .menu-list a, body.dark .bg-cover .post-title, body.dark a { 

color: rgba(255, 255, 255, 0.6);
}
/* 背景顏色變灰色 */
body.dark .card, body.dark .block-with-text:after { 

background-color: #282c34;
}
/* 背景顏色變黑色 */
body.dark, body.dark .v[data-class=v] .vcount, body.dark #rewardModal .modal-content, body.dark .modal, body.dark header .side-nav, body.dark header .side-nav .menu-list .m-nav-show { 

background-color: #12121c;
/**因為我的背景圖導(dǎo)致部分頁面無法全部切換成深色背景, 需要取消背景圖片**/
background-image: url(#); 
}
/* 改變透明度 */
body.dark .aplayer { 

background: #2f3742 !important;
}
body.dark img, body.dark strong { 

filter: brightness(.7);
}
/******夜間模式切換樣式 end*******/

41. 添加valine評論功能

使用valine評論功能, 可以使用leanCloud國際版存儲評論數(shù)據(jù), 具體申請ID和KEY的教程如下:

文字教程: https://cndrew.cn/2020/04/10/hexo-shuoshuo/

B站視頻: https://www.bilibili.com/video/BV16A411b7UF

在主題目錄下創(chuàng)建/layout/_partial/valine.ejs文件, 添加如下內(nèi)容:

<style> .valine-card { 
 margin: 1.5rem auto; } .valine-card .card-content { 
 padding: 20px 20px 5px 20px; } #vcomments textarea { 
 box-sizing: border-box; background: url("<%- url_for(theme.valine.background) %>") 100% 100% no-repeat; } #vcomments p { 
 margin: 2px 2px 10px; font-size: 1.05rem; line-height: 1.78rem; } #vcomments blockquote p { 
 text-indent: 0.2rem; } #vcomments a { 
 padding: 0 2px; color: #4cbf30; font-weight: 500; text-decoration: none; } #vcomments img { 
 max-width: 100%; height: auto; cursor: pointer; } #vcomments ol li { 
 list-style-type: decimal; } #vcomments ol, ul { 
 display: block; padding-left: 2em; word-spacing: 0.05rem; } #vcomments ul li, ol li { 
 display: list-item; line-height: 1.8rem; font-size: 1rem; } #vcomments ul li { 
 list-style-type: disc; } #vcomments ul ul li { 
 list-style-type: circle; } #vcomments table, th, td { 
 padding: 12px 13px; border: 1px solid #dfe2e5; } #vcomments table, th, td { 
 border: 0; } table tr:nth-child(2n), thead { 
 background-color: #fafafa; } #vcomments table th { 
 background-color: #f2f2f2; min-width: 80px; } #vcomments table td { 
 min-width: 80px; } #vcomments h1 { 
 font-size: 1.85rem; font-weight: bold; line-height: 2.2rem; } #vcomments h2 { 
 font-size: 1.65rem; font-weight: bold; line-height: 1.9rem; } #vcomments h3 { 
 font-size: 1.45rem; font-weight: bold; line-height: 1.7rem; } #vcomments h4 { 
 font-size: 1.25rem; font-weight: bold; line-height: 1.5rem; } #vcomments h5 { 
 font-size: 1.1rem; font-weight: bold; line-height: 1.4rem; } #vcomments h6 { 
 font-size: 1rem; line-height: 1.3rem; } #vcomments p { 
 font-size: 1rem; line-height: 1.5rem; } #vcomments hr { 
 margin: 12px 0; border: 0; border-top: 1px solid #ccc; } #vcomments blockquote { 
 margin: 15px 0; border-left: 5px solid #42b983; padding: 1rem 0.8rem 0.3rem 0.8rem; color: #666; background-color: rgba(66, 185, 131, .1); } #vcomments pre { 
 font-family: monospace, monospace; padding: 1.2em; margin: .5em 0; background: #272822; overflow: auto; border-radius: 0.3em; tab-size: 4; } #vcomments code { 
 font-family: monospace, monospace; padding: 1px 3px; font-size: 0.92rem; color: #e96900; background-color: #f8f8f8; border-radius: 2px; } #vcomments pre code { 
 font-family: monospace, monospace; padding: 0; color: #e8eaf6; background-color: #272822; } #vcomments pre[class*="language-"] { 
 padding: 1.2em; margin: .5em 0; } #vcomments code[class*="language-"], pre[class*="language-"] { 
 color: #e8eaf6; } #vcomments [type="checkbox"]:not(:checked), [type="checkbox"]:checked { 
 position: inherit; margin-left: -1.3rem; margin-right: 0.4rem; margin-top: -1px; vertical-align: middle; left: unset; visibility: visible; } #vcomments b, strong { 
 font-weight: bold; } #vcomments dfn { 
 font-style: italic; } #vcomments small { 
 font-size: 85%; } #vcomments cite { 
 font-style: normal; } #vcomments mark { 
 background-color: #fcf8e3; padding: .2em; } #vcomments table, th, td { 
 padding: 12px 13px; border: 1px solid #dfe2e5; } table tr:nth-child(2n), thead { 
 background-color: #fafafa; } #vcomments table th { 
 background-color: #f2f2f2; min-width: 80px; } #vcomments table td { 
 min-width: 80px; } #vcomments [type="checkbox"]:not(:checked), [type="checkbox"]:checked { 
 position: inherit; margin-left: -1.3rem; margin-right: 0.4rem; margin-top: -1px; vertical-align: middle; left: unset; visibility: visible; } .v[data-class="v"] .vwrap .vheader .vinput { 
 width: 32%; border-bottom: 1px dashed #dedede; } </style>
<div class="card valine-card" data-aos="fade-up">
<div class="comment_headling">
<i class="fas fa-comments fa-fw" aria-hidden="true"></i>
<span>評論</span>
</div>
<div id="vcomments" class="card-content">
</div>
</div>
<script src="<%- theme.jsDelivr.url %><%- url_for('/libs/valine/av-min.js') %>"></script>
<script src="<%- theme.jsDelivr.url %><%- url_for(theme.libs.js.valine) %>"></script>
<script> let metaPlaceholder = <%- JSON.stringify(theme.valine.metaPlaceholder) %> ; //這里要換行 new Valine({ 
 el: '#vcomments', appId: '<%- theme.valine.appId %>', appKey: '<%- theme.valine.appKey %>', notify: '<%- theme.valine.notify %>' === 'true', verify: '<%- theme.valine.verify %>' === 'true', visitor: '<%- theme.valine.visitor %>' === 'true', avatar: '<%- theme.valine.avatar %>', pageSize: '<%- theme.valine.pageSize %>', lang: '<%- theme.valine.lang %>', placeholder: '<%= theme.valine.placeholder %>', meta: <%- '["' + theme.valine.guest_info.join('", "') + '"]' %>, recordIP: '<%- theme.valine.recordIP %>' === 'true', enableQQ: '<%- theme.valine.avatar %>', requiredFields: <%- '["' + theme.valine.guest_info.join('", "') + '"]' %>, master: <%- '["' + theme.valine.master.join('", "') + '"]' %>, friends: <%- '["' + theme.valine.friends.join('", "') + '"]' %>, tagMeta: <%- '["' + theme.valine.tagMeta.join('", "') + '"]' %>, metaPlaceholder: metaPlaceholder, }); document.body.addEventListener('click', function (e) { 
 if (e.target.classList.contains('vsubmit')) { 
 const email = document.querySelector('input[type=email]'); const nick = document.querySelector('input[name=nick]'); const reg = /^[A-Za-z0-9_-\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/; if (!email.value || !nick.value || !reg.test(email.value)) { 
 const str = `<div class="valert txt-center"><div class="vtext">請?zhí)顚懻_的昵稱和郵箱!</div></div>`; const vmark = document.querySelector('.vmark'); vmark.innerHTML = str; vmark.style.display = 'block'; e.stopPropagation(); setTimeout(function () { 
 vmark.style.display = 'none'; vmark.innerHTML = ''; }, 2500); } } }, true); </script>

然后在需要評論功能的頁面引用valine.ejs, 我的在留言版博客文章中添加了評論功能, 分別是主題目錄下的/layout/contact.ejs/layout/_partial/post-detail.ejs文件添加如下內(nèi)容:

<% if (theme.valine && theme.valine.enable) { %>
<%- partial('_partial/valine') %>
<% } %>

然后在主題目錄下的_config.yml文件中啟用valine評論功能, 并添加一部分valine.ejs中用到的自定義屬性.

# Valine 評論模塊的配置,默認(rèn)為不激活,如要使用,就請激活該配置項,并設(shè)置 appId 和 appKey.
valine:
enable: true
appId: NiVMV7aR8ipVDy9EywBYtLwI-MdYXbMMI
appKey: P7BGA1hMeBAFbHYz3dKY8doJ
notify: false # 是否開啟郵件提醒(https://valine.js.org/notify.html)
verify: true # 是否啟用防垃圾驗證
visitor: true
avatar: monsterid # 默認(rèn)頭像展示方式,小怪物 # 'mm' # Gravatar style : mm/identicon/monsterid/wavatar/retro/hide
pageSize: 10
placeholder: '填寫QQ號就能評論,快來一發(fā)吧~'  # Comment Box placeholder
/medias/comment_bg.png #背景圖
background: https://cdn.jsdelivr.net/gh/drew233/cdn/20200409110727.webp 
coolpushkey:
# 新增屬性 wang-qz
comment_count: true
enableQQ: true  # 強制QQ
recordIP: true
requiredFields: # 必須輸入的信息,默認(rèn) [昵稱, 郵箱, link]
- nick
- mail
guest_info: # 評論框展示的輸入項, 默認(rèn)[nick, mail, link], 可以設(shè)置不填某些選項
- nick
- mail
- link
master:
- e4de1f6da602d22e423d6dfb24611b6b  # md5加密后的博主郵箱 wang-qz@foxmail.com
metaPlaceholder:  # 輸入框的背景文字
nick: 昵稱/QQ號(必填)
mail: 郵箱(必填)
link: 網(wǎng)址(https://)
lang: zh-CN
tagMeta: # 評論標(biāo)簽要顯示的文字
- 博主
- 小伙伴
- 訪客
friends: # md5 加密后的小伙伴郵箱
- 410739a5ad278251b305dab085768c57 # 1848276756@qq.com
- 410739a5ad278251b305dab085768c57
- 410739a5ad278251b305dab085768c57

另外, valine.min.js 需要進行升級, 我使用的版本是 valine-1.4版本:

<script src="https://cdn.jsdelivr.net/gh/small-rose/small-rose.github.io/libs/valine/Valine.min.js"></script>

因為上面“valine.ejs文件中是引用的/lib/js/valine/valine.min.js`, 所以也可以下載下來替換該js文件.

下面這個版本也可以, 去gitHub克隆下來, 然后使用他的valine.min.js替換本地的即可.

https://github.com/LuckyZmj/LuckyBlog/blob/master/themes/matery/source/libs/valine/Valine.min.js

valine.ejs文件中是引用valine.min.js的方式需要在主題目錄下的_config.yml文件中搜索關(guān)鍵詞 libs, 找到 js , 在js引用配置的最后一行然后添加:

valine: /libs/valine/Valine.min.js 

這樣下面的引用方式就能找到/lib/js/valine/valine.min.js文件

<script src="<%- theme.jsDelivr.url %><%- url_for(theme.libs.js.valine) %>"></script>

42. 添加artitalk說說功能

參考資料: Hexo博客Matery主題添加ArtiTalk說說模塊

具體使用見artitalk官方文檔 , 發(fā)布說說的數(shù)據(jù)可以存儲在LeanCloud, 上面評論功能已經(jīng)提供了相關(guān)使用參考資料.

首先, 下載artitalk源碼

git clone git@github.com:ArtitalkJS/Artitalk.git

在主題目錄下新建/source/libs/artitalk文件夾, 找到剛才下載artitalk源碼,進入dist 目錄,里面有2個文件夾:css 和 js, 然后進行如下操作:

/Artitalk/dist/css/ 下的 artitalk.min.css 復(fù)制到主題目錄 /source/libs/artitalk下;

/Artitalk/dist/js/下的 artitalk.min.js 復(fù)制到主題目錄 /source/libs/artitalk下;
因為要和matery主題引入風(fēng)格保持一致, 修改主題配置_config.yml文件, 搜索關(guān)鍵詞libs,

找到css在最后一行添加:

artitalk: /libs/artitalk/artitalk.min.css

找到js, 在最后一行添加:

artitalk: /libs/artitalk/artitalk.min.js

我列一下最終效果,因為原來有很多,我就不全部列出了,只要知道最后一行加就可以了,注意對齊,如下:

libs:
css:
fontAwesome: /libs/awesome/css/all.css # V5.11.1
materialize: /libs/materialize/materialize.min.css # 1.0.0
artitalk: /libs/artitalk/artitalk.min.css # 最后一行添加
js:
jquery: /libs/jquery/jquery.min.js
materialize: /libs/materialize/materialize.min.js # 1.0.0
artitalk: /libs/artitalk/artitalk.min.js  # 最后一行添加

找到主題目錄下 /layout/_partial/head.ejs,在頭部引入css:

<link rel="stylesheet" type="text/css" href="<%- theme.jsDelivr.url %><%- url_for(theme.libs.css.artitalk) %>">

模塊準(zhǔn)備, 在主題目錄下新建一個/layout/artitalk.ejs文件, 添加如下內(nèi)容:

<style type="text/css"> /* don't remove. */ .about-cover { 
 height: 75vh; } </style>
<%- partial('_partial/bg-cover') %>
<main class="content">
<% if (theme.artitalk && theme.artitalk.enable) { %>
<%- partial('_widget/artitalk') %>
<% } %>
</main>

在主題目錄下新建一個/layout/_widget/artitalk.ejs文件, 在上面代碼中已經(jīng)引入了該文件, 文件的內(nèi)容如下:

<style type="text/css"> #artitalk_main .cbp_tmtimeline > li .cbp_tmlabel::after { 
 right: 100%; border: solid transparent; z-index: -1; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; border-right-color: #0bb7fbd6 ; border-width: 10px; top: 4px; } #pubShuo { 
 margin-right: 5px; } #operare_artitalk .shuoshuo_input_log { 
 outline-style: none; margin-top: 5px; border: 1px solid #ccc; border-radius: 6px; padding: 8px 16px; font-size: 12px; background-color: transparent; color: #0bb7fbd6; width: 70%; height: 28px; margin-left: 10px; } #artitalk_main { 
 margin-top: 5px; margin-left: 5%; margin-right: 5%; } #lazy { 
 margin-top: 40px; } </style>
<script src="<%- theme.jsDelivr.url %><%- url_for(theme.libs.js.artitalk) %>"></script>
<article id="articles11" class="container chip-container">
<div class="row ">
<div class=" card">
<div class="card-content">
<div class="tag-title center-align">
<i class="fas fa-pen-alt"></i> 說說
</div>
<div id="artitalk_main"></div>
</div>
</div>
</div>
</article>
<script> new Artitalk({ 
 appId: "<%= theme.artitalk.appId %>", appKey: "<%= theme.artitalk.appKey %>", <% if (theme.artitalk.serverURL) { 
 %> serverURL: "<%= theme.artitalk.serverURL %>", <% } %> <% if (theme.artitalk.lang) { 
 %> lang: "<%= theme.artitalk.lang %>", <% } %> <% if (theme.artitalk.pageSize) { 
 %> pageSize: "<%= theme.artitalk.pageSize %>", <% } %> <% if (theme.artitalk.shuoPla) { 
 %> shuoPla: "<%= theme.artitalk.shuoPla %>", <% } %> <% if (theme.artitalk.avatarPla) { 
 %> avatarPla: "<%= theme.artitalk.avatarPla %>", <% } %> <% if (theme.artitalk.motion == 0) { 
 %> motion: 0, <% } else { 
 %> motion: 1, <% } %> <% if (theme.artitalk.bgImg) { 
 %> bgImg: "<%= theme.artitalk.bgImg %>", <% } %> <% if (theme.artitalk.color1) { 
 %> color1: "<%= theme.artitalk.color1 %>", <% } %> <% if (theme.artitalk.color2) { 
 %> color2: "<%= theme.artitalk.color2 %>", <% } %> <% if (theme.artitalk.color3) { 
 %> color3: "<%= theme.artitalk.color3 %>", <% } %> <% if (theme.artitalk.cssUrl) { 
 %> cssUrl: "<%= theme.artitalk.cssUrl %>", <% } %> atEmoji: { 
 baiyan: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/baiyan.png", bishi: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/bishi.png", bizui: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/bizui.png", chan: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/chan.png", daku: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/daku.png", dalao: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/dalao.png", dalian: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/dalian.png", dianzan: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/dianzan.png", doge: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/doge.png", facai: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/facai.png", fadai: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/fadai.png", fanu: "https://cdn.jsdelivr.net/gh/Artitalk/Artitalk-emoji/fanu.png", }, }) </script>

在主題目錄下的_config.yml文件中添加如下配置:

# 說說 https://artitalk.js.org/
artitalk:
enable: true
appId: NiVMV7aR8ipVDy9EywBYtLwI-MdYXbMMI # leancloud的應(yīng)用appId
appKey: P7BGA1hMeBAFbHYz3dKY8doJ # leancloud的應(yīng)用appKey
serverURL: # #leancloud綁定的安全域名,使用國際版的話不需要填寫
lang: zh # 語言設(shè)置,zh為漢語,en為英語,es為西班牙語。默認(rèn)為漢語
pageSize: 6 # 每頁顯示說說的數(shù)量
shuoPla: '只有王子才能發(fā)布說說哦' # 在編輯說說的輸入框中的占位符
motion: 1 #加載動畫的開關(guān),1為開,0為關(guān),默認(rèn)為開
#說說輸入框背景圖片url
bgImg: https://cdn.jsdelivr.net/gh/drew233/cdn/20200409110727.webp 
avatarPla: https://cdn.jsdelivr.net/gh/small-rose/small-rose.github.io/medias/avatar.jpg #自定義頭像url的輸入框的占位符
color1: linear-gradient(45deg, rgb(109, 208, 242) 15%, rgb(245, 154, 190) 85%) #說說背景顏色1&按鈕顏色1
color2: linear-gradient(45deg, rgb(109, 208, 242) 15%, rgb(245, 154, 190) 85%) #說說背景顏色2&按鈕顏色2
color3: black #說說字體顏色

更多配置項參考官網(wǎng):配置項說明

最后創(chuàng)建頁面, 手工創(chuàng)建或者執(zhí)行hexo命令創(chuàng)建都可以.

hexo new page "artitalk"

在 hexo 的 source 目錄會生成一個 artitalk 文件夾,修改里面的 index.md :

---
title: artitalk
date: 2021-09-03 20:31:58
type: artitalk
layout: artitalk
---

主題目錄下的_config.yml文件配置菜單:

menu:
##關(guān)于
About:
url: /crystal-blog
icon: fas fa-rocket
children:
- name: 關(guān)于我
url: /about
icon: fas fa-user-circle
- name: artitalk
url: /artitalk
icon: fas fa-pen-alt

配色參考: https://colordrop.io/

43. 歸檔時間軸添加時間列表的切換

歸檔的布局文件是主題目錄下的/layout/archive.ejs, 原來里面的邏輯是以卡片的形式循環(huán)展示所有的博客文章. 具體代碼如下:

 <!--時間軸區(qū)域塊-->
<div id="cd-timeline" class="container">
<% page.posts.each(function(post) { %>
<div class="cd-timeline-block">
<%# year. %>
<% if (date(post.date, 'YYYY') != year) { %>
<% year = date(post.date, 'YYYY'); %>
<div class="cd-timeline-img year" data-aos="zoom-in-up">
<a href="<%- url_for('/archives/' + year) %>"><%- year %></a>
</div>
<% } %>
<%# month. %>
<% if (date(post.date, 'YYYY-MM') != month) { %>
<%
month = date(post.date, 'YYYY-MM');
var m = date(post.date, 'MM')
%>
<div class="cd-timeline-img month" data-aos="zoom-in-up">
<a href="<%- url_for('/archives/' + year + '/' + m) %>">
<%- m %></a>
</div>
<% } %>
<%# every day posts. %>
<div class="cd-timeline-img day" data-aos="zoom-in-up">
<span><%- date(post.date, 'YYYY-MM-DD').substring(8, 10) %></span>
</div>
<article class="cd-timeline-content" data-aos="fade-up">
<div class="article col s12 m6">
<div class="card">
<a href="<%- url_for(post.path) %>">
<div class="card-image">
<% if (post.img) { %>
<img src="<%- url_for(post.img) %>" class="responsive-img" alt="<%= post.title %>">
<% } else { %>
<%
featureimg =                                           featureImages[Math.abs(hashCode(post.title) 
% featureImages.length)];
%>
<img src="<%- theme.jsDelivr.url %> <%- url_for(featureimg) %>" class="responsive-img" alt="<%= post.title %>">
<% } %>
<span class="card-title"><%= post.title %>
</span>
</div>
</a>
<div class="card-content article-content">
<div class="summary block-with-text">
<% if (post.summary && post.summary.length > 0)
{ %>
<%- post.summary %>
<% } else { %>
<%- strip_html(post.content).substring(0, 
120) %>
<% } %>
</div>
<div class="publish-info">
<span class="publish-date">
<i class="far fa-clock fa-fw icon-date"></i>
<%= date(post.date, config.date_format) %>
</span>
<span class="publish-author">
<% if (post.categories && 
post.categories.length > 0) { %>
<i class="fas fa-bookmark fa-fw icon-category"></i>
<% post.categories.forEach(category => { 
%>
<a href="<%- url_for(category.path) %>" class="post-category">
<%- category.name %>
</a>
<% }); %>
<% } else if (post.author && 
post.author.length > 0) { %>
<i class="fas fa-user fa-fw"></i>
<%- post.author %>
<% } else { %>
<i class="fas fa-user fa-fw"></i>
<%- config.author %>
<% } %>
</span>
</div>
</div>
<% if (post.tags && post.tags.length) { %>
<div class="card-action article-tags">
<% post.tags.forEach(tag => { %>
<a href="<%- url_for(tag.path) %>">
<span class="chip bg-color">
<%= tag.name %></span></a>
<% }); %>
</div>
<% } %>
</div>
</div>
</article>
</div>
<% }); %>
</div>

我看到網(wǎng)上有些博客的歸檔是以時間列表方式展現(xiàn)的, 這樣對所有博客文章有更佳的查看體驗. 于是通過debug模式將網(wǎng)上大佬的博客效果代碼copy下來, 再經(jīng)過自己的修改后, 達到了想要的效果. 下面操作.

先添加時間列表時間軸的切換按鈕, 在主題目錄下的/layout/archive.ejs文件中添加如下代碼:

<div class="container">
<div class="card">
<div class="card-content">
<div class="tag-chips">
<span onclick="showTable()" id="sp-table" class="chip center-align waves-effect waves-light default" data-tagname="時間列表">時間列表
</span>
<span onclick="showTime()" id="sp-timeline" class="chip center-align waves-effect waves-light default" data-tagname="時間軸">時間軸
</span>
</div>
</div>
</div>
</div>

實現(xiàn)切換效果的js代碼:

<script>
function showTime() { 

$("#cd-timeline").show();
$("#cd-table").hide();
$("#sp-timeline").css('background', 'linear-gradient(to right, #4cbf30 0%, 
#0f9d58 100%)');
$("#sp-timeline").css('color', '#fff');
$("#sp-table").css('background', '#F9EBEA')
$("#sp-table").css('color', 'rgba(0,0,0,0.6)');
}
function showTable() { 

$("#cd-timeline").hide();
$("#cd-table").show();
$("#sp-table").css('background', 'linear-gradient(to right, #4cbf30 0%, 
#0f9d58 100%)');
$("#sp-table").css('color', '#fff');
$("#sp-timeline").css('background', '#F9EBEA')
$("#sp-timeline").css('color', 'rgba(0,0,0,0.6)');
}
</script>

切換到時間列表的代碼:

<div id="cd-table" class="container archive-container">
<% page.posts.each(function(post) { %>
<div class="card">
<div class="card-content">
<div class="archive">
<%# year. %>
<% if (date(post.date, 'YYYY') != year) { %>
<% year = date(post.date, 'YYYY'); %>
<h4 class="archive-year" id="<%- year %>"><%- year %>年
</h4>
<% } %>
<div class="articles">
<div class="article content>">
<div class="article-sort-post">
<div class="article-sort-item_title">
<a href="<%- url_for(post.path) %>">
<h5>
<i class="fa fa-clock">														 </i>
<time class="is-text-small" datetime="2021-08-20T20:20:00.000Z" itemprop="datePublished">
<%- date(post.date, 'YYYY-MM-DD') %>
</time>
</h5>
</a>
<h6 class="is-6">
<a href="<%- url_for(post.path) %>"></a>
<a href="<%- url_for(post.path) %>">
<%= post.title %></a>
</h6>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<% }); %>
</div>

查看我的效果:

Front-matter

Front-matter 選項詳解

Front-matter 選項中的所有內(nèi)容均為非必填的。但仍然建議至少填寫 titledate 的值。

配置選項 默認(rèn)值 描述
title Markdown 的文件標(biāo)題 文章標(biāo)題,強烈建議填寫此選項
date 文件創(chuàng)建時的日期時間 發(fā)布時間,強烈建議填寫此選項,且最好保證全局唯一
author _config.yml 中的 author 文章作者
img featureImages 中的某個值 文章特征圖
top true 推薦文章(文章是否置頂),如果 top 值為 true,則會作為首頁推薦文章
cover false 表示該文章是否需要加入到首頁輪播封面中
coverImg 表示該文章在首頁輪播封面需要顯示的圖片路徑,如果沒有,則默認(rèn)使用文章的特色圖片
password 文章閱讀密碼,如果要對文章設(shè)置閱讀驗證密碼的話,就可以設(shè)置 password 的值,該值必須是用 SHA256 加密后的密碼,防止被他人識破。前提是在主題的 config.yml 中激活了 verifyPassword 選項
toc true 是否開啟 TOC,可以針對某篇文章單獨關(guān)閉 TOC 的功能。前提是在主題的 config.yml 中激活了 toc 選項
mathjax false 是否開啟數(shù)學(xué)公式支持 ,本文章是否開啟 mathjax,且需要在主題的 _config.yml 文件中也需要開啟才行
summary 文章摘要,自定義的文章摘要內(nèi)容,如果這個屬性有值,文章卡片摘要就顯示這段文字,否則程序會自動截取文章的部
tags 文章標(biāo)簽,一篇文章可以多個標(biāo)簽
categories 文章分類,本主題的分類表示宏觀上大的分類,只建議一篇文章一個分類
keywords 文章標(biāo)題 文章關(guān)鍵字,SEO 時需要
reprintPolicy cc_by 文章轉(zhuǎn)載規(guī)則, 可以是 cc_by, cc_by_nd, cc_by_sa, cc_by_nc, cc_by_nc_nd, cc_by_nc_sa, cc0, noreprint 或 pay 中的一個

注意:

  1. 如果 img 屬性不填寫的話,文章特色圖會根據(jù)文章標(biāo)題的 hashcode 的值取余,然后選取主題中對應(yīng)的特色圖片,從而達到讓所有文章都的特色圖各有特色。

  2. date 的值盡量保證每篇文章是唯一的,因為本主題中 Gitalk 和 Gitment 識別 id 是通過 date 的值來作為唯一標(biāo)識的。

  3. 如果要對文章設(shè)置閱讀驗證密碼的功能,不僅要在 Front-matter 中設(shè)置采用了 SHA256 加密的 password 的值,還需要在主題的 _config.yml 中激活了配置。有些在線的 SHA256 加密的地址,可供使用:開源中國在線工具、chahuo、站長工具。

  4. 您可以在文章md文件的front-mater中指定reprintPolicy來給單個文章配置轉(zhuǎn)載規(guī)則.

最全示例

---
title: 基于Hexo的hexo-theme-matery主題搭建博客并優(yōu)化
date: 2019-10-03 14:25:00
author: 悟塵
img: /source/images/xxx.jpg
top: true
cover: true
coverImg: /images/1.jpg
password: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
toc: false
mathjax: false
summary: 這是你自定義的文章摘要內(nèi)容,如果這個屬性有值,文章卡片摘要就顯示這段文字,否則程序會自動截取文章的部分內(nèi)容作為摘要
categories: 工具
tags:
- blog
- hexo
---

總結(jié)

以上是生活随笔為你收集整理的hexo博客主题推荐_wordpress社交主题(Hexo系列)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

天天添夜夜操 | 日韩高清成人 | 日韩在线首页 | av电影不卡 | 亚洲视频一区二区三区在线观看 | 国产黄大片| 日本不卡一区二区 | 成人国产电影在线观看 | 美女黄频网站 | 国产 日韩 欧美 中文 在线播放 | 久久观看最新视频 | 亚洲精区二区三区四区麻豆 | 91九色视频在线观看 | 欧美另类69 | av资源网在线播放 | 高清久久久久久 | 亚洲成av人影院 | 婷婷六月丁 | 亚洲欧美国内爽妇网 | 国产精品1024 | 最近高清中文在线字幕在线观看 | 欧美日韩精品久久久 | 丁香av| 超碰伊人网 | 91资源在线视频 | 四虎影视精品 | 久久综合久久综合这里只有精品 | 久久婷婷影视 | 午夜视频在线观看一区二区三区 | 91在线www| 天天草av| 日日干日日色 | 狠狠久久伊人 | 成人免费观看网址 | 久久成人视屏 | 天天射夜夜爽 | 久久精美视频 | 视频一区久久 | 天天搞天天干 | 麻豆视频在线播放 | 国产精品第二十页 | 亚洲黄色精品 | 久草在线观看视频免费 | 免费亚洲黄色 | 成人av网站在线播放 | 色综合久久网 | 精品在线视频播放 | 成人理论在线观看 | av大片免费看 | 国产1区在线 | 综合天堂av久久久久久久 | 国产精品6999成人免费视频 | 一个色综合网站 | 中文字幕一二 | 超碰97在线资源 | 视频福利在线观看 | 天天草天天干天天 | 天天干天天操 | 欧美一区二区在线看 | 国产成人三级在线播放 | 激情视频二区 | 亚洲精品自拍 | 香蕉影院在线观看 | 2022久久国产露脸精品国产 | 久在线观看视频 | 人人干狠狠操 | 日韩三级中文字幕 | 黄色特级片 | www.888.av| 国产视频中文字幕 | 香蕉视频在线播放 | 国产亚洲成人精品 | 日韩在线免费视频观看 | av网站在线观看免费 | 国产资源精品在线观看 | 免费高清在线观看电视网站 | 亚洲韩国一区二区三区 | 欧美成a人片在线观看久 | 日韩精品视频免费在线观看 | 亚洲高清不卡av | 午夜精品一区二区三区在线 | 国产精品在线看 | 国产一级视频在线观看 | 91亚洲精品久久久久图片蜜桃 | 美女网站在线播放 | 国产精品免费久久久久 | 久久国产精品久久久 | 欧美少妇的秘密 | 亚洲精品乱码久久久久久久久久 | 国产精品欧美久久久久无广告 | 成 人 黄 色 免费播放 | 久久资源总站 | 久久99久久精品国产 | 天天天干天天天操 | 91成人精品一区在线播放69 | av综合在线观看 | 中文在线8资源库 | 日本在线视频网址 | 亚洲免费av在线 | 国产精品国产亚洲精品看不卡15 | 亚洲精品网站 | 免费男女羞羞的视频网站中文字幕 | 99精品国产99久久久久久福利 | 激情视频综合网 | 手机看片午夜 | 亚洲日本精品 | 91av在线国产 | 国外av在线 | 91在线视频观看免费 | 国产亚洲一区二区三区 | 精品久久美女 | 超碰精品在线观看 | 久久国内精品 | av资源在线看| 久久久久久久影院 | 91精品久久久久久久久久入口 | 四虎国产精品免费观看视频优播 | av中文字幕剧情 | 天天操天天摸天天射 | 久久99亚洲精品久久 | 久久99热精品| 麻豆传媒视频在线播放 | 91亚洲精品国偷拍自产在线观看 | 五月婷网站 | 黄色大片av | 伊人电影在线观看 | 婷婷六月天在线 | 日韩啪啪小视频 | 午夜精品福利影院 | 国产黄色片免费在线观看 | 欧美日本不卡高清 | 在线观看香蕉视频 | 免费av在线 | 精品视频免费看 | 中文字幕高清有码 | 成人国产在线 | 中文字幕在线视频免费播放 | 精品视频在线观看 | 99久久综合狠狠综合久久 | 日韩和的一区二在线 | 亚洲2019精品 | 国产喷水在线 | 日韩欧美视频一区二区三区 | 一区二区三区免费 | 国产群p | 成人在线一区二区三区 | 国产成人精品久久亚洲高清不卡 | 黄色软件在线观看 | 在线看成人片 | 色综合天天 | 中文乱码视频在线观看 | 这里只有精品视频在线观看 | 亚洲精品综合在线观看 | 欧美日韩一二三四区 | 国产理论免费 | 天天摸天天干天天操天天射 | av九九九 | 最新国产精品拍自在线播放 | 久久久影院一区二区三区 | 国产精品美女久久久久久2018 | 激情影音 | 精品视频在线视频 | 久久经典国产 | 欧洲精品码一区二区三区免费看 | 日韩电影中文,亚洲精品乱码 | 91黄色小网站 | 亚洲精品久久在线 | www色综合| 日韩区视频 | 韩国精品一区二区三区六区色诱 | 国产一区二区在线视频观看 | 久久久国产精品人人片99精片欧美一 | 在线中文字幕av观看 | 中文字幕av最新 | 狠狠操狠狠| 成人午夜精品 | 欧美精品久久久久久久久老牛影院 | 最近中文字幕大全中文字幕免费 | 91麻豆产精品久久久久久 | 狠狠操在线 | 国产美女主播精品一区二区三区 | 视频成人永久免费视频 | 成人av在线直播 | 97国产精品亚洲精品 | 蜜臀av.com | 91成人免费看片 | 日韩视频一区二区三区 | 激情欧美一区二区三区 | 欧美日韩视频在线观看免费 | 中文伊人 | 99精品视频在线 | 欧美伦理一区 | 美女久久久久久 | 中文国产成人精品久久一 | 亚洲精品国产精品国自产观看 | 久久久久久久久免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 在线观看黄色 | 欧美激情视频三区 | 九草视频在线观看 | 91男人影院 | 视频国产在线观看18 | 丰满少妇久久久 | 天天做天天爱天天综合网 | 午夜美女网站 | 久久国产精彩视频 | www.日日日.com | 国产美女主播精品一区二区三区 | 亚洲人人射 | 日日夜夜天天 | 亚洲精品视频大全 | 国产做爰视频 | 中文字幕在线视频国产 | 欧美日韩一区二区久久 | 能在线看的av | 99国产情侣在线播放 | 超碰99在线 | 一本一本久久a久久精品综合小说 | 久久精品官网 | 最近最新中文字幕视频 | 国产精品一区二区av麻豆 | 成人99免费视频 | 在线看免费| 婷婷色网站| 欧美日本日韩aⅴ在线视频 插插插色综合 | 91精选 | 伊人丁香 | 久久国产一区二区三区 | 国产精品 亚洲精品 | 日韩欧美一区二区三区在线观看 | 天天干天天操天天入 | 日韩精品视频在线免费观看 | 又色又爽又激情的59视频 | 久久久精品国产免费观看一区二区 | 久久99精品波多结衣一区 | 久久97精品 | 狠狠网亚洲精品 | 久久久久电影网站 | 麻豆小视频在线观看 | av在观看| 久久av影视 | 九九免费观看视频 | 在线观看av中文字幕 | 国产精品入口麻豆www | 日日夜夜网 | 日日精品| 欧美一级特黄高清视频 | 日韩av在线高清 | 中文字幕电影网 | 丁香 婷婷 激情 | 在线视频1卡二卡三卡 | 国产精品一区二区三区免费视频 | 在线不卡视频 | 精品久久久国产 | 在线看国产一区 | 香蕉影视在线观看 | 日本久久精 | 日韩在线三级 | 久久草在线免费 | 草久久久久久久 | 激情综合中文娱乐网 | 色网站在线看 | 五月天婷亚洲天综合网鲁鲁鲁 | 精品国产一区二区三区久久久 | 亚洲成人av一区 | 久久调教视频 | 中文在线免费观看 | 国产精品久一 | 日韩精品在线免费观看 | 久久夜色精品国产欧美乱极品 | 一区二区三区播放 | 久久久久久久久电影 | 日韩欧美xxxx | 91夜夜夜| 四虎成人精品永久免费av | 黄污视频网站 | 手机成人在线电影 | 欧美视频日韩视频 | 国产偷在线| 久久国产精品久久久久 | 久99久在线视频 | 在线观看免费一区 | 色在线视频网 | 天天色天天综合 | 最新国产精品亚洲 | 欧美 亚洲 另类 激情 另类 | 中文av在线天堂 | 亚洲专区在线播放 | 日韩视频在线观看视频 | 91九色网站 | 亚洲精品国精品久久99热一 | 天天操操操操操操 | 日韩av看片| 看黄色.com | 精品视频亚洲 | 能在线观看的日韩av | 久久五月精品 | 欧美激情综合网 | 亚洲精品91天天久久人人 | 国产精品av在线免费观看 | 亚洲精品一区二区18漫画 | 成人丝袜 | av高清一区二区三区 | av解说在线观看 | 久久久久久黄色 | 综合国产在线 | 国产成人一区二区在线观看 | 一区二区欧美在线观看 | 国产中文视| www.福利 | 色婷婷www | 天天色天天射天天综合网 | 波多野结衣电影一区二区三区 | 2023天天干 | 黄色免费在线看 | 色九色 | 美女国产精品 | 欧美日本不卡视频 | www天天干 | 精品欧美小视频在线观看 | 国内精品久久久久久 | 国产精品中文字幕在线 | 久久久久久久久久久高潮一区二区 | 亚洲久在线 | 三级av免费 | 激情文学综合丁香 | 久久精品视频免费观看 | 99精品在线观看视频 | 日批在线看 | 欧美精品久久久久久久久久白贞 | 国产黄免费看 | 国产一级片久久 | 四虎影视成人精品 | 国内成人av | 草久在线观看视频 | 久久99久久99精品 | 超级碰视频| 精品国产电影一区 | 亚洲高清国产视频 | 免费福利片 | 成人黄大片 | 国产黄色一级大片 | 91亚洲精品久久久久图片蜜桃 | 日韩欧美高清一区二区三区 | 国内精品久久久久影院优 | 在线观看你懂的网址 | 亚洲国产伊人 | 激情亚洲综合在线 | 天天射天天干天天爽 | 亚洲蜜桃av | 97视频免费在线看 | 免费精品在线视频 | 丁香婷婷色综合亚洲电影 | 久久99在线 | 国产精品丝袜久久久久久久不卡 | 欧美精品久久久久久久久免 | 人人舔人人射 | 中文字幕免费在线看 | 精品国产区 | 亚洲国产小视频在线观看 | 精品久久久久免费极品大片 | 91麻豆精品国产91久久久更新时间 | 欧美国产亚洲精品久久久8v | 亚洲精品视频免费看 | 亚洲理论影院 | 国产在线观看你懂得 | 91视频在线国产 | 久久毛片高清国产 | 国产啊v在线观看 | 中文国产成人精品久久一 | 天天天干天天射天天天操 | 久久草在线免费 | 色婷婷亚洲婷婷 | 亚洲电影院 | av日韩不卡| 99999精品视频 | 91精品国产一区二区三区 | 成人91av | 欧美精品一区二区蜜臀亚洲 | 久久亚洲日本 | 国产精品免费一区二区 | 国产探花视频在线播放 | 天天人人| 国产资源免费 | 成年人免费电影 | 99色精品视频| 97看片 | 免费a视频在线观看 | 探花视频在线观看+在线播放 | 一区二区中文字幕在线观看 | 99九九免费视频 | 中文在线中文资源 | 美女性爽视频国产免费app | av福利网址导航大全 | 久久精品一区二区三区国产主播 | 亚洲精品高清视频 | 国产在线色站 | 久久成人精品电影 | 精选久久| 国产高清在线永久 | 国产成人精品亚洲精品 | 91精品国产自产老师啪 | 国产一区二区三区在线 | 久久精品视频免费播放 | 天天弄天天干 | 一级黄色在线视频 | 日韩视频欧美视频 | 日韩网站在线观看 | 日韩欧美不卡 | 一区二区三区在线免费观看 | 亚洲精品中文在线观看 | 国产精品99久久免费黑人 | 探花系列在线 | 免费看黄色毛片 | 日韩高清观看 | 亚洲精品资源 | 97精品视频在线播放 | 91精品一| 国内精品美女在线观看 | 四虎影视8848dvd | 综合国产在线观看 | 久久99精品热在线观看 | 中文字幕首页 | 香蕉91视频| 色狠狠综合 | 日韩在线网 | 91香蕉视频黄 | 成人四虎影院 | 日韩a在线观看 | 久久人人爽人人人人片 | 中文字幕刺激在线 | 69av久久 | www激情网| 麻豆91在线观看 | 久草在线视频看看 | 日韩在线高清免费视频 | 狠狠狠狠狠操 | 国产在线高清精品 | 国内精品久久久久久久久 | 久久99久久99精品免视看婷婷 | 麻豆一二三精选视频 | 99久久精品免费看国产麻豆 | 97人人爽 | www.成人精品| 久久精品国产一区二区 | 精品福利在线视频 | 91免费看片黄 | 国产999| 91精品在线免费观看视频 | 在线亚洲成人 | 五月天色综合 | 亚洲理论在线观看 | 日日干夜夜爱 | 在线国产视频 | 亚洲精品视频一二三 | 久久久久久久免费观看 | 久久电影国产免费久久电影 | 久久人人爽| 在线免费观看黄 | 久草在线观看视频免费 | 天天爽夜夜爽精品视频婷婷 | 97超碰人人澡人人爱学生 | 午夜免费久久看 | 免费人做人爱www的视 | 亚洲一区二区三区在线看 | 国产精品九九久久久久久久 | 国产理伦在线 | 亚洲国内精品视频 | 久久精品视频在线观看 | 91大神一区二区三区 | 国产精品粉嫩 | 正在播放国产91 | 久久99久久99久久 | 五月婷av| 欧美日韩一级在线 | 日韩簧片在线观看 | 亚洲精品五月 | 国产亚洲高清视频 | 日韩一区二区三区免费视频 | 亚洲男模gay裸体gay | 久久99电影 | 色婷婷成人网 | 国产精品欧美日韩在线观看 | 91av电影在线观看 | 在线天堂中文在线资源网 | 日韩在线观看小视频 | av电影在线观看完整版一区二区 | 久草香蕉在线视频 | 91麻豆精品国产91久久久久久 | 成人久久久久久久久久 | 欧美性大战 | 91福利社在线观看 | 精品美女久久久久 | 天天躁天天狠天天透 | 四虎成人精品在永久免费 | 欧美亚洲一区二区在线 | 精品免费一区二区三区 | 久久久久国产视频 | 九九精品视频在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 色综合久久综合中文综合网 | 国产123av | 亚洲电影图片小说 | 欧美另类v | 99久久久国产免费 | 69国产成人综合久久精品欧美 | 一区二区伦理 | 国产在线观看你懂得 | 97精品国产一二三产区 | 91自拍视频在线 | 黄视频网站大全 | 免费大片av| 婷婷六月天天 | 欧美在线99 | 亚洲成人精品影院 | www.日韩免费 | 在线观看视频你懂的 | 99超碰在线观看 | 亚洲经典在线 | 人人爽夜夜爽 | 视频在线观看入口黄最新永久免费国产 | 中文字幕丰满人伦在线 | 欧美日韩免费看 | 国产精品 久久 | 成人黄色大片在线免费观看 | 亚洲精品xxx | 国产美女主播精品一区二区三区 | 国产精品久久久久9999吃药 | 欧美一性一交一乱 | 欧美日韩不卡一区二区三区 | 夜夜躁日日躁狠狠久久av | 四虎在线观看视频 | 婷婷色在线| 四虎精品成人免费网站 | 99精品在线视频观看 | 四虎免费在线观看 | 精品黄色片 | 国产一区二区不卡视频 | 在线高清一区 | 91香蕉视频在线 | 中文在线免费视频 | 午夜精品视频福利 | 欧美俄罗斯性视频 | 久久婷婷激情 | 夜夜爽夜夜操 | 久草在线免费看视频 | 日韩欧美精品一区二区三区经典 | 免费成人在线视频网站 | 在线视频一区二区 | 婷婷5月激情5月 | 久久久久久麻豆 | 91久色蝌蚪| 国产色一区 | 女人18片| 91高清视频在线 | 九九免费观看全部免费视频 | 免费亚洲视频在线观看 | 一区二区三区在线视频111 | 国产在线精品一区二区 | 国产日韩欧美在线看 | 久久精品国产精品亚洲 | 亚洲午夜精品久久久久久久久久久久 | 精品一区三区 | 青草视频在线 | 国产伦理一区二区三区 | 日韩久久一区 | 久久精品99久久 | 亚洲三级视频 | 97香蕉久久超级碰碰高清版 | 久久综合久久综合这里只有精品 | 中日韩欧美精彩视频 | 丁香六月网 | 久久国产精品一区二区 | 日日干天天爽 | 狠狠狠色狠狠色综合 | 日韩在线观看视频免费 | 伊人www22综合色 | 成人av在线网 | 中文字幕一区二 | 在线观看av中文字幕 | 日韩电影中文字幕在线观看 | 免费福利在线视频 | 色综合久久66 | 天天操人 | 国产精品一区二区视频 | 免费观看丰满少妇做爰 | 在线观看国产福利片 | 91九色精品国产 | 视频三区在线 | 国产麻豆视频网站 | 久久这里有 | 久久这里只有精品23 | 天堂av免费在线 | 激情视频亚洲 | 亚洲欧美日韩国产 | 日韩欧美一二三 | 免费一级黄色 | 欧美日韩精品在线免费观看 | 四虎永久免费网站 | 久久伊人国产精品 | av免费电影在线 | 这里有精品在线视频 | 在线国产黄色 | 天天色草 | 成人毛片在线观看 | 亚洲精品国产高清 | 欧美久久久| av网站有哪些 | 一级片色播影院 | 毛片无卡免费无播放器 | 国产精品国产三级国产aⅴ无密码 | 久久电影中文字幕视频 | 国产精品18久久久久久久网站 | 丝袜美腿在线视频 | 天天插综合网 | 奇米影视8888在线观看大全免费 | 亚洲视频中文 | 91精品国产自产在线观看永久 | 91视频电影 | 成年人在线观看免费视频 | 香蕉网在线观看 | 亚洲欧洲精品一区 | 激情综合电影网 | 久久99精品国产一区二区三区 | 精品中文字幕在线观看 | 中文字幕人成不卡一区 | 91在线成人| 国产系列 在线观看 | 中文区中文字幕免费看 | 国产欧美最新羞羞视频在线观看 | 成 人 黄 色 片 在线播放 | 亚洲高清久久久 | 国产91亚洲 | 黄色www | 成人国产精品av | 91精品国产网站 | 天天色天天综合网 | 国产精品9区 | 亚洲精品中文字幕在线观看 | 国产成人免费 | 免费视频区 | 97人人精品 | 精品一区电影国产 | 99视频黄 | 久久新视频 | 欧美一区二视频在线免费观看 | 日本三级国产 | 91在线免费播放视频 | 精品久久一区二区三区 | 成人网页在线免费观看 | 久久天天综合网 | 在线观看中文字幕dvd播放 | 中文字幕电影一区 | 天天操天天操天天 | 欧美日韩国产一区 | 国产精品久久久久久久久久不蜜月 | 99久久婷婷国产 | 99在线精品视频在线观看 | 69久久夜色精品国产69 | 中国一级片在线 | 一区二区理论片 | 免费高清无人区完整版 | 美女黄视频免费看 | 亚洲免费专区 | av在线成人 | 三级黄色在线观看 | 国产一级视屏 | 欧美日韩在线精品 | 麻豆久久精品 | 亚洲乱码精品久久久久 | 狠狠色噜噜狠狠狠狠2021天天 | 97超碰人人澡 | 久久人人爽爽人人爽人人片av | 国产精品久久久久永久免费 | 天天干天天射天天操 | 亚洲视频在线免费观看 | 天堂网中文在线 | 久久99国产精品久久99 | 久久亚洲婷婷 | 中文字幕色网站 | 中文字幕在线不卡国产视频 | 97超碰人人看 | 又黄又爽又色无遮挡免费 | 菠萝菠萝在线精品视频 | 国产免费午夜 | 看国产黄色大片 | 日韩一二三在线 | 五月婷网站 | 国产在线欧美在线 | 免费毛片一区二区三区久久久 | 亚洲人xxx | 亚洲精品视频在线免费播放 | 一本色道久久综合亚洲二区三区 | 亚洲乱码久久 | 日韩欧美一区二区三区在线观看 | 欧美亚洲另类在线视频 | 国产一区二区三区高清播放 | 久久尤物电影视频在线观看 | 亚洲一级国产 | 久久综合九色综合网站 | 国内视频| 欧美日韩视频观看 | 日韩av成人在线观看 | 久久毛片视频 | 天天射一射 | 国产精品av在线 | 久久精选| 99精品欧美一区二区三区黑人哦 | 中文字幕视频一区 | 国产亚洲精品精品精品 | 手机av在线免费观看 | 日韩电影在线观看一区 | 制服丝袜在线91 | 91精品一区二区三区蜜桃 | 日本一区二区不卡高清 | 午夜精品一二区 | 91探花在线| www.香蕉视频 | 美女视频永久黄网站免费观看国产 | 最新av网站在线观看 | 99热精品在线 | 24小时日本在线www免费的 | 久日精品 | 成人一区二区在线 | 黄色av高清 | 国产免费片 | 狠狠干我 | www.日本色| 狠狠躁日日躁狂躁夜夜躁 | 国产小视频在线看 | 日韩资源在线 | 亚洲成人av在线电影 | 国产精品一区二区吃奶在线观看 | 欧美精品一区二区三区四区在线 | 欧美精品小视频 | 一区二区三区播放 | 国产另类xxxxhd高清 | 欧美一级免费黄色片 | 日韩视频免费 | 日本三级在线观看中文字 | 96香蕉视频 | 免费看的黄色的网站 | 91网在线观看 | 手机看片 | 91av手机在线| 99视频偷窥在线精品国自产拍 | 日韩在线看片 | 免费a视频 | 69国产成人综合久久精品欧美 | 亚洲理论电影网 | 狠狠的干狠狠的操 | 国产高清久久 | 中文字幕视频 | 黄色大全视频 | 日本在线观看视频一区 | 国产精品99久久久久的智能播放 | 国产亚洲精品久久久久久大师 | 99视频精品 | 波多野结衣在线中文字幕 | 成年人在线 | 91av在线免费播放 | 国产在线播放一区二区 | 一二区精品 | 免费中午字幕无吗 | 亚洲区视频在线观看 | 色婷婷a | 日韩av免费一区 | 日韩婷婷 | 午夜精品一区二区三区可下载 | 狠狠躁日日躁夜夜躁av | 一区二区三区在线免费观看视频 | 久久久亚洲麻豆日韩精品一区三区 | 久久久久影视 | 丁香婷婷激情网 | 久久精精品 | 亚洲最新视频在线 | 91精品国产麻豆 | 日韩视频在线不卡 | 九九九热 | 欧美有色 | 欧美另类亚洲 | 国产高清中文字幕 | 亚洲区另类春色综合小说校园片 | 久久综合久久鬼 | 99久久这里有精品 | 日韩欧美电影网 | 久久久久9999亚洲精品 | 国产精品综合在线观看 | 黄色三级免费观看 | 97视频在线观看视频免费视频 | 91视频在线网址 | 成人av中文字幕在线观看 | 久草国产在线 | 国产高清在线免费观看 | 国产精品一区免费观看 | 国产成人精品一区二区三区福利 | 国产美女搞久久 | 69国产盗摄一区二区三区五区 | av一区二区在线观看中文字幕 | 在线看国产 | 制服丝袜天堂 | 免费黄在线看 | 亚洲 欧美 综合 在线 精品 | 手机在线永久免费观看av片 | 97人人澡人人爽人人模亚洲 | 黄污视频网站大全 | 蜜臀av性久久久久av蜜臀妖精 | 亚洲成av片人久久久 | 亚洲黄色av网址 | 久久人人97超碰国产公开结果 | 久久精品国产第一区二区三区 | 成人a毛片| 激情五月婷婷激情 | 中文字幕黄色av | 国产午夜三级 | 在线免费观看亚洲视频 | 免费看国产精品 | 久久精品成人 | 欧美狠狠色| 9在线观看免费高清完整 | 亚洲欧美国产精品 | 9ⅰ精品久久久久久久久中文字幕 | 欧美精品国产综合久久 | 欧美日韩国产精品一区二区亚洲 | 欧美色图亚洲图片 | 久久久精品高清 | 亚洲国产美女精品久久久久∴ | 亚洲成 人精品 | 精品视频 | 久久国产精品一国产精品 | 国产精品一区二区在线看 | 超碰公开在线 | 欧美韩日在线 | 精品亚洲va在线va天堂资源站 | 国产精品久久99 | 国内三级在线 | 97人人模人人爽人人喊中文字 | 国产激情小视频在线观看 | 日韩午夜精品福利 | 手机看片国产日韩 | 欧美激情精品久久久久久免费印度 | a色视频 | 91精品国产高清 | 操久久网 | 97精品超碰一区二区三区 | 免费毛片aaaaaa | 久草资源免费 | 日韩在线免费观看视频 | 亚洲色五月 | 激情欧美日韩一区二区 | 免费在线观看视频a | 97人人爽人人 | 久久久久久毛片精品免费不卡 | 久久伦理影院 | 久久精品免费看 | 日韩黄色大片在线观看 | 亚洲电影图片小说 | 91精品国产91 | 日韩一区二区三区在线观看 | 国产伦理一区二区三区 | 97人人爽 | 在线成人短视频 | 麻豆小视频在线观看 | 四虎欧美| 人人爱天天操 | 国产小视频在线播放 | 欧美专区亚洲专区 | 99精品国产在热久久 | 日韩电影在线视频 | 国产精品91一区 | 免费看一级片 | 成人毛片一区 | 久久久国产毛片 | 小草av在线播放 | 欧美日韩视频在线播放 | 精品国产免费人成在线观看 | 久青草视频在线观看 | 成年人黄色大片在线 | 国内精品在线一区 | 97超碰在线播放 | 欧美俄罗斯性视频 | 日韩.com| 精品福利在线 | 免费在线激情电影 | 韩日精品在线 | 97视频免费在线 | 精品久久久久久久久久国产 | 午夜三级大片 | 久久天天躁| 成人欧美一区二区三区黑人麻豆 | 午夜精品一区二区三区在线播放 | 日韩精品中文字幕在线不卡尤物 | 最近中文字幕在线中文高清版 | 亚洲国产天堂av | 国产精品久久久久久久久久三级 | 欧美日韩免费一区二区 | 成人影音av| 少妇bbbb搡bbbb搡bbbb | av天天澡天天爽天天av | www日| 成人av电影在线播放 | 亚洲精品视频国产 | 久久tv| 九九免费在线观看 | 草久在线观看视频 | 国产不卡av在线 | 91漂亮少妇露脸在线播放 | 国产丝袜 | 综合激情网 | 日韩高清毛片 | 国产91九色视频 | 国产精品爽爽爽 | 麻豆视频免费入口 | 九九久久婷婷 | 免费亚洲视频在线观看 | 在线视频精品播放 | 亚洲精品视频观看 | 免费看片日韩 | 久草色在线观看 | 丁香电影小说免费视频观看 | 国产淫a| 色婷婷五 | 欧美色就是色 | 免费网站看av片 | av再线观看 | 中文字幕在线观看完整版电影 | 成人免费在线视频观看 | 黄色成人av在线 | 欧美一级特黄高清视频 | 五月婷婷免费 | 天天色天天干天天色 | 亚洲一区二区三区四区精品 | 久久艹综合 | 人人精久 | 久久在线免费观看 | 毛片视频电影 | 韩日电影在线观看 | 精品国产人成亚洲区 | 国产97超碰| av网站在线观看免费 | 欧美精品在线观看免费 | 97超级碰碰碰视频在线观看 | 在线 影视 一区 | 亚洲一区二区高潮无套美女 | 日韩网站免费观看 | 成年人免费观看在线视频 | 亚洲精品中文在线资源 | 欧美日韩视频一区二区三区 | 成人黄色在线电影 | 久久草在线视频国产 | 免费试看一区 | 色五丁香 | 国产在线一区二区三区播放 | 亚洲欧美国产日韩在线观看 | 久久久久五月天 | 天天玩天天操天天射 | 黄色特级一级片 | 久久草精品 | 国产中文字幕在线视频 | 深爱综合网 | 97免费中文视频在线观看 | 亚洲成人国产精品 | 五月天亚洲精品 | 99视频在线观看视频 | 国产成人在线网站 | 最近中文字幕大全中文字幕免费 | 91麻豆精品国产午夜天堂 | 欧美久久综合 | 福利视频午夜 | 人人看人人 | 美女久久久久久久 | 日本在线观看一区 | 久久综合九色欧美综合狠狠 | 日韩免费三区 | 国产精品 国内视频 | www.伊人网| 亚洲 欧洲av | 精品一区二区av | 在线免费观看的av网站 | 久久久电影网站 | 国产高清在线观看 | 九色视频网址 | 国产偷在线 | 婷婷中文字幕综合 | 在线天堂视频 | 狂野欧美激情性xxxx | www色网站| 欧美大片大全 | 久久蜜桃av| 国产成人精品在线观看 | 中文字幕在线看片 | 日本在线视频一区二区三区 | 国产91精品一区二区 | 色婷婷综合久久久 | 99视频| 中文 一区二区 | 久久亚洲欧美日韩精品专区 | 国产精久久久 |