Blog的日志

Blog Record

  linkthis    2017-12-27    7508 words

本质是一个测试界面

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> &nbsp;
<i class="fa fa-calendar" aria-hidden="true"></i> &nbsp;
<i class="fa fa-pencil" aria-hidden="true"></i> &nbsp;

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:&quot;%Y %B&quot; %} {% assign prevyear = post.previous.date | date:&quot;%Y %B&quot; %} {% assign counter = counter | plus: 1 %} {% if thisyear!= prevyear %}
      <h3 class="archive"><i class="fa fa-list-ul" aria-hidden="true"></i>&nbsp;{{ thisyear }}&nbsp;<i class="fa fa-file-text-o" aria-hidden="true"></i>&nbsp;{{ 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>&nbsp;<time>{{ post.date | date:&quot;%m-%d %a&quot;}}</time>&nbsp;<i class="fa fa-archive" aria-hidden="true"></i>&nbsp;<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




Image of Wechat