本质是一个测试界面
2017.12.27
在捣鼓了几天终于弄出了一个半成品界面。之后将在此界面进行各种调试本blog随时都会因为误操作而下线。
缓慢填坑当中。
Disqus初步设置完成。
2017.12.28
Disqus在设置全局的disqus_username之后出现无法加载的问题,现已经采取智障方法解决。
2018.01.29
本bolg配置文件修改记录如下:
1.修改post.html内anchors.options
内的icon参数,移除标题之前的#锚点。
2.修改footer.html内的JS修复catalog显示异常的问题,修改代码如下:
1
2
3
4
5
6
// interop with multilingual
if ("{{ page.multilingual }}") {
_containerSelector = 'div.post-container.active'
} else {
_containerSelector = 'div.post-container'
}
移除if条件的双引号,避免语法错误。
3.修正运行台运行时提示Liquid语法错误的问题,修改代码如下:
1
{% if tag[1].size > {{site.featured-condition-size}} %}
移除page.html和post.html内三处的两层花括号。
4.修正友链打开方式,修改代码如下:
1
<a href="" target="_blank" rel="nofollow me noopener noreferrer">
使友链在新建页面当中打开。
在文章内直接书写带if标签的Liquid文本会引发错误,暂时无法解决。
2018.02.02
1.在post.html内引入文章字数统计代码,添加代码如下:
1
{{ page.content | strip_html | strip_newlines | remove: " " | size }}
注意两端应该添加双花括号。
2.为作者、日期、字数添加Font Awesome图标,使用代码如下:
1
2
3
<i class="fa fa-user" aria-hidden="true"></i>
<i class="fa fa-calendar" aria-hidden="true"></i>
<i class="fa fa-pencil" aria-hidden="true"></i>
3.修改AnchorJS代码,重新支持文章标题锚点的添加并修改图标。
放弃添加图片。
2018.02.07
1.修改Archives界面,改为以月份分组。
2.修复404界面跳转失败的问题。
3.添加了blog运行时间记录功能,所添加的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
window.setInterval('counter()',1000);
function counter(){
var date=new Date();
var startDate=new Date(2017,12,27,0,0,0);
var time=(date-startDate)/1000;
var day=Math.floor(time/(24*60*60));
var hour=Math.floor(time%(24*60*60)/(60*60));
var minute=Math.floor(time%(24*60*60)%(60*60)/60);
var second=Math.floor(time%(24*60*60)%(60*60)%60);
var str="本咸鱼的blog已经粘锅" + day + "天" + hour +"时" + minute + "分" + second + "秒了";
document.getElementById('count').innerHTML=str;
}
</script>
然后在适当的位置添加:
1
<span class="copyright text-muted" id="count"></span>
4.添加鼠标点击效果,代码如下:
1
2
3
<script type="text/javascript">
!function(e,t,a){function n(){c(".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;}"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText="left:"+d[e].x+"px;top:"+d[e].y+"px;opacity:"+d[e].alpha+";transform:scale("+d[e].scale+","+d[e].scale+") rotate(45deg);background:"+d[e].color+";z-index:99999");requestAnimationFrame(r)}function o(){var t="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement("div");a.className="heart",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(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)}function s(){return"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document);
</script>
5.通过不蒜子引入站点访客统计功能,添加代码:
1
2
<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
之后在对应位置加入:
1
2
3
<span id="busuanzi_container_site_uv">
本站访客数<span id="busuanzi_value_site_uv"></span>人次
</span>
此为站点的访问量uv统计方式。之后加入单篇文章统计:
1
2
3
<span id="busuanzi_container_page_pv">
本文总阅读量<span id="busuanzi_value_page_pv"></span>次
</span>
2018.02.08
由于技术水平太烂,通过jekyll-last-modified-at
插件引入文章最后更新时间的功能。在所需文章的对于位置插入:
1
{% last_modified_at %}
默认输出格式为:
1
"%d-%b-%y"
对应的日期格式可以自行调整。
2018.02.09
1.使用Cloudflare对blog所有资源进行强制缓存。
在Page Rules界面同一规则下添加如下缓存策略:
Cache Level
Browser Cache TTL
Edge Cache TTL
对应值可以根据情况调整和添加。Edge Cache TTL由于免费版限制最短只能为两个小时。
2.修复了Disqus short_name设置错误的问题,使其能够在正确的位置加载。
3.添加了点击加载Disqus的功能,提高页面加载效率,使用代码如下:
3.1.Disqus公用JS代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
var disqus = {
load : function disqus(){
var disqus_shortname = "{{site.disqus_username}}";
var disqus_identifier = "{{site.disqus_username}}/{{page.url}}";
var disqus_url = "{{site.url}}{{page.url}}";
if(typeof DISQUS !== 'object') {
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}());
$('#load-disqus').remove(); ///加载后移除按钮
}
}
}
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
3.2.加载按钮代码:
1
2
3
4
5
6
<hr />
<div class="comment" style="text-align:center;">
<button class="disbtn" button id="load-disqus" onclick="disqus.load();">
Load Disqus
</button>
</div>
3.3.CSS代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.disbtn {
display: inline-block;
padding: 0 20px;
font-size: 14px;
font-weight: 400;
color: #CCC;
background: #fff;
border: 0.8px solid #DDD;
text-decoration: none;
border-radius: 0;
transition-property: background-color;
transition-duration: 0.2s;
transition-timing-function: ease;
transition-delay: 0s;
line-height: 2;
}
.disbtn:hover {
border-color: #0085A1;
color: #fff;
background: #0085A1;
}
如此可以较为简单的解决加载速度的问题,如果需要实现完美的快速加载,则需要使用代理(有插件)或者Disqus API等方法没心情搞了。
经过反反复复的折腾,本blog已经修改的较为符合个人的使用习惯,之后很长一段时间不再会进行小修小补了。
2018.02.18
域名正式通过HSTS preload list
验证,将强制所有现代浏览器使用HTTPS。
2018.02.20
为HTML的script
标签添加data-cfasync="true"
属性,解决开启Cloudflare Rocket Loader后部分JS失效的问题。
2018.02.25
通过使用raw
标签解决在文章内书写部分标签时会被Liquid强制处理的问题。
2018.03.13
1.通过jekyll-sitemap
插件为blog增加站点地图。
2.移除script
标签内添加的data-cfasync="true"
属性,使用Rocket Loader的自动模式。
3.对sw.js进行修改并添加PWA文件,完成blog的PWA支持。
2018.03.23
1.对Archives显示效果进行调整,文章按月分类完整代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<ul>
{% for post in site.posts %} {% assign thisyear = post.date | date:"%Y %B" %} {% assign prevyear = post.previous.date | date:"%Y %B" %} {% assign counter = counter | plus: 1 %} {% if thisyear!= prevyear %}
<h3 class="archive"><i class="fa fa-list-ul" aria-hidden="true"></i> {{ thisyear }} <i class="fa fa-file-text-o" aria-hidden="true"></i> {{ counter }}</h3>
<hr />
<ul>
{% assign fli = forloop.index | minus: counter %} {% for post in site.posts limit: counter offset: fli %}
<li><i class="fa fa-calendar" aria-hidden="true"></i> <time>{{ post.date | date:"%m-%d %a"}}</time> <i class="fa fa-archive" aria-hidden="true"></i> <a href="{{ post.url }}">{{ post.title }}</a></li> {% endfor %}
</ul> {% assign counter = 0 %} {% endif %} {% endfor %}
</ul>
</div>
</div>
</div>
</html>
2.修正Google Analytics代码,使其统计全部访客页面加载时间:
1
ga('create', _gaId, {'siteSpeedSampleRate': 100});
2018.04.21
1.更换了部分CSS和JS的CDN,提高了国内加载速度。
2.更换了Blog的域名,并开启DNSSEC,保证Blog DNS解析正确。
3.对CSS的font-family
属性进行修改,保证各个平台字体效果的情况下尽可能不影响Blog加载速度。
2018.05.26
添加引用策略(Referrer Policy)配置
1.HTTP响应头
1
2
##Nginx
add_header Referrer-Policy "strict-origin-when-cross-origin";
2.META标签
1
<meta name="referrer" content="strict-origin-when-cross-origin">
2019.01.01
1.使用Minimal Google Analytics Snippet
,提高页面加载速度。
2.更新Blog代码,合并主线代码至V1.8.1。
本文最后更新时间为:2019-02-03-Sunday-03:22:20 PM