Butterfly主题个性化设置

鼠标彩虹星星跟随效果

鼠标彩虹星星跟随效果

  • 在themes/matery/source/js目录下新建cursor.js文件,将内容复制粘贴到cursor.min.js即可。

    1
    (function(){function t(){i(),a()}function i(){document.addEventListener("mousemove",o),document.addEventListener("touchmove",e),document.addEventListener("touchstart",e),window.addEventListener("resize",n)}function n(t){d=window.innerWidth,window.innerHeight}function e(t){if(t.touches.length>0)for(var i=0;i<t.touches.length;i++)s(t.touches[i].clientX,t.touches[i].clientY,r[Math.floor(Math.random()*r.length)])}function o(t){u.x=t.clientX,u.y=t.clientY,s(u.x,u.y,r[Math.floor(Math.random()*r.length)])}function s(t,i,n){var e=new l;e.init(t,i,n),f.push(e)}function h(){for(var t=0;t<f.length;t++)f[t].update();for(t=f.length-1;t>=0;t--)f[t].lifeSpan<0&&(f[t].die(),f.splice(t,1))}function a(){requestAnimationFrame(a),h()}function l(){this.character="*",this.lifeSpan=120,this.initialStyles={position:"fixed",top:"0",display:"block",pointerEvents:"none","z-index":"10000000",fontSize:"20px","will-change":"transform"},this.init=function(t,i,n){this.velocity={x:(Math.random()<.5?-1:1)*(Math.random()/2),y:1},this.position={x:t-10,y:i-20},this.initialStyles.color=n,console.log(n),this.element=document.createElement("span"),this.element.innerHTML=this.character,c(this.element,this.initialStyles),this.update(),document.body.appendChild(this.element)},this.update=function(){this.position.x+=this.velocity.x,this.position.y+=this.velocity.y,this.lifeSpan--,this.element.style.transform="translate3d("+this.position.x+"px,"+this.position.y+"px,0) scale("+this.lifeSpan/120+")"},this.die=function(){this.element.parentNode.removeChild(this.element)}}function c(t,i){for(var n in i)t.style[n]=i[n]}var r=["#D61C59","#E7D84B","#1B8798"],d=window.innerWidth,u=(window.innerHeight,{x:d/2,y:d/2}),f=[];t()})();
  • 然后再themes/matery/layout/layout.ejs文件内添加下面的内容:

    1
    <script src="/js/cursor.min.js"></script>
全局自定义字体

全局自定义字体

  • 将引用代码添加到 \Butterfly\source\css_global\index.styl 末尾即可。
  • 代码如下
    1
    2
    3
    4
    @font-face { 
    font-family:Pompiere;
    src: url(https://fonts.font.im/css?family=Pompiere)}
    body{font-family:'Pompiere', cursive;}
  • 使用说明:
    比如字体链接是https://fonts.font.im/css?family=Pompiere
    将链接末尾Pompiere分别添加到font-family:后面
修改鼠标样式

修改鼠标样式

全局音乐播放

Aplayer全局音乐播放

首页加载动画

首页加载动画

首页插件宠物

首页插件宠物

page界面底部footer改为透明颜色

page界面底部footer改为透明颜色

修改标题前图标为闪电

美化文章页面展示

  • 修改标题前图标为闪电
    1
    2
    title-prefix-icon:'\f0e7'
    title-prefix-icon-color: "#ffb821"
雪花背景特效

雪花背景特效

  • 在hexo\themes\butterfly\source\js中新建snow.js 文件,粘贴以下代码

  • 样式一:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    /*样式一*/
    (function($){
    $.fn.snow = function(options){
    var $flake = $('<div id="snowbox" />').css({'position': 'absolute','z-index':'9999', 'top': '-50px'}).html('&#10052;'),
    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 /* 定义密集程度,数字越小越密集 */
    });
    });
  • 样式二:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    /*样式二*/
    /* 控制下雪 */
    function snowFall(snow) {
    /* 可配置属性 */
    snow = snow || {};
    this.maxFlake = snow.maxFlake || 200; /* 最多片数 */
    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(){
    /* 创建画布 */
    snowCanvas.apply(this);
    /* 创建雪花形状 */
    createFlakes.apply(this);
    /* 画雪 */
    drawSnow.apply(this)
    }
    /* 创建画布 */
    function snowCanvas() {
    /* 添加Dom结点 */
    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坐标 */
    this.y = Math.floor(Math.random() * canvasHeight); /* y坐标 */
    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 /* 步数 */
    }
    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)
    }
    };
    /* 飞出边界-放置最顶端继续坠落 */
    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)"); /* 此处是雪花颜色,默认是白色 */
    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();
    };
    /* 创建雪花-定义形状 */
    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);
    });
    }
    /* 调用及控制方法 */
    var snow = new snowFall({maxFlake:60});
    snow.start();
  • 然后在hexo\themes\butterfly\layout\includes\layout.pug文件include ./sidebar.pug代码下添加:

    1
    2
    <!-- 雪花特效 -->
    <script type="text/javascript" src="\js\snow.js"></script>
  • 如果没有载入JQurey代码情况下,添加JQ代码即可

    1
    2
    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.js"></script>
    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
樱花背景特效

樱花背景特效

  • 在themes\Butterfly\layout\includes\layout.pug文件里添加

    1
    <script src="https://cdn.jsdelivr.net/gh/yremp/yremp-js@1.5/sakura.js"></script>
  • 樱花效果在移动设备不执行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    // 判断移动端设备
    browserRedirect();

    function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
    // 执行樱花效果
    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(); } }
    }
主页头图上升气泡效果

主页头图上升气泡效果

  • 在butterfly中的cdn-use—>js下面添加一行代码:

    1
    - https://cdn.jsdelivr.net/gh/sunchaser-lilu/sunchaser-cdn@master/js/circleMagic.min.js
  • 代码二:未测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    // 气泡
    function qipao() {
    $('#page-header').circleMagic({
    radius: 10,
    density: .2,
    color: 'rgba(255,255,255,.4)',
    clearOffset: 0.99
    });
    }! function(p) {
    p.fn.circleMagic = function(t) {
    var o, a, n, r, e = !0,
    i = [],
    d = p.extend({ color: "rgba(255,0,0,.5)", radius: 10, density: .3, clearOffset: .2 }, t),
    l = this[0];

    function c() { e = !(document.body.scrollTop > a) }

    function s() { o = l.clientWidth, a = l.clientHeight, l.height = a + "px", n.width = o, n.height = a }

    function h() {
    if (e)
    for (var t in r.clearRect(0, 0, o, a), i) i[t].draw();
    requestAnimationFrame(h)
    }

    function f() {
    var t = this;

    function e() { t.pos.x = Math.random() * o, t.pos.y = a + 100 * Math.random(), t.alpha = .1 + Math.random() * d.clearOffset, t.scale = .1 + .3 * Math.random(), t.speed = Math.random(), "random" === d.color ? t.color = "rgba(" + Math.floor(255 * Math.random()) + ", " + Math.floor(0 * Math.random()) + ", " + Math.floor(0 * Math.random()) + ", " + Math.random().toPrecision(2) + ")" : t.color = d.color }
    t.pos = {}, e(), this.draw = function() { t.alpha <= 0 && e(), t.pos.y -= t.speed, t.alpha -= 5e-4, r.beginPath(), r.arc(t.pos.x, t.pos.y, t.scale * d.radius, 0, 2 * Math.PI, !1), r.fillStyle = t.color, r.fill(), r.closePath() }
    }! function() {
    o = l.offsetWidth, a = l.offsetHeight,
    function() {
    var t = document.createElement("canvas");
    t.id = "canvas", t.style.top = 0, t.style.zIndex = 0, t.style.position = "absolute", l.appendChild(t), t.parentElement.style.overflow = "hidden"
    }(), (n = document.getElementById("canvas")).width = o, n.height = a, r = n.getContext("2d");
    for (var t = 0; t < o * d.density; t++) {
    var e = new f;
    i.push(e)
    }
    h()
    }(), window.addEventListener("scroll", c, !1), window.addEventListener("resize", s, !1)
    }
    }(jQuery);
    qipao()
自动更换随机背景

自动更换随机背景

  • 在主题配置butterfly.yml里的background:可以直接填写api接口,这里推荐使用岁月小筑大佬提供的API,实现背景自动更换
    1
    https://img.xjh.me/random_img.php?type=bg&ctype=nature&return=302
移动端优化

移动端优化

  • PC 端分类归档标签等是显示在右侧,移动端则在底部,与侧栏重复,因此去除分类标签归档个人信息,只保留网站统计。将以下代码添加Butterfly\source\css_third-party\normalize.min.css文件里即可。效果如图(补充:调整移动端底部网站资讯字体大小为 13px)

    1
    2
    3
    4
    5
    6
    7
    8
    /*移动端优化:去除归档、标签、最新文章、公告、、只保留网站统计*/
    @media screen and (max-width: 800px) {
    #aside_content
    div:not(:last-child) {
    display: none;
    font-size: 13px;
    }
    }
  • 手机端侧栏美化,缩小头像及菜单间距。路径 D:\blog\themes\Butterfly\source\css\mobile-sidebar.styl 下自行调整

  • 在路径 post.styl 下调整移动端.post_cover 圆角为 5px

调整移动端文章字体

调整移动端文章字体

  • 在\themes\Butterfly\source\css\var.styl 下自定义一个字体大小值,例如:$font-media-size = 13px,然后在 D:\anewblog\themes\Butterfly\source\css_global\index.styl 增加以下内容
    1
    2
    3
    @media screen and (max-width: $sm)
    body
    font-size: $font-media-size = 13px
网站底部设置已运行时间

网站底部设置已运行时间

  • 在themes/Butterfly/layout/includes/footer.pug 文件,在最后 span=theme.ICP.text 下一行添加以下内容:
  • 注意#running-time 要与上面的 if theme.ICP.enable 对齐!要将 Date.UTC(2020,01,03,0,0,0) 改为你网站的起始时间!
    1
    2
    3
    #running-time
    script.
    setInterval(()=>{let create_time=Math.round(new Date(Date.UTC(2020,01,03,0,0,0)).getTime()/1000);let timestamp=Math.round((new Date().getTime()+8*60*60*1000)/1000);let second=timestamp-create_time;let time=new Array(0,0,0,0,0);if(second>=365*24*3600){time[0]=parseInt(second/(365*24*3600));second%=365*24*3600;}if(second>=24*3600){time[1]=parseInt(second/(24*3600));second%=24*3600;}if(second>=3600){time[2]=parseInt(second/3600);second%=3600;}if(second>=60){time[3]=parseInt(second/60);second%=60;}if(second>0){time[4]=second;}currentTimeHtml='本站已安全运行 '+time[0]+' 年 '+time[1]+' 天 '+time[2]+' 时 '+time[3]+' 分 '+time[4]+' 秒';document.getElementById("running-time").innerHTML=currentTimeHtml;},1000);
修改文章透明度

修改文章透明度

  • 在Butterfly\source\css_layout\page.styl下修改代码
    1
    2
    3
    4
    5
    6
    7
    8
    .layout_post > #post,
    .layout_page > div:first-child:not(.recent-posts)
    padding: 50px 40px
    border-radius: 8px
    background: rgba(255,255,255,0.7);
    //background: $card-bg 注释掉这条,添加上面 background: rgba(255,255,255,0.7); 这条即可
    box-shadow: 0 4px 8px 6px rgba(7, 17, 27, .06)
    transition: all .3s
手机侧边栏默认不展开

手机侧边栏默认不展开

  • 在Butterfly\source\js下新建一个xxx.min.js文件,名字自定义就行,然后添加下面代码

    1
    2
    3
    4
    5
    6
    7
    var mobile_sidebar_menus = document.getElementById("mobile-sidebar-menus");
    var menus_item_child = mobile_sidebar_menus.getElementsByClassName("menus_item_child");
    var menus_expand = mobile_sidebar_menus.getElementsByClassName("expand");
    for (var i = 0; i < menus_item_child.length; i++) {
    menus_item_child[i].style.display = "none";
    menus_expand[i].className += " closed";
    }
  • 然后在主题配置文件引入代码

    1
    - <script src="js/xxx.min.js"></script>
黑暗模式下 顶部图 去除黑色浮块

黑暗模式下 顶部图 去除黑色浮块

  • 打开 source/css/_mode/darkmode.styl 找到如下字段

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #page-header
    &:before
    position: absolute
    top: 0
    left: 0
    display: block
    width: 100%
    height: 100%
    background-color: alpha($dark-black, .7)
    content: ''
  • 然后把 background-color: alpha($dark-black, .7) 注析掉。

首页分类卡片折叠

首页分类卡片折叠

  • 1.在Butterfly\source\js下新建一个(名称自定义).min.js文件添加下面代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    var card_category_list = document.getElementsByClassName(
    "card-category-list child"
    );
    var item = document.getElementsByClassName("card-category-list-item");
    function toggle(t) {
    var display = t.parentElement.nextSibling.style.display;
    if (display == "none") {
    t.parentElement.nextSibling.style.display = "block";
    t.parentElement.nextSibling.style.height = "100%";
    t.className = t.className.replace("fa-chevron-up", "fa-chevron-down");
    } else {
    t.parentElement.nextSibling.style.display = "none";
    t.className = t.className.replace("fa-chevron-down", "fa-chevron-up");
    }
    }

    for (var i = 0; i < card_category_list.length; i++) {
    card_category_list[i].style.display = "none";
    card_category_list[i].style.transition = "all 1s";
    card_category_list[i].previousSibling.innerHTML +=
    '<i class="fa fa-chevron-up menus-expand menus-closed" aria-hidden="true" style="margin-left:20px;" onclick="toggle(this)"></i>';
    }
  • 2.在Butterfly\source\css下新建一个(名称自定义).min.css文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #aside_content
    .card-archives
    ul.card-archive-list
    > .card-archive-list-item
    a
    span:first-child,
    #aside_content
    .card-categories
    ul.card-category-list
    > .card-category-list-item
    a
    span:first-child {
    width: auto;
    min-width: 50%;
    }
  • 最后在Butterfly配置文件inject:下添加两行代码

    1
    2
    - <link rel="stylesheet" href="/js/souyefenlei.min.css">
    - <script src="js/souyefenlei.min.js"></script>

3.0版本设置分类折叠

  • 在主题配置文件expand:设置为false,代码位置如下
    1
    2
    3
    4
    card_categories:
    enable: true
    limit: 8 # if set 0 will show all
    expand: false # none/true/false
首页底部页脚加上 GitHub badge

首页底部页脚加上 GitHub badge

  • 在 themes/Butterfly/source/css 文件夹新建 custom.css 文件,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    .github-badge {
    display:inline-block;
    border-radius:4px;
    text-shadow:none;
    font-size:13px;
    color:#fff;
    line-height:15px;
    margin-bottom:5px;
    }
    .github-badge a{
    display: inline-block;
    margin: 0 1px 5px;
    }
    .github-badge .badge-subject {
    display:inline-block;
    background-color:#4D4D4D;
    padding:4px 4px 4px 6px;
    border-top-left-radius:4px;
    border-bottom-left-radius:4px;
    }
    .github-badge .badge-value {
    display:inline-block;
    padding:4px 6px 4px 4px;
    border-top-right-radius:4px;
    border-bottom-right-radius:4px;
    }
    .github-badge .bg-brightgreen {
    background-color:#4DC820 !important;
    }
    .github-badge .bg-orange {
    background-color:#FFA500 !important;
    }
    .github-badge .bg-yellow {
    background-color:#D8B024 !important;
    }
    .github-badge .bg-blueviolet {
    background-color:#8833D7 !important;
    }
    .github-badge .bg-pink {
    background-color:#F26BAE !important;
    }
    .github-badge .bg-red {
    background-color:#e05d44 !important;
    }
    .github-badge .bg-blue {
    background-color:#007EC6 !important;
    }
    .github-badge .bg-lightgrey {
    background-color:#9F9F9F !important;
    }
    .github-badge .bg-grey, .github-badge .bg-gray {
    background-color:#555 !important;
    }
    .github-badge .bg-lightgrey, .github-badge .bg-lightgray {
    background-color:#9f9f9f !important;
    }
  • 编辑 themes\Butterfly\layout\includes\footer.pug 文件,插入以下代码:

  • 如代码错误尝试删除 if theme.footer.githubBadge.enable 里的.footer 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if theme.footer.githubBadge.enable
    .github-badge
    a(style="color: #fff" rel="license" href="https://hexo.io/" target="_blank" title="由 Hexo 强力驱动")
    span(class="badge-subject") Powered
    span(class="badge-value bg-blue") Hexo
    a(style="color: #fff" rel="license" href="https://gitee.com/" target="_blank" title="静态网页托管于 GitHub Pages 和 Coding Pages 和 Gitee Pages")
    span(class="badge-subject") Hosted
    span(class="badge-value bg-brightgreen") GitHub & Coding & Gitee
    a(style="color: #fff" rel="license" href="https://www.jsdelivr.com/" target="_blank" title="jsDelivr 提供 CDN 加速服务")
    span(class="badge-subject") CDN
    span(class="badge-value bg-orange") jsDelivr
    a(style="color: #fff" rel="license" href="https://jerryc.me" target="_blank" title="站点使用 Butterfly主题")
    pan(class="badge-subject") Theme
    span(class="badge-value bg-blue") Butterfly
    a(style="color: #fff" rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" title="本站点采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可")
    span(class="badge-subject")
    i(class="fa fa-copyright")
    span(class="badge-value bg-lightgrey") BY-NC-SA 4.0
  • 编辑 butterfly.yml 文件,在 ICP: 下面添加

    1
    2
    3
    # 是否开启 Badge
    githubBadge:
    enable: true
  • 在 butterfly.yml文件找到inject:>head: 后面添加

    1
    - <link rel="stylesheet" href="/css/custom.css">
背景全局平铺
  • 在 butterfly/layout/includes/header/index.pug 下找到如下代码

    1
    #nav(class=isHomeClass style=bg_img)
    1
    3.0版本代码是header#page-header(class=isHomeClass style=bg_img)
  • 完整代码

    1
    2
    3
    if !is_post()
    - var bg_img = 'background-color:transparent;'
    #nav(class=isHomeClass style=bg_img)
修改浏览器滚动条

修改浏览器滚动条

  • 在 Butterfly\source\css_global\index.styl 下找到如下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    *::-webkit-scrollbar
    width: 8px
    height: 8px

    *::-webkit-scrollbar-thumb
    background: $light-blue

    *::-webkit-scrollbar-track
    background-color: transparent
  • 替换成下面代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /* 滚动条 */
    ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    }

    ::-webkit-scrollbar-track {
    background-color: rgba(73, 177, 245, 0.2);
    border-radius: 2em;
    }

    ::-webkit-scrollbar-thumb {
    background-color: #e58a8a;
    background-image: -webkit-linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.4) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.4) 50%,
    rgba(255, 255, 255, 0.4) 75%,
    transparent 75%,
    transparent
    );
    border-radius: 2em;
    }

    ::-webkit-scrollbar-corner {
    background-color: transparent;
    }

    ::-moz-selection {
    color: #fff;
    background-color: #e58a8a;
    }
Banner头图设置背景视频
属性说明
autoplayautoplay如果出现该属性,则视频在就绪后马上播放。
controlscontrols如果出现该属性,则向用户显示控件,比如播放按钮。
heightpixels设置视频播放器的高度。
looploop如果出现该属性,则当媒介文件完成播放后再次开始播放。
mutedmuted规定视频的音频输出应该被静音。
posterURL规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。
preloadpreload如果出现该属性,则视频在页面加载时进行加载,并预备播放。
如果使用 “autoplay”,则忽略该属性。
srcurl要播放的视频的 URL。
widthpixels设置视频播放器的宽度。
  • 在 Butterfly\source\js新建video.js添加以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    /**
    * Created by Lete on 2020/6/16.
    */
    //判断移动端设备
    browserRedirect();

    function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
    var html = "<video loop autoplay style='height: 100%;width: 100%;object-fit: cover;'><source src='你的视频地址'></source></video>";
    /*添加video*/
    document.getElementById("nav").innerHTML += html;

    /*打字效果*/
    var subtitle = document.getElementById('subtitle')
    var i = 0;

    function typing() {
    var timer = 0;
    var str = '不要等到明天,今天就行动起来!!';
    if (i <= str.length) {
    subtitle.innerHTML = str.slice(0, i++)
    timer = setTimeout(typing, 300)

    } else {
    subtitle.innerHTML = str
    clearTimeout(timer)
    }
    }

    typing()
    }
    }
  • 然后在主题配置文件里找到 bottom: 添加下面代码

    1
    - <script src="js/video.js"></script>
  • JS文件可以添加自己的视频,或者在主题配置文件里default_top_img:下添加gif

    1
    2
    # if the banner of page not setting,it will show the top_img
    default_top_img: /img/xxxx.gif
主页昵称颜色修改

主页昵称颜色修改

  • 在 Butterfly\source\css\var.styl 找到 $light-grey = #EEEEEE

    1
    #EEEEEE修改为自己的颜色
  • 如果不想修改顶部导航栏颜色,就在 Butterfly\source\css_layout\head.styl 底部添加代码

    1
    2
    3
    4
    //头部颜色
    #page-header a {
    color: #e3fdfd;
    }
卖萌标题

添加卖萌标题

  • 在主题文件bottom:下添加
    1
    - <script src="https://cdn.jsdelivr.net/gh/lete114/CDN/Sum/title.js"></script>
文章侧边栏去掉滚动条

post 文章侧边栏去掉滚动条

  • 在layout/includes/sidebar.pug 找到以下代码

    1
    2
    3
    4
    if (page.encrypt == true)
    div.sidebar-toc__content.toc-div-class(style="display:none")!=toc(page.origin, {list_number: tocNumber})
    else
    div.sidebar-toc__content!=toc(page.content, {list_number: tocNumber})
  • 修改为

    1
    2
    3
    4
    if (page.encrypt == true)
    div.sidebar-toc__content.toc-div-class(style="display:none")!=toc(page.origin, {list_number: tocNumber})
    else
    div.sidebar-toc__content(style="overflow: hidden;")!=toc(page.content, {list_number: tocNumber})
隐藏内容

隐藏内容

  • inline代码
    1
    2
    3
    进来看看 {% hideInline 看什么看,查看答案,#FF7242,#fff %}

    你好 {% hideInline 看什么看 %}
  • 例子
    进来看看 看什么看

你好 看什么看

  • block代码
    1
    2
    3
    4
    查看答案
    {% hideBlock 查看答案 %}
    傻子,怎麼可能有答案
    {% endhideBlock %}

查看答案

1
2
3
4
查看答案
{% hideBlock 查看答案 %}
傻子,怎麼可能有答案
{% endhideBlock %}
文章字体圆点显示为数字

文章字体圆点显示为数字

1
2
3
4
5
<ol>
<li>你好!</li>
<li>看什么看</li>
<li>我很帅吗!!!</li>
</ol>
  1. 你好!
  2. 看什么看
  3. 我很帅吗!!!
跳动的图标

跳动的图标

  • 请自行查看开源作者教程
    1
    https://github.com/l-lin/font-awesome-animation
标签魔改

标签魔改

Valine修改博主标签

Valine修改博主标签

首页添加文章日历

文章日历

  1. 安装hexo-generator-calendar插件

    1
    npm install --save git://github.com/howiefh/hexo-generator-calendar.git
  2. calendar.js和languages.js文件,保存到themes\Butterfly\source\js目录,代码如下

    calendar.js代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    /**
    * Calendar - displays a calendar of the current month. Dates appear links if there are posts for that day.
    */

    (function($) {

    var aCalendar = function(language, options, object) {
    var now = new Date();
    var nDay = now.getDate();
    var nMonth = now.getMonth();
    var nYear = now.getFullYear();
    var dDay = nDay;
    var dMonth = nMonth;
    var dYear = nYear;
    var instance = object;
    var allPosts = null;
    var months = null;
    /* Current month's posts */
    var current = {
    posts: [],
    prev: null,
    next: null
    };
    var currentLanguage = 'en';

    initLanguage(language);

    var settings = $.extend({}, $.fn.aCalendar.defaults, typeof calLanguages === 'undefined' ? {} : calLanguages[currentLanguage], options);

    if (settings.root[0] !== '/') {
    settings.root = '/' + settings.root;
    }

    if (settings.root[settings.root.length - 1] !== '/') {
    settings.root += '/';
    }

    /**
    * Initial language.
    */
    function initLanguage(key) {
    if (key && typeof calLanguages !== 'undefined' && calLanguages[key]) {
    currentLanguage = key;
    }
    }

    /**
    * Click handler for next month arrow button.
    */
    function nextMonth() {
    if (dMonth < 11) {
    dMonth++;
    } else {
    dMonth = 0;
    dYear++;
    }

    draw();
    };

    /**
    * Click handler for previous month arrow button.
    */
    function previousMonth() {
    if (dMonth > 0) {
    dMonth--;
    } else {
    dMonth = 11;
    dYear--;
    }

    draw();
    };

    /**
    * Click handler for navigating to a month if there are posts.
    */
    function toPostsMonth(date) {
    if (date) {
    dYear = date.getFullYear();
    dMonth = date.getMonth();
    draw();
    }
    }

    /**
    * Load current month's posts.
    */
    function loadPosts() {
    if (settings.single) {
    loadAllPosts();
    } else {
    loadPostsByMonth();
    }
    }

    /**
    * Load all month's posts.
    */
    function loadAllPosts() {
    if (settings.url != null && settings.url != '') {
    if (allPosts === null) {
    $.ajax({
    url: settings.url,
    async: false,
    success: function(data) {
    allPosts = data;
    initMonths(Object.keys(allPosts));
    }
    });
    }

    if (allPosts !== null) {
    if (parse()) {
    current.posts = allPosts[dYear + '-' + (dMonth + 1)];
    }
    }
    }
    }

    /**
    * Load posts by the month.
    */
    function loadPostsByMonth() {
    if (months === null) {
    $.ajax({
    url: settings.root + 'list.json',
    async: false,
    success: function(data) {
    initMonths(data);
    }
    });
    }

    if (parse()) {
    $.ajax({
    url: settings.root + dYear + '-' + (dMonth + 1) + '.json',
    async: false,
    success: function(data) {
    current.posts = data;
    }
    });
    }
    }

    /**
    * Initial months array.
    */
    function initMonths(array) {
    months = array.map(function(item) {
    var ym = item.split('-');
    return new Date(Date.UTC(+ym[0], +ym[1] - 1));
    });
    }

    /**
    * Parse posts month array, and set current.next and current.prev.
    *
    * @return if there are posts in this month, return true. ortherwise return false.
    */
    function parse() {
    var time = Date.UTC(dYear, dMonth);

    if (months === null || months.length === 0) {
    return false;
    }

    //If no posts in the current month, and before (or after) the current month yet not published articles, then the response to click previous month's (or next month's) event don't need to parse months array
    if (current.posts.length === 0 && (current.prev === null && current.next !== null && current.next.getTime() > time || current.next === null && current.prev !== null && current.prev.getTime() < time)) {
    return false;
    }

    current.posts = [];

    for (var i = 0; i < months.length; i++) {
    var cTime = months[i].getTime();
    if (time === cTime) {
    current.prev = i === 0 ? null : months[i - 1];
    current.next = i === months.length - 1 ? null : months[i + 1];
    return true;
    } else if (time < cTime) {
    current.prev = i === 0 ? null : months[i - 1];
    current.next = months[i];
    break;
    } else {
    current.prev = months[i];
    current.next = null;
    }
    }

    return false;
    }

    /**
    * Format date object.
    */
    function simpleDateFormat(date, fmt) {
    var o = {
    'LMM+': settings.months[date.getMonth()],
    'MM+': date.getMonth() + 1
    };

    if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (k === 'LMM+') ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
    }
    }

    return fmt;
    }

    /**
    * Draw calendar.
    *
    */
    function draw() {
    loadPosts();
    var dWeekDayOfMonthStart = new Date(dYear, dMonth, 1).getDay() - settings.weekOffset;
    if (dWeekDayOfMonthStart <= 0) {
    dWeekDayOfMonthStart = 6 - ((dWeekDayOfMonthStart + 1) * -1);
    }

    var dLastDayOfMonth = new Date(dYear, dMonth + 1, 0).getDate();
    var dLastDayOfPreviousMonth = new Date(dYear, dMonth, 0).getDate() - dWeekDayOfMonthStart + 1;

    var cHead = $('<div/>').addClass('cal-head');
    var cNext = $('<div/>');
    var cPrevious = $('<div/>');
    var cTitle = $('<div/>').addClass('cal-title');
    cPrevious.html(settings.headArrows.previous);
    cNext.html(settings.headArrows.next);
    curDate = new Date(Date.UTC(dYear, dMonth));
    if (current.posts.length === 0) {
    cTitle.html(simpleDateFormat(curDate, settings.titleFormat));
    } else {
    cTitleLink = $('<a/>').attr('href', simpleDateFormat(curDate, settings.titleLinkFormat))
    .attr('title', simpleDateFormat(curDate, settings.postsMonthTip))
    .html(simpleDateFormat(curDate, settings.titleFormat));
    cTitle.html(cTitleLink);
    }

    cPrevious.on('click', previousMonth);
    cNext.on('click', nextMonth);

    cHead.append(cPrevious);
    cHead.append(cTitle);
    cHead.append(cNext);

    var cBody = $('<table/>').addClass('cal');

    var dayOfWeek = settings.weekOffset;
    var cWeekHead = $('<thead/>');
    var cWeekHeadRow = $('<tr/>');
    for (var i = 0; i < 7; i++) {
    if (dayOfWeek > 6) {
    dayOfWeek = 0;
    }

    var cWeekDay = $('<th/>').attr('scope', 'col').attr('title', settings.dayOfWeek[dayOfWeek]);
    cWeekDay.html(settings.dayOfWeekShort[dayOfWeek]);
    cWeekHeadRow.append(cWeekDay);
    dayOfWeek++;
    }

    cWeekHead.append(cWeekHeadRow);
    cBody.append(cWeekHead);

    var cFoot = $('<tfoot/>');
    var cFootRow = $('<tr/>');
    var cPrevPosts = $('<td/>').attr('colspan', 3);
    var cPad = $('<td/>').html('&nbsp;');
    var cNextPosts = $('<td/>').attr('colspan', 3);
    if (current.prev) {
    cPrevPosts.html(settings.footArrows.previous + settings.months[current.prev.getMonth()])
    .addClass('cal-foot')
    .attr('title', simpleDateFormat(current.prev, settings.postsMonthTip));
    }

    if (current.next) {
    cNextPosts.html(settings.months[current.next.getMonth()] + settings.footArrows.next)
    .addClass('cal-foot')
    .attr('title', simpleDateFormat(current.next, settings.postsMonthTip));
    }

    cPrevPosts.on('click', function() {
    toPostsMonth(current.prev);
    });

    cNextPosts.on('click', function() {
    toPostsMonth(current.next);
    });

    cFootRow.append(cPrevPosts);
    cFootRow.append(cPad);
    cFootRow.append(cNextPosts);
    cFoot.append(cFootRow);

    var cMainPad = $('<tbody/>');
    var day = 1;
    var dayOfNextMonth = 1;
    for (var i = 0; i < 6; i++) {
    var cWeek = $('<tr/>');
    for (var j = 0; j < 7; j++) {
    var cDay = $('<td/>');
    if (i * 7 + j < dWeekDayOfMonthStart) {
    cDay.addClass('cal-gray');
    cDay.html(dLastDayOfPreviousMonth++);
    } else if (day <= dLastDayOfMonth) {
    if (day == dDay && nMonth == dMonth && nYear == dYear) {
    cDay.addClass('cal-today');
    }

    var count = {
    num: 0,
    keys: []
    };
    for (var k = 0; k < current.posts.length; k++) {
    var d = new Date(Date.parse(current.posts[k].date));
    if (d.getDate() == day) {
    count.keys[count.num++] = k;
    }
    }

    if (count.num !== 0) {
    var index = count.keys[0];
    var cLink = $('<a>').attr('href', current.posts[index].link).attr('title', current.posts[index].title).html(day++);
    cDay.append(cLink);
    } else {
    cDay.html(day++);
    }
    } else {
    cDay.addClass('cal-gray');
    cDay.html(dayOfNextMonth++);
    }

    cWeek.append(cDay);
    }

    cMainPad.append(cWeek);
    }

    cBody.append(cWeekHead);
    cBody.append(cFoot);
    cBody.append(cMainPad);

    $(instance).html(cHead);
    $(instance).append(cBody);
    }

    return draw();
    };

    $.fn.aCalendar = function(Lang, oInit) {
    return this.each(function() {
    return aCalendar(Lang, oInit, $(this));
    });
    };

    // plugin defaults
    $.fn.aCalendar.defaults = {
    months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    dayOfWeekShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    postsMonthTip: 'Posts published in LMM yyyy',
    titleFormat: 'yyyy LMM',
    titleLinkFormat: '/archives/yyyy/MM/',
    headArrows: {previous: '<span class="cal-prev"></span>', next: '<span class="cal-next"></span>'},
    footArrows: {previous: '« ', next: ' »'},
    weekOffset: 0,
    single: true,
    root: '/calendar/',
    url: '/calendar.json'
    };
    $(document).ready(function () {
    $('#calendar').aCalendar('zh-CN');//'zh-CN'请根据自己博客的语言选择
    });
    }(jQuery));

    languages.js代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    var calLanguages = {
    ar: { // Arabic
    months: [
    'كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'
    ],
    dayOfWeekShort: [
    'ن', 'ث', 'ع', 'خ', 'ج', 'س', 'ح'
    ],
    dayOfWeek: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت', 'الأحد']
    },
    ro: { // Romanian
    months: [
    'Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie'
    ],
    dayOfWeekShort: [
    'Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'
    ],
    dayOfWeek: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă']
    },
    id: { // Indonesian
    months: [
    'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
    ],
    dayOfWeekShort: [
    'Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'
    ],
    dayOfWeek: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu']
    },
    is: { // Icelandic
    months: [
    'Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní', 'Júlí', 'Ágúst', 'September', 'Október', 'Nóvember', 'Desember'
    ],
    dayOfWeekShort: [
    'Sun', 'Mán', 'Þrið', 'Mið', 'Fim', 'Fös', 'Lau'
    ],
    dayOfWeek: ['Sunnudagur', 'Mánudagur', 'Þriðjudagur', 'Miðvikudagur', 'Fimmtudagur', 'Föstudagur', 'Laugardagur']
    },
    bg: { // Bulgarian
    months: [
    'Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'
    ],
    dayOfWeekShort: [
    'Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'
    ],
    dayOfWeek: ['Неделя', 'Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота']
    },
    fa: { // Persian/Farsi
    months: [
    'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'
    ],
    dayOfWeekShort: [
    'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
    ],
    dayOfWeek: ['یک‌شنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنج‌شنبه', 'جمعه', 'شنبه', 'یک‌شنبه']
    },
    ru: { // Russian
    months: [
    'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
    ],
    dayOfWeekShort: [
    'Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'
    ],
    dayOfWeek: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']
    },
    uk: { // Ukrainian
    months: [
    'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'
    ],
    dayOfWeekShort: [
    'Ндл', 'Пнд', 'Втр', 'Срд', 'Чтв', 'Птн', 'Сбт'
    ],
    dayOfWeek: ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'ятниця', 'Субота']
    },
    en: { // English
    months: [
    'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'
    ],
    dayOfWeekShort: [
    'S', 'M', 'T', 'W', 'T', 'F', 'S'
    ],
    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    postsMonthTip: 'Posts published in LMM yyyy',
    titleFormat: 'LMM yyyy'
    },
    el: { // Ελληνικά
    months: [
    'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'
    ],
    dayOfWeekShort: [
    'Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'
    ],
    dayOfWeek: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο']
    },
    de: { // German
    months: [
    'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
    ],
    dayOfWeekShort: [
    'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'
    ],
    dayOfWeek: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']
    },
    nl: { // Dutch
    months: [
    'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'
    ],
    dayOfWeekShort: [
    'zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'
    ],
    dayOfWeek: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']
    },
    tr: { // Turkish
    months: [
    'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'
    ],
    dayOfWeekShort: [
    'Paz', 'Pts', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'
    ],
    dayOfWeek: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi']
    },
    fr: { //French
    months: [
    'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
    ],
    dayOfWeekShort: [
    'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'
    ],
    dayOfWeek: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
    },
    es: { // Spanish
    months: [
    'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'
    ],
    dayOfWeekShort: [
    'Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb'
    ],
    dayOfWeek: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']
    },
    th: { // Thai
    months: [
    'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'
    ],
    dayOfWeekShort: [
    'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'
    ],
    dayOfWeek: ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัส', 'ศุกร์', 'เสาร์', 'อาทิตย์']
    },
    pl: { // Polish
    months: [
    'styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'
    ],
    dayOfWeekShort: [
    'nd', 'pn', 'wt', 'śr', 'cz', 'pt', 'sb'
    ],
    dayOfWeek: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota']
    },
    pt: { // Portuguese
    months: [
    'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'
    ],
    dayOfWeekShort: [
    'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'
    ],
    dayOfWeek: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado']
    },
    ch: { // Simplified Chinese
    months: [
    '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
    ],
    dayOfWeekShort: [
    '日', '一', '二', '三', '四', '五', '六'
    ]
    },
    se: { // Swedish
    months: [
    'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'
    ]
    },
    kr: { // Korean
    months: [
    '1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'
    ],
    dayOfWeekShort: [
    '일', '월', '화', '수', '목', '금', '토'
    ],
    dayOfWeek: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일']
    },
    it: { // Italian
    months: [
    'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'
    ],
    dayOfWeekShort: [
    'Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'
    ],
    dayOfWeek: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato']
    },
    da: { // Dansk
    months: [
    'January', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'July', 'August', 'September', 'Oktober', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'
    ],
    dayOfWeek: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']
    },
    no: { // Norwegian
    months: [
    'Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'
    ],
    dayOfWeekShort: [
    'Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'
    ],
    dayOfWeek: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']
    },
    ja: { // Japanese
    months: [
    '1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'
    ],
    dayOfWeekShort: [
    '日', '月', '火', '水', '木', '金', '土'
    ],
    dayOfWeek: ['日曜', '月曜', '火曜', '水曜', '木曜', '金曜', '土曜']
    },
    vi: { // Vietnamese
    months: [
    'Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'
    ],
    dayOfWeekShort: [
    'CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'
    ],
    dayOfWeek: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', 'Thứ sáu', 'Thứ bảy']
    },
    sl: { // Slovenščina
    months: [
    'Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij', 'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'
    ],
    dayOfWeek: ['Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota']
    },
    cs: { // Čeština
    months: [
    'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'
    ],
    dayOfWeekShort: [
    'Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So'
    ]
    },
    hu: { // Hungarian
    months: [
    'Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Va', 'Hé', 'Ke', 'Sze', 'Cs', 'Pé', 'Szo'
    ],
    dayOfWeek: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat']
    },
    az: { //Azerbaijanian (Azeri)
    months: [
    'Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'
    ],
    dayOfWeekShort: [
    'B', 'Be', 'Ça', 'Ç', 'Ca', 'C', 'Ş'
    ],
    dayOfWeek: ['Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə']
    },
    bs: { //Bosanski
    months: [
    'Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun', 'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'
    ],
    dayOfWeekShort: [
    'Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'
    ],
    dayOfWeek: ['Nedjelja', 'Ponedjeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota']
    },
    ca: { //Català
    months: [
    'Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'
    ],
    dayOfWeekShort: [
    'Dg', 'Dl', 'Dt', 'Dc', 'Dj', 'Dv', 'Ds'
    ],
    dayOfWeek: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte']
    },
    'en-GB': { //English (British)
    months: [
    'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
    ],
    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    },
    et: { //'Eesti'
    months: [
    'Jaanuar', 'Veebruar', 'Märts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'August', 'September', 'Oktoober', 'November', 'Detsember'
    ],
    dayOfWeekShort: [
    'P', 'E', 'T', 'K', 'N', 'R', 'L'
    ],
    dayOfWeek: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev']
    },
    eu: { //Euskara
    months: [
    'Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina', 'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'
    ],
    dayOfWeekShort: [
    'Ig.', 'Al.', 'Ar.', 'Az.', 'Og.', 'Or.', 'La.'
    ],
    dayOfWeek: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata']
    },
    fi: { //Finnish (Suomi)
    months: [
    'Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'
    ],
    dayOfWeekShort: [
    'Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La'
    ],
    dayOfWeek: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai']
    },
    gl: { //Galego
    months: [
    'Xan', 'Feb', 'Maz', 'Abr', 'Mai', 'Xun', 'Xul', 'Ago', 'Set', 'Out', 'Nov', 'Dec'
    ],
    dayOfWeekShort: [
    'Dom', 'Lun', 'Mar', 'Mer', 'Xov', 'Ven', 'Sab'
    ],
    dayOfWeek: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', 'Venres', 'Sábado']
    },
    hr: { //Hrvatski
    months: [
    'Siječanj', 'Veljača', 'Ožujak', 'Travanj', 'Svibanj', 'Lipanj', 'Srpanj', 'Kolovoz', 'Rujan', 'Listopad', 'Studeni', 'Prosinac'
    ],
    dayOfWeekShort: [
    'Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'
    ],
    dayOfWeek: ['Nedjelja', 'Ponedjeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subotagg']
    },
    ko: { //Korean (한국어)
    months: [
    '1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'
    ],
    dayOfWeekShort: [
    '일', '월', '화', '수', '목', '금', '토'
    ],
    dayOfWeek: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일']
    },
    lt: { //Lithuanian (lietuvių)
    months: [
    'Sausio', 'Vasario', 'Kovo', 'Balandžio', 'Gegužės', 'Birželio', 'Liepos', 'Rugpjūčio', 'Rugsėjo', 'Spalio', 'Lapkričio', 'Gruodžio'
    ],
    dayOfWeekShort: [
    'Sek', 'Pir', 'Ant', 'Tre', 'Ket', 'Pen', 'Šeš'
    ],
    dayOfWeek: ['Sekmadienis', 'Pirmadienis', 'Antradienis', 'Trečiadienis', 'Ketvirtadienis', 'Penktadienis', 'Šeštadienis']
    },
    lv: { //Latvian (Latviešu)
    months: [
    'Janvāris', 'Februāris', 'Marts', 'Aprīlis ', 'Maijs', 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decembris'
    ],
    dayOfWeekShort: [
    'Sv', 'Pr', 'Ot', 'Tr', 'Ct', 'Pk', 'St'
    ],
    dayOfWeek: ['Svētdiena', 'Pirmdiena', 'Otrdiena', 'Trešdiena', 'Ceturtdiena', 'Piektdiena', 'Sestdiena']
    },
    mk: { //Macedonian (Македонски)
    months: [
    'јануари', 'февруари', 'март', 'април', 'мај', 'јуни', 'јули', 'август', 'септември', 'октомври', 'ноември', 'декември'
    ],
    dayOfWeekShort: [
    'нед', 'пон', 'вто', 'сре', 'чет', 'пет', 'саб'
    ],
    dayOfWeek: ['Недела', 'Понеделник', 'Вторник', 'Среда', 'Четврток', 'Петок', 'Сабота']
    },
    mn: { //Mongolian (Монгол)
    months: [
    '1-р сар', '2-р сар', '3-р сар', '4-р сар', '5-р сар', '6-р сар', '7-р сар', '8-р сар', '9-р сар', '10-р сар', '11-р сар', '12-р сар'
    ],
    dayOfWeekShort: [
    'Дав', 'Мяг', 'Лха', 'Пүр', 'Бсн', 'Бям', 'Ням'
    ],
    dayOfWeek: ['Даваа', 'Мягмар', 'Лхагва', 'Пүрэв', 'Баасан', 'Бямба', 'Ням']
    },
    'pt-BR': { //Português(Brasil)
    months: [
    'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'
    ],
    dayOfWeekShort: [
    'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'
    ],
    dayOfWeek: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado']
    },
    sk: { //Slovenčina
    months: [
    'Január', 'Február', 'Marec', 'Apríl', 'Máj', 'Jún', 'Júl', 'August', 'September', 'Október', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Ne', 'Po', 'Ut', 'St', 'Št', 'Pi', 'So'
    ],
    dayOfWeek: ['Nedeľa', 'Pondelok', 'Utorok', 'Streda', 'Štvrtok', 'Piatok', 'Sobota']
    },
    sq: { //Albanian (Shqip)
    months: [
    'Janar', 'Shkurt', 'Mars', 'Prill', 'Maj', 'Qershor', 'Korrik', 'Gusht', 'Shtator', 'Tetor', 'Nëntor', 'Dhjetor'
    ],
    dayOfWeekShort: [
    'Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Shtu'
    ],
    dayOfWeek: ['E Diel', 'E Hënë', 'E Martē', 'E Mërkurë', 'E Enjte', 'E Premte', 'E Shtunë']
    },
    'sr-YU': { //Serbian (Srpski)
    months: [
    'Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun', 'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'
    ],
    dayOfWeekShort: [
    'Ned', 'Pon', 'Uto', 'Sre', 'čet', 'Pet', 'Sub'
    ],
    dayOfWeek: ['Nedelja', 'Ponedeljak', 'Utorak', 'Sreda', 'Četvrtak', 'Petak', 'Subota']
    },
    sr: { //Serbian Cyrillic (Српски)
    months: [
    'јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'
    ],
    dayOfWeekShort: [
    'нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'
    ],
    dayOfWeek: ['Недеља', 'Понедељак', 'Уторак', 'Среда', 'Четвртак', 'Петак', 'Субота']
    },
    sv: { //Svenska
    months: [
    'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'
    ],
    dayOfWeek: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag']
    },
    'zh-TW': { //Traditional Chinese (繁體中文)
    months: [
    '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
    ],
    dayOfWeekShort: [
    '日', '一', '二', '三', '四', '五', '六'
    ],
    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
    },
    'zh-CN': { //Simplified Chinese (简体中文)
    months: [
    '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
    ],
    dayOfWeekShort: [
    '日', '一', '二', '三', '四', '五', '六'
    ],
    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
    postsMonthTip: '查看yyyy年MM月的文章',
    titleFormat: 'yyyy年MM月'
    },
    he: { //Hebrew (עברית)
    months: [
    'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'
    ],
    dayOfWeekShort: [
    'א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו\'', 'שבת'
    ],
    dayOfWeek: ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון']
    },
    hy: { // Armenian
    months: [
    'Հունվար', 'Փետրվար', 'Մարտ', 'Ապրիլ', 'Մայիս', 'Հունիս', 'Հուլիս', 'Օգոստոս', 'Սեպտեմբեր', 'Հոկտեմբեր', 'Նոյեմբեր', 'Դեկտեմբեր'
    ],
    dayOfWeekShort: [
    'Կի', 'Երկ', 'Երք', 'Չոր', 'Հնգ', 'Ուրբ', 'Շբթ'
    ],
    dayOfWeek: ['Կիրակի', 'Երկուշաբթի', 'Երեքշաբթի', 'Չորեքշաբթի', 'Հինգշաբթի', 'Ուրբաթ', 'Շաբաթ']
    },
    kg: { // Kyrgyz
    months: [
    'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы'
    ],
    dayOfWeekShort: [
    'Жек', 'Дүй', 'Шей', 'Шар', 'Бей', 'Жум', 'Ише'
    ],
    dayOfWeek: [
    'Жекшемб', 'Дүйшөмб', 'Шейшемб', 'Шаршемб', 'Бейшемби', 'Жума', 'Ишенб'
    ]
    },
    rm: { // Romansh
    months: [
    'Schaner', 'Favrer', 'Mars', 'Avrigl', 'Matg', 'Zercladur', 'Fanadur', 'Avust', 'Settember', 'October', 'November', 'December'
    ],
    dayOfWeekShort: [
    'Du', 'Gli', 'Ma', 'Me', 'Gie', 'Ve', 'So'
    ],
    dayOfWeek: [
    'Dumengia', 'Glindesdi', 'Mardi', 'Mesemna', 'Gievgia', 'Venderdi', 'Sonda'
    ]
    },
    ka: { // Georgian
    months: [
    'იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'
    ],
    dayOfWeekShort: [
    'კვ', 'ორშ', 'სამშ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'
    ],
    dayOfWeek: ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი']
    },
    };
  3. 在 butterfly.yml配置文件引入 js代码:

    1
    2
    - <script src="/js/calendar.js"></script>
    - <script src="/js/languages.js"></script>
  4. 在 \Butterfly\source\css\_layout目录下新建 calendar.styl文件,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    #calendar
    a
    text-decoration none

    .cal-head
    margin-bottom: 15px
    position relative
    height 20px
    padding 8px 6px 2px 6px

    .cal-prev,.cal-next
    position absolute
    top 9px
    width 16px
    height 18px
    padding 3px 4px
    border 1px solid transparent
    color #333
    outline 0

    .cal-prev
    left 8px
    &:before
    border-right 9px solid #333

    .cal-next
    right 8px
    &:before
    border-left 9px solid #333

    .cal-prev:before,.cal-next:before
    content ''
    display block
    width 0
    height 0
    border-top 5px solid transparent
    border-bottom 5px solid transparent

    .cal-title
    width 120px
    margin 0 auto
    color #333
    font bold 14px/18px Arial
    text-align center
    a
    border 1px solid transparent
    color #9f9f9f

    .cal,
    .cal th,
    .cal td
    border 1px solid #d1d1d1

    .cal
    display: table
    border-collapse separate
    border-spacing 0
    border-width 1px 0 0 1px
    table-layout fixed
    width 100%
    margin 0
    th
    background #9f9f9f
    color #fff
    border-width 0 1px 1px 0
    font-weight 700
    td
    border-width 0 1px 1px 0
    tbody
    a
    background-color #007acc
    color #fff
    display block
    font-weight 700
    .cal-today
    background-color #66ecfd
    color #fff
    .cal-gray
    color #bbb8b8

    [data-theme='dark'] .cal .cal-gray
    color #505050

    .cal th,
    .cal td
    font-weight normal
    line-height 2.5625
    padding 0
    text-align center

    [data-theme='dark'] .cal .cal-foot
    color #9f9f9f

    .cal .cal-foot
    color #2ca6cb

    .cal-title a:hover,
    .cal-prev:hover,
    .cal-next:hover,
    .cal .cal-foot:hover,
    .cal .cal-foot:focus,
    .cal tbody a:hover,
    .cal tbody a:focus
    background-color #686868
    color #fff
    cursor pointer
  5. 在 Butterfly\layout\includes\widget文件夹新建card_calendar.pug文件,代码如下:

    1
    2
    3
    4
    5
    6
    7
    .card-widget.card-calendar
    .card-content
    .item-headline
    i.far.fa-calendar-alt(aria-hidden="true")
    span= _p('aside.card_calendar')
    div.widget-wrap
    div#calendar.widget
  6. 在 Butterfly\layout\includes\widget\index.pug 文件插入代码

    1
    2
    if theme.aside.card_calendar
    !=partial('includes/widget/card_calendar', {}, {cache:theme.fragment_cache})

  7. 编辑 butterfly.yml配置文件,在 card_webinfo下面添加一行card_calendar: true

  8. 编辑themes\Butterfly\languages\zh-CN.yml文件(根据你的网站语言选择),找到 card_announcement: 公告 , 在下面添加一行 card_calendar: 日历
设置首页文章与侧栏透明度

设置首页文章与侧栏透明度

  • 在source/css/_layout/page.styl 文件, 找到以下内容
    1
    2
    3
    4
    5
    6
    .layout_page
    display: flex
    align-items: flex-start
    margin: 0 auto
    padding: 2rem 15px
    max-width: 1200px
  • 后面加上 opacity:0.7
    1
    2
    3
    4
    5
    6
    7
    .layout_page
    display: flex
    align-items: flex-start
    margin: 0 auto
    padding: 2rem 15px
    max-width: 1200px
    opacity:0.7
MAC代码框颜色更换为白色

MAC代码框颜色更换为白色

  • 打开 Butterfly/source/css/index.styl 文件,在最低端添加代码:
    1
    #article-container figure.highlight,#article-container pre{color:#a9a9a9;background:#f3f3f3}#article-container figure.highlight .highlight-tools{color:#a9a9a9;background:#eee}#article-container figure.highlight .gutter pre{color:#999;background:#f3f3f3}#article-container figure.highlight figcaption a{color:#f3f3f3!important}
加速 search.xml 文件

加速search.xml文件

  • 打开 /Butterfly/source/js/search/local-search.js 文件,找到下面代码

    1
    2
    3
    4
    function search (path) {
    $.ajax({
    url: GLOBAL_CONFIG.root + path,
    dataType: 'xml',
  • 将 url: GLOBAL_CONFIG.root + path 修改为

    1
    url: "https://cdn.jsdelivr.net/gh/你的github仓库名/你的github仓库名.github.io/search.xml",
侧边栏归档·显示更多按钮

侧边栏归档·显示更多按钮

  • 打开/node_modules/hexo/lib/plugins/helper/list_archives.js 修改if (style === ‘list’) {·······}内的内容
  • 完整代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    if (style === 'list') {
    result += `<ul class="${className}-list">`;

    for (i = 0, len = data.length; i < 6; i++) {
    item = data[i];

    result += `<li class="${className}-list-item">`;

    result += `<a class="${className}-list-link" href="${link(item)}">`;
    result += transform ? transform(item.name) : item.name;
    result += '</a>';

    if (showCount) {
    result += `<span class="${className}-list-count">${item.count}</span>`;
    }

    result += '</li>';
    }

    result += `<li class="${className}-list-item">`;
    result += `<a style="text-align: center;font-size: 13px" class="${className}-list-link" href="${link()}">`;
    result += '查看更多';
    result += '</a>';
    result += '</li>';
    result += '</ul>';
更新提醒插件

更新提醒插件

页脚养鱼

页脚养鱼

  • 在 Butterfly/source/js/下新建fishes.js文件,写入代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    fish();
    function fish() {
    return (
    $("#footer-wrap").css({
    position: "absolute",
    "text-align": "center",
    top: 0,
    right: 0,
    left: 0,
    bottom: 0,
    }),
    $("footer").append(
    '<div class="container" id="jsi-flying-fish-container"></div>'
    ),
    $("body").append(
    '<script src="/js/fish.js"></script>'
    ),
    this
    );
    }
  • 上面/js/fish.js可以替换成CDN 代码如下

  • 在 Butterfly/source/js/下新建fish.js文件,写入代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    var RENDERER = {
    POINT_INTERVAL : 5,
    FISH_COUNT : 3,
    MAX_INTERVAL_COUNT : 50,
    INIT_HEIGHT_RATE : 0.5,
    THRESHOLD : 50,

    init : function(){
    this.setParameters();
    this.reconstructMethods();
    this.setup();
    this.bindEvent();
    this.render();
    },
    setParameters : function(){
    this.$window = $(window);
    this.$container = $('#jsi-flying-fish-container');
    this.$canvas = $('<canvas />');
    this.context = this.$canvas.appendTo(this.$container).get(0).getContext('2d');
    this.points = [];
    this.fishes = [];
    this.watchIds = [];
    },
    createSurfacePoints : function(){
    var count = Math.round(this.width / this.POINT_INTERVAL);
    this.pointInterval = this.width / (count - 1);
    this.points.push(new SURFACE_POINT(this, 0));

    for(var i = 1; i < count; i++){
    var point = new SURFACE_POINT(this, i * this.pointInterval),
    previous = this.points[i - 1];

    point.setPreviousPoint(previous);
    previous.setNextPoint(point);
    this.points.push(point);
    }
    },
    reconstructMethods : function(){
    this.watchWindowSize = this.watchWindowSize.bind(this);
    this.jdugeToStopResize = this.jdugeToStopResize.bind(this);
    this.startEpicenter = this.startEpicenter.bind(this);
    this.moveEpicenter = this.moveEpicenter.bind(this);
    this.reverseVertical = this.reverseVertical.bind(this);
    this.render = this.render.bind(this);
    },
    setup : function(){
    this.points.length = 0;
    this.fishes.length = 0;
    this.watchIds.length = 0;
    this.intervalCount = this.MAX_INTERVAL_COUNT;
    this.width = this.$container.width();
    this.height = this.$container.height();
    this.fishCount = this.FISH_COUNT * this.width / 500 * this.height / 500;
    this.$canvas.attr({width : this.width, height : this.height});
    this.reverse = false;

    this.fishes.push(new FISH(this));
    this.createSurfacePoints();
    },
    watchWindowSize : function(){
    this.clearTimer();
    this.tmpWidth = this.$window.width();
    this.tmpHeight = this.$window.height();
    this.watchIds.push(setTimeout(this.jdugeToStopResize, this.WATCH_INTERVAL));
    },
    clearTimer : function(){
    while(this.watchIds.length > 0){
    clearTimeout(this.watchIds.pop());
    }
    },
    jdugeToStopResize : function(){
    var width = this.$window.width(),
    height = this.$window.height(),
    stopped = (width == this.tmpWidth && height == this.tmpHeight);

    this.tmpWidth = width;
    this.tmpHeight = height;

    if(stopped){
    this.setup();
    }
    },
    bindEvent : function(){
    this.$window.on('resize', this.watchWindowSize);
    this.$container.on('mouseenter', this.startEpicenter);
    this.$container.on('mousemove', this.moveEpicenter);
    this.$container.on('click', this.reverseVertical);
    },
    getAxis : function(event){
    var offset = this.$container.offset();

    return {
    x : event.clientX - offset.left + this.$window.scrollLeft(),
    y : event.clientY - offset.top + this.$window.scrollTop()
    };
    },
    startEpicenter : function(event){
    this.axis = this.getAxis(event);
    },
    moveEpicenter : function(event){
    var axis = this.getAxis(event);

    if(!this.axis){
    this.axis = axis;
    }
    this.generateEpicenter(axis.x, axis.y, axis.y - this.axis.y);
    this.axis = axis;
    },
    generateEpicenter : function(x, y, velocity){
    if(y < this.height / 2 - this.THRESHOLD || y > this.height / 2 + this.THRESHOLD){
    return;
    }
    var index = Math.round(x / this.pointInterval);

    if(index < 0 || index >= this.points.length){
    return;
    }
    this.points[index].interfere(y, velocity);
    },
    reverseVertical : function(){
    this.reverse = !this.reverse;

    for(var i = 0, count = this.fishes.length; i < count; i++){
    this.fishes[i].reverseVertical();
    }
    },
    controlStatus : function(){
    for(var i = 0, count = this.points.length; i < count; i++){
    this.points[i].updateSelf();
    }
    for(var i = 0, count = this.points.length; i < count; i++){
    this.points[i].updateNeighbors();
    }
    if(this.fishes.length < this.fishCount){
    if(--this.intervalCount == 0){
    this.intervalCount = this.MAX_INTERVAL_COUNT;
    this.fishes.push(new FISH(this));
    }
    }
    },
    render : function(){
    requestAnimationFrame(this.render);
    this.controlStatus();
    this.context.clearRect(0, 0, this.width, this.height);
    this.context.fillStyle = 'hsl(0, 0%, 95%)';

    for(var i = 0, count = this.fishes.length; i < count; i++){
    this.fishes[i].render(this.context);
    }
    this.context.save();
    this.context.globalCompositeOperation = 'xor';
    this.context.beginPath();
    this.context.moveTo(0, this.reverse ? 0 : this.height);

    for(var i = 0, count = this.points.length; i < count; i++){
    this.points[i].render(this.context);
    }
    this.context.lineTo(this.width, this.reverse ? 0 : this.height);
    this.context.closePath();
    this.context.fill();
    this.context.restore();
    }
    };
    var SURFACE_POINT = function(renderer, x){
    this.renderer = renderer;
    this.x = x;
    this.init();
    };
    SURFACE_POINT.prototype = {
    SPRING_CONSTANT : 0.03,
    SPRING_FRICTION : 0.9,
    WAVE_SPREAD : 0.3,
    ACCELARATION_RATE : 0.01,

    init : function(){
    this.initHeight = this.renderer.height * this.renderer.INIT_HEIGHT_RATE;
    this.height = this.initHeight;
    this.fy = 0;
    this.force = {previous : 0, next : 0};
    },
    setPreviousPoint : function(previous){
    this.previous = previous;
    },
    setNextPoint : function(next){
    this.next = next;
    },
    interfere : function(y, velocity){
    this.fy = this.renderer.height * this.ACCELARATION_RATE * ((this.renderer.height - this.height - y) >= 0 ? -1 : 1) * Math.abs(velocity);
    },
    updateSelf : function(){
    this.fy += this.SPRING_CONSTANT * (this.initHeight - this.height);
    this.fy *= this.SPRING_FRICTION;
    this.height += this.fy;
    },
    updateNeighbors : function(){
    if(this.previous){
    this.force.previous = this.WAVE_SPREAD * (this.height - this.previous.height);
    }
    if(this.next){
    this.force.next = this.WAVE_SPREAD * (this.height - this.next.height);
    }
    },
    render : function(context){
    if(this.previous){
    this.previous.height += this.force.previous;
    this.previous.fy += this.force.previous;
    }
    if(this.next){
    this.next.height += this.force.next;
    this.next.fy += this.force.next;
    }
    context.lineTo(this.x, this.renderer.height - this.height);
    }
    };
    var FISH = function(renderer){
    this.renderer = renderer;
    this.init();
    };
    FISH.prototype = {
    GRAVITY : 0.4,

    init : function(){
    this.direction = Math.random() < 0.5;
    this.x = this.direction ? (this.renderer.width + this.renderer.THRESHOLD) : -this.renderer.THRESHOLD;
    this.previousY = this.y;
    this.vx = this.getRandomValue(4, 10) * (this.direction ? -1 : 1);

    if(this.renderer.reverse){
    this.y = this.getRandomValue(this.renderer.height * 1 / 10, this.renderer.height * 4 / 10);
    this.vy = this.getRandomValue(2, 5);
    this.ay = this.getRandomValue(0.05, 0.2);
    }else{
    this.y = this.getRandomValue(this.renderer.height * 6 / 10, this.renderer.height * 9 / 10);
    this.vy = this.getRandomValue(-5, -2);
    this.ay = this.getRandomValue(-0.2, -0.05);
    }
    this.isOut = false;
    this.theta = 0;
    this.phi = 0;
    },
    getRandomValue : function(min, max){
    return min + (max - min) * Math.random();
    },
    reverseVertical : function(){
    this.isOut = !this.isOut;
    this.ay *= -1;
    },
    controlStatus : function(context){
    this.previousY = this.y;
    this.x += this.vx;
    this.y += this.vy;
    this.vy += this.ay;

    if(this.renderer.reverse){
    if(this.y > this.renderer.height * this.renderer.INIT_HEIGHT_RATE){
    this.vy -= this.GRAVITY;
    this.isOut = true;
    }else{
    if(this.isOut){
    this.ay = this.getRandomValue(0.05, 0.2);
    }
    this.isOut = false;
    }
    }else{
    if(this.y < this.renderer.height * this.renderer.INIT_HEIGHT_RATE){
    this.vy += this.GRAVITY;
    this.isOut = true;
    }else{
    if(this.isOut){
    this.ay = this.getRandomValue(-0.2, -0.05);
    }
    this.isOut = false;
    }
    }
    if(!this.isOut){
    this.theta += Math.PI / 20;
    this.theta %= Math.PI * 2;
    this.phi += Math.PI / 30;
    this.phi %= Math.PI * 2;
    }
    this.renderer.generateEpicenter(this.x + (this.direction ? -1 : 1) * this.renderer.THRESHOLD, this.y, this.y - this.previousY);

    if(this.vx > 0 && this.x > this.renderer.width + this.renderer.THRESHOLD || this.vx < 0 && this.x < -this.renderer.THRESHOLD){
    this.init();
    }
    },
    render : function(context){
    context.save();
    context.translate(this.x, this.y);
    context.rotate(Math.PI + Math.atan2(this.vy, this.vx));
    context.scale(1, this.direction ? 1 : -1);
    context.beginPath();
    context.moveTo(-30, 0);
    context.bezierCurveTo(-20, 15, 15, 10, 40, 0);
    context.bezierCurveTo(15, -10, -20, -15, -30, 0);
    context.fill();

    context.save();
    context.translate(40, 0);
    context.scale(0.9 + 0.2 * Math.sin(this.theta), 1);
    context.beginPath();
    context.moveTo(0, 0);
    context.quadraticCurveTo(5, 10, 20, 8);
    context.quadraticCurveTo(12, 5, 10, 0);
    context.quadraticCurveTo(12, -5, 20, -8);
    context.quadraticCurveTo(5, -10, 0, 0);
    context.fill();
    context.restore();

    context.save();
    context.translate(-3, 0);
    context.rotate((Math.PI / 3 + Math.PI / 10 * Math.sin(this.phi)) * (this.renderer.reverse ? -1 : 1));

    context.beginPath();

    if(this.renderer.reverse){
    context.moveTo(5, 0);
    context.bezierCurveTo(10, 10, 10, 30, 0, 40);
    context.bezierCurveTo(-12, 25, -8, 10, 0, 0);
    }else{
    context.moveTo(-5, 0);
    context.bezierCurveTo(-10, -10, -10, -30, 0, -40);
    context.bezierCurveTo(12, -25, 8, -10, 0, 0);
    }
    context.closePath();
    context.fill();
    context.restore();
    context.restore();
    this.controlStatus(context);
    }
    };
    $(function(){
    RENDERER.init();
    });
  • 在 Butterfly.yml文件内找到 inject:下的 bottom:引入下面代码

    1
    - <script src="/xxx/fishes.js"></script>
  • 调整页脚阴影透明度 themes/butterfly/source/css/_layout/footer.styl

    1
    background-color: alpha($dark-black, .1)
侧栏添加 Gitalk小部件

侧栏添加 Gitalk小部件

  • 在 Butterfly\layout\includes\widget\下新建card_dynamics.pug文件,然后插入代码:

    1
    2
    3
    4
    5
    6
    .card-widget.card-dynamics
    .card-content
    .item-headline
    i.fa.fa-quote-right(aria-hidden="true")
    span= '小动态'
    include gitalk.html
  • 打开 Butterfly\layout\includes\widget\下的 index.pug文件,然后插入代码:

    1
    2
    if theme.aside.card_dynamics
    !=partial('includes/widget/card_dynamics', {}, {cache:theme.fragment_cache})
  • 在 Butterfly\layout\includes\widget\下新建gitalk.html文件,然后插入代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <head>  
    <link rel="stylesheet" href="https://hexo-1251213061.cos.ap-beijing.myqcloud.com/x/gitalk.css" data-pjax> <!-- 导入自己修改过后的css文件,参照了火喵的 -->
    <script src="https://cdn.jsdelivr.net/gh/GamerNoTitle/Picture-repo-v1@gitalk/js/gitalk.min.js" data-pjax></script> <!-- 导入自己修改后的js文件,主要修改了显示的字 -->
    </head>
    <body>
    <div id="gitalk-container"data-pjax></div>
    <script>
    var gitalk = new Gitalk({
    id: '小动态',
    clientID: 'xxxxxxx',
    clientSecret: 'xxxxxxx',
    repo: '你的仓库名.github.io',
    owner: '你的仓库名',
    admin: ['你的仓库名'],
    title: 'Dynamics',
    pagerDirection: 'last',
    perPage: 5,
    })
    gitalk.render('gitalk-container')
    </script>
    </body>
  • 如上方JS和CSS失效使用下方代码:

  • CSS代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    711
    712
    713
    714
    715
    716
    717
    718
    719
    720
    721
    722
    723
    724
    725
    726
    727
    728
    729
    730
    731
    732
    733
    734
    735
    736
    737
    738
    739
    740
    741
    742
    743
    744
    745
    746
    747
    748
    749
    750
    751
    752
    753
    754
    755
    756
    757
    758
    759
    760
    761
    762
    763
    764
    765
    766
    767
    768
    769
    770
    771
    772
    773
    774
    775
    776
    777
    778
    779
    780
    781
    782
    783
    784
    785
    786
    787
    788
    789
    790
    791
    792
    793
    794
    795
    796
    797
    798
    799
    800
    801
    802
    803
    804
    805
    806
    807
    808
    809
    810
    811
    812
    813
    814
    815
    816
    817
    818
    819
    820
    821
    822
    823
    824
    825
    826
    827
    828
    829
    830
    831
    832
    833
    834
    835
    836
    837
    838
    839
    840
    841
    842
    843
    844
    845
    846
    847
    848
    849
    850
    851
    852
    853
    854
    855
    856
    857
    858
    859
    860
    861
    862
    863
    864
    865
    866
    867
    868
    869
    870
    871
    872
    873
    874
    875
    876
    877
    878
    879
    880
    881
    882
    883
    884
    885
    886
    887
    888
    889
    890
    891
    892
    893
    894
    895
    896
    897
    898
    899
    900
    901
    902
    903
    904
    905
    906
    907
    908
    909
    910
    911
    912
    913
    914
    915
    916
    917
    918
    919
    920
    921
    922
    923
    924
    925
    926
    927
    928
    929
    930
    931
    932
    933
    934
    935
    936
    937
    938
    939
    940
    941
    942
    943
    944
    945
    946
    947
    948
    949
    950
    951
    952
    953
    954
    955
    956
    957
    958
    959
    960
    961
    962
    963
    964
    965
    966
    967
    968
    969
    970
    971
    972
    973
    974
    975
    976
    977
    978
    979
    980
    981
    982
    983
    984
    985
    986
    987
    988
    989
    990
    991
    992
    993
    994
    995
    996
    997
    998
    999
    1000
    1001
    1002
    1003
    1004
    1005
    1006
    1007
    1008
    1009
    1010
    1011
    1012
    1013
    1014
    1015
    1016
    1017
    1018
    1019
    1020
    1021
    1022
    1023
    1024
    1025
    1026
    1027
    1028
    1029
    1030
    1031
    1032
    1033
    1034
    1035
    1036
    1037
    1038
    1039
    1040
    1041
    1042
    1043
    1044
    1045
    1046
    1047
    1048
    1049
    1050
    1051
    1052
    1053
    1054
    1055
    1056
    1057
    1058
    1059
    1060
    1061
    1062
    1063
    1064
    1065
    1066
    1067
    1068
    1069
    1070
    1071
    1072
    1073
    1074
    1075
    1076
    1077
    1078
    1079
    1080
    1081
    1082
    1083
    1084
    1085
    1086
    1087
    1088
    1089
    1090
    1091
    1092
    1093
    1094
    1095
    1096
    1097
    1098
    1099
    1100
    1101
    1102
    1103
    1104
    1105
    1106
    1107
    1108
    1109
    1110
    1111
    1112
    1113
    1114
    1115
    1116
    1117
    1118
    1119
    1120
    1121
    1122
    1123
    1124
    1125
    1126
    1127
    1128
    1129
    1130
    1131
    1132
    1133
    1134
    1135
    1136
    1137
    1138
    1139
    1140
    1141
    1142
    1143
    1144
    1145
    1146
    1147
    1148
    1149
    1150
    1151
    1152
    1153
    1154
    1155
    1156
    1157
    1158
    1159
    1160
    1161
    1162
    1163
    1164
    1165
    1166
    1167
    1168
    1169
    1170
    1171
    1172
    1173
    1174
    1175
    1176
    1177
    1178
    1179
    1180
    1181
    1182
    1183
    1184
    1185
    1186
    1187
    1188
    1189
    1190
    1191
    1192
    1193
    1194
    1195
    1196
    1197
    1198
    1199
    1200
    1201
    1202
    1203
    1204
    1205
    1206
    1207
    1208
    1209
    1210
    1211
    1212
    1213
    1214
    1215
    1216
    1217
    1218
    1219
    1220
    1221
    1222
    1223
    1224
    1225
    1226
    1227
    1228
    1229
    1230
    1231
    1232
    1233
    1234
    1235
    1236
    1237
    1238
    1239
    1240
    1241
    1242
    1243
    1244
    1245
    1246
    1247
    1248
    1249
    1250
    1251
    1252
    1253
    1254
    1255
    @font-face {
    font-family: octicons-link;
    src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
    }

    .markdown-body {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    line-height: 1.5;
    color: #24292e;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: 13px;
    line-height: 1.5;
    word-wrap: break-word;
    }

    .markdown-body .pl-c {
    color: #6a737d;
    }

    .markdown-body .pl-c1,
    .markdown-body .pl-s .pl-v {
    color: #005cc5;
    }

    .markdown-body .pl-e,
    .markdown-body .pl-en {
    color: #6f42c1;
    }

    .markdown-body .pl-smi,
    .markdown-body .pl-s .pl-s1 {
    color: #24292e;
    }

    .markdown-body .pl-ent {
    color: #22863a;
    }

    .markdown-body .pl-k {
    color: #d73a49;
    }

    .markdown-body .pl-s,
    .markdown-body .pl-pds,
    .markdown-body .pl-s .pl-pse .pl-s1,
    .markdown-body .pl-sr,
    .markdown-body .pl-sr .pl-cce,
    .markdown-body .pl-sr .pl-sre,
    .markdown-body .pl-sr .pl-sra {
    color: #032f62;
    }

    .markdown-body .pl-v,
    .markdown-body .pl-smw {
    color: #e36209;
    }

    .markdown-body .pl-bu {
    color: #b31d28;
    }

    .markdown-body .pl-ii {
    color: #fafbfc;
    background-color: #b31d28;
    }

    .markdown-body .pl-c2 {
    color: #fafbfc;
    background-color: #d73a49;
    }

    .markdown-body .pl-c2::before {
    content: "^M";
    }

    .markdown-body .pl-sr .pl-cce {
    font-weight: bold;
    color: #22863a;
    }

    .markdown-body .pl-ml {
    color: #735c0f;
    }

    .markdown-body .pl-mh,
    .markdown-body .pl-mh .pl-en,
    .markdown-body .pl-ms {
    font-weight: bold;
    color: #005cc5;
    }

    .markdown-body .pl-mi {
    font-style: italic;
    color: #24292e;
    }

    .markdown-body .pl-mb {
    font-weight: bold;
    color: #24292e;
    }

    .markdown-body .pl-md {
    color: #b31d28;
    background-color: #ffeef0;
    }

    .markdown-body .pl-mi1 {
    color: #22863a;
    background-color: #f0fff4;
    }

    .markdown-body .pl-mc {
    color: #e36209;
    background-color: #ffebda;
    }

    .markdown-body .pl-mi2 {
    color: #f6f8fa;
    background-color: #005cc5;
    }

    .markdown-body .pl-mdr {
    font-weight: bold;
    color: #6f42c1;
    }

    .markdown-body .pl-ba {
    color: #586069;
    }

    .markdown-body .pl-sg {
    color: #959da5;
    }

    .markdown-body .pl-corl {
    text-decoration: underline;
    color: #032f62;
    }

    .markdown-body .octicon {
    display: inline-block;
    vertical-align: text-top;
    fill: currentColor;
    }

    .markdown-body a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects;
    }

    .markdown-body a:active,
    .markdown-body a:hover {
    outline-width: 0;
    }

    .markdown-body strong {
    font-weight: inherit;
    }

    .markdown-body strong {
    font-weight: bolder;
    }

    .markdown-body h1 {
    font-size: 2em;
    margin: 0.67em 0;
    }

    .markdown-body img {
    border-style: none;
    }

    .markdown-body svg:not(:root) {
    overflow: hidden;
    }

    .markdown-body code,
    .markdown-body kbd,
    .markdown-body pre {
    font-family: monospace, monospace;
    font-size: 1em;
    }

    .markdown-body hr {
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
    overflow: visible;
    }

    .markdown-body input {
    font: inherit;
    margin: 0;
    }

    .markdown-body input {
    overflow: visible;
    }

    .markdown-body [type="checkbox"] {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    }

    .markdown-body * {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    }

    .markdown-body input {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    }

    .markdown-body a {
    color: #0366d6;
    text-decoration: none;
    }

    .markdown-body a:hover {
    text-decoration: underline;
    }

    .markdown-body strong {
    font-weight: 600;
    }

    .markdown-body hr {
    height: 0;
    margin: 15px 0;
    overflow: hidden;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #dfe2e5;
    }

    .markdown-body hr::before {
    display: table;
    content: "";
    }

    .markdown-body hr::after {
    display: table;
    clear: both;
    content: "";
    }

    .markdown-body table {
    border-spacing: 0;
    border-collapse: collapse;
    }

    .markdown-body td,
    .markdown-body th {
    padding: 0;
    }

    .markdown-body h1,
    .markdown-body h2,
    .markdown-body h3,
    .markdown-body h4,
    .markdown-body h5,
    .markdown-body h6 {
    margin-top: 0;
    margin-bottom: 0;
    }

    .markdown-body h1 {
    font-size: 32px;
    font-weight: 600;
    }

    .markdown-body h2 {
    font-size: 24px;
    font-weight: 600;
    }

    .markdown-body h3 {
    font-size: 20px;
    font-weight: 600;
    }

    .markdown-body h4 {
    font-size: 16px;
    font-weight: 600;
    }

    .markdown-body h5 {
    font-size: 14px;
    font-weight: 600;
    }

    .markdown-body h6 {
    font-size: 12px;
    font-weight: 600;
    }

    .markdown-body p {
    margin-top: 0;
    margin-bottom: 10px;
    }

    .markdown-body blockquote {
    margin: 0;
    }

    .markdown-body ul,
    .markdown-body ol {
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
    }

    .markdown-body ol ol,
    .markdown-body ul ol {
    list-style-type: lower-roman;
    }

    .markdown-body ul ul ol,
    .markdown-body ul ol ol,
    .markdown-body ol ul ol,
    .markdown-body ol ol ol {
    list-style-type: lower-alpha;
    }

    .markdown-body dd {
    margin-left: 0;
    }

    .markdown-body code {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
    font-size: 12px;
    }

    .markdown-body pre {
    margin-top: 0;
    margin-bottom: 0;
    font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
    }

    .markdown-body .octicon {
    vertical-align: text-bottom;
    }

    .markdown-body .pl-0 {
    padding-left: 0 !important;
    }

    .markdown-body .pl-1 {
    padding-left: 4px !important;
    }

    .markdown-body .pl-2 {
    padding-left: 8px !important;
    }

    .markdown-body .pl-3 {
    padding-left: 16px !important;
    }

    .markdown-body .pl-4 {
    padding-left: 24px !important;
    }

    .markdown-body .pl-5 {
    padding-left: 32px !important;
    }

    .markdown-body .pl-6 {
    padding-left: 40px !important;
    }

    .markdown-body::before {
    display: table;
    content: "";
    }

    .markdown-body::after {
    display: table;
    clear: both;
    content: "";
    }

    .markdown-body>*:first-child {
    margin-top: 0 !important;
    }

    .markdown-body>*:last-child {
    margin-bottom: 0 !important;
    }

    .markdown-body a:not([href]) {
    color: inherit;
    text-decoration: none;
    }

    .markdown-body .anchor {
    float: left;
    padding-right: 4px;
    margin-left: -20px;
    line-height: 1;
    }

    .markdown-body .anchor:focus {
    outline: none;
    }

    .markdown-body p,
    .markdown-body blockquote,
    .markdown-body ul,
    .markdown-body ol,
    .markdown-body dl,
    .markdown-body table,
    .markdown-body pre {
    margin-top: 0;
    margin-bottom: 16px;
    }

    .markdown-body hr {
    height: 0.25em;
    padding: 0;
    margin: 24px 0;
    background-color: #e1e4e8;
    border: 0;
    }

    .markdown-body blockquote {
    padding: 0 1em;
    color: #6a737d;
    border-left: 0.25em solid #dfe2e5;
    }

    .markdown-body blockquote>:first-child {
    margin-top: 0;
    }

    .markdown-body blockquote>:last-child {
    margin-bottom: 0;
    }

    .markdown-body kbd {
    display: inline-block;
    padding: 3px 5px;
    font-size: 11px;
    line-height: 10px;
    color: #444d56;
    vertical-align: middle;
    background-color: #fafbfc;
    border: solid 1px #c6cbd1;
    border-bottom-color: #959da5;
    border-radius: 3px;
    -webkit-box-shadow: inset 0 -1px 0 #959da5;
    box-shadow: inset 0 -1px 0 #959da5;
    }

    .markdown-body h1,
    .markdown-body h2,
    .markdown-body h3,
    .markdown-body h4,
    .markdown-body h5,
    .markdown-body h6 {
    margin-top: 24px;
    margin-bottom: 16px;
    font-weight: 600;
    line-height: 1.25;
    }

    .markdown-body h1 .octicon-link,
    .markdown-body h2 .octicon-link,
    .markdown-body h3 .octicon-link,
    .markdown-body h4 .octicon-link,
    .markdown-body h5 .octicon-link,
    .markdown-body h6 .octicon-link {
    color: #1b1f23;
    vertical-align: middle;
    visibility: hidden;
    }

    .markdown-body h1:hover .anchor,
    .markdown-body h2:hover .anchor,
    .markdown-body h3:hover .anchor,
    .markdown-body h4:hover .anchor,
    .markdown-body h5:hover .anchor,
    .markdown-body h6:hover .anchor {
    text-decoration: none;
    }

    .markdown-body h1:hover .anchor .octicon-link,
    .markdown-body h2:hover .anchor .octicon-link,
    .markdown-body h3:hover .anchor .octicon-link,
    .markdown-body h4:hover .anchor .octicon-link,
    .markdown-body h5:hover .anchor .octicon-link,
    .markdown-body h6:hover .anchor .octicon-link {
    visibility: visible;
    }

    .markdown-body h1 {
    padding-bottom: 0.3em;
    font-size: 2em;
    border-bottom: 1px solid #eaecef;
    }

    .markdown-body h2 {
    padding-bottom: 0.3em;
    font-size: 1.5em;
    border-bottom: 1px solid #eaecef;
    }

    .markdown-body h3 {
    font-size: 1.25em;
    }

    .markdown-body h4 {
    font-size: 1em;
    }

    .markdown-body h5 {
    font-size: 0.875em;
    }

    .markdown-body h6 {
    font-size: 0.85em;
    color: #6a737d;
    }

    .markdown-body ul,
    .markdown-body ol {
    padding-left: 2em;
    }

    .markdown-body ul ul,
    .markdown-body ul ol,
    .markdown-body ol ol,
    .markdown-body ol ul {
    margin-top: 0;
    margin-bottom: 0;
    }

    .markdown-body li>p {
    margin-top: 16px;
    }

    .markdown-body li+li {
    margin-top: 0.25em;
    }

    .markdown-body dl {
    padding: 0;
    }

    .markdown-body dl dt {
    padding: 0;
    margin-top: 16px;
    font-size: 1em;
    font-style: italic;
    font-weight: 600;
    }

    .markdown-body dl dd {
    padding: 0 16px;
    margin-bottom: 16px;
    }

    .markdown-body table {
    display: block;
    width: 100%;
    overflow: auto;
    }

    .markdown-body table th {
    font-weight: 600;
    }

    .markdown-body table th,
    .markdown-body table td {
    padding: 6px 13px;
    border: 1px solid #dfe2e5;
    }

    .markdown-body table tr {
    background-color: #fff;
    border-top: 1px solid #c6cbd1;
    }

    .markdown-body table tr:nth-child(2n) {
    background-color: #f6f8fa;
    }

    .markdown-body img {
    max-width: 100%;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    background-color: #fff;
    }

    .markdown-body code {
    padding: 0;
    padding-top: 0.2em;
    padding-bottom: 0.2em;
    margin: 0;
    font-size: 85%;
    background-color: rgba(27,31,35,0.05);
    border-radius: 3px;
    }

    .markdown-body code::before,
    .markdown-body code::after {
    letter-spacing: -0.2em;
    content: "\A0";
    }

    .markdown-body pre {
    word-wrap: normal;
    }

    .markdown-body pre>code {
    padding: 0;
    margin: 0;
    font-size: 100%;
    word-break: normal;
    white-space: pre;
    background: transparent;
    border: 0;
    }

    .markdown-body .highlight {
    margin-bottom: 16px;
    }

    .markdown-body .highlight pre {
    margin-bottom: 0;
    word-break: normal;
    }

    .markdown-body .highlight pre,
    .markdown-body pre {
    padding: 16px;
    overflow: auto;
    font-size: 85%;
    line-height: 1.45;
    background-color: #f6f8fa;
    border-radius: 3px;
    }

    .markdown-body pre code {
    display: inline;
    max-width: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    line-height: inherit;
    word-wrap: normal;
    background-color: transparent;
    border: 0;
    }

    .markdown-body pre code::before,
    .markdown-body pre code::after {
    content: normal;
    }

    .markdown-body .full-commit .btn-outline:not(:disabled):hover {
    color: #005cc5;
    border-color: #005cc5;
    }

    .markdown-body kbd {
    display: inline-block;
    padding: 3px 5px;
    font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
    line-height: 10px;
    color: #444d56;
    vertical-align: middle;
    background-color: #fafbfc;
    border: solid 1px #d1d5da;
    border-bottom-color: #c6cbd1;
    border-radius: 3px;
    -webkit-box-shadow: inset 0 -1px 0 #c6cbd1;
    box-shadow: inset 0 -1px 0 #c6cbd1;
    }

    .markdown-body :checked+.radio-label {
    position: relative;
    z-index: 1;
    border-color: #0366d6;
    }

    .markdown-body .task-list-item {
    list-style-type: none;
    }

    .markdown-body .task-list-item+.task-list-item {
    margin-top: 3px;
    }

    .markdown-body .task-list-item input {
    margin: 0 0.2em 0.25em -1.6em;
    vertical-align: middle;
    }

    .markdown-body hr {
    border-bottom-color: #eee;
    }
    /* variables */
    /* functions & mixins */
    /* variables - calculated */
    /* styles */
    .gt-container {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    font-size: 16px;
    /* loader */
    /* error */
    /* initing */
    /* no int */
    /* link */
    /* meta */
    /* popup */
    /* header */
    /* comments */
    /* comment */
    }
    .gt-container * {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    }
    .gt-container a {
    color: #6190e8;
    }
    .gt-container a:hover {
    color: #81a6ed;
    border-color: #81a6ed;
    }
    .gt-container a.is--active {
    color: #333;
    cursor: default !important;
    }
    .gt-container a.is--active:hover {
    color: #333;
    }
    .gt-container .hide {
    display: none !important;
    }
    .gt-container .gt-svg {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: sub;
    }
    .gt-container .gt-svg svg {
    width: 100%;
    height: 100%;
    fill: #6190e8;
    }
    .gt-container .gt-ico {
    display: inline-block;
    }
    .gt-container .gt-ico-text {
    margin-left: 0.3125em;
    }
    .gt-container .gt-ico-github {
    width: 100%;
    height: 100%;
    }
    .gt-container .gt-ico-github .gt-svg {
    width: 100%;
    height: 100%;
    }
    .gt-container .gt-ico-github svg {
    fill: inherit;
    }
    .gt-container .gt-spinner {
    position: relative;
    }
    .gt-container .gt-spinner::before {
    content: '';
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    position: absolute;
    top: 3px;
    width: 0.75em;
    height: 0.75em;
    margin-top: -0.1875em;
    margin-left: -0.375em;
    border-radius: 50%;
    border: 1px solid #fff;
    border-top-color: #6190e8;
    -webkit-animation: gt-kf-rotate 0.6s linear infinite;
    animation: gt-kf-rotate 0.6s linear infinite;
    }
    .gt-container .gt-loader {
    position: relative;
    border: 1px solid #999;
    -webkit-animation: ease gt-kf-rotate 1.5s infinite;
    animation: ease gt-kf-rotate 1.5s infinite;
    display: inline-block;
    font-style: normal;
    width: 1.75em;
    height: 1.75em;
    line-height: 1.75em;
    border-radius: 50%;
    }
    .gt-container .gt-loader:before {
    content: '';
    position: absolute;
    display: block;
    top: 0;
    left: 50%;
    margin-top: -0.1875em;
    margin-left: -0.1875em;
    width: 0.375em;
    height: 0.375em;
    background-color: #999;
    border-radius: 50%;
    }
    .gt-container .gt-avatar {
    display: inline-block;
    width: 2em;
    height: 2em;
    }
    @media (max-width: 479px) {
    .gt-container .gt-avatar {
    width: 2em;
    height: 2em;
    }
    }
    .gt-container .gt-avatar img {
    width: 100%;
    height: auto;
    border-radius: 3px;
    }
    .gt-container .gt-avatar-github {
    display: none;
    width: 1.875em;
    height: 1.875em;
    }
    @media (max-width: 479px) {
    .gt-container .gt-avatar-github {
    width: 1.875em;
    height: 1.875em;
    }
    }
    .gt-container .gt-btn {
    padding: 0.75em 1.25em;
    display: inline-block;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid #6190e8;
    border-radius: 5px;
    background-color: #6190e8;
    color: #fff;
    outline: none;
    font-size: 0.75em;
    }
    .gt-container .gt-btn-text {
    font-weight: 400;
    }
    .gt-container .gt-btn-loading {
    position: relative;
    margin-left: 0.5em;
    display: inline-block;
    width: 0.75em;
    height: 1em;
    vertical-align: top;
    }
    .gt-container .gt-btn.is--disable {
    cursor: not-allowed;
    opacity: 0.5;
    }
    .gt-container .gt-btn-login {
    margin-left: 0;
    margin-right: 0;
    }
    .gt-container .gt-btn-preview {
    display: none;
    background-color: #fff;
    color: #6190e8;
    }
    .gt-container .gt-btn-preview:hover {
    display: none;
    background-color: #f2f2f2;
    border-color: #81a6ed;
    }
    .gt-container .gt-btn-public:hover {
    background-color: #81a6ed;
    border-color: #81a6ed;
    }
    .gt-container .gt-error {
    text-align: center;
    margin: 0.625em;
    color: #ff3860;
    }
    .gt-container .gt-initing {
    padding: 1.25em 0;
    text-align: center;
    }
    .gt-container .gt-initing-text {
    margin: 0.625em auto;
    font-size: 92%;
    }
    .gt-container .gt-no-init {
    padding: 1.25em 0;
    text-align: center;
    }
    .gt-container .gt-link {
    border-bottom: 1px dotted #6190e8;
    }
    .gt-container .gt-link-counts,
    .gt-container .gt-link-project {
    text-decoration: none;
    }
    .gt-container .gt-meta {
    display: none;
    margin: 1.25em 0;
    padding: 1em 0;
    position: relative;
    border-bottom: 1px solid #e9e9e9;
    font-size: 1em;
    position: relative;
    z-index: 10;
    }
    .gt-container .gt-meta:before,
    .gt-container .gt-meta:after {
    content: " ";
    display: table;
    }
    .gt-container .gt-meta:after {
    clear: both;
    }
    .gt-container .gt-counts {
    margin: 0 0.625em 0 0;
    }
    .gt-container .gt-user {
    float: right;
    margin: 0;
    font-size: 92%;
    }
    .gt-container .gt-user-pic {
    width: 16px;
    height: 16px;
    vertical-align: top;
    margin-right: 0.5em;
    }
    .gt-container .gt-user-inner {
    display: inline-block;
    cursor: pointer;
    }
    .gt-container .gt-user .gt-ico {
    margin: 0 0 0 0.3125em;
    }
    .gt-container .gt-user .gt-ico svg {
    fill: inherit;
    }
    .gt-container .gt-user .is--poping .gt-ico svg {
    fill: #6190e8;
    }
    .gt-container .gt-version {
    color: #a1a1a1;
    margin-left: 0.375em;
    }
    .gt-container .gt-copyright {
    margin: 0 0.9375em 0.5em;
    border-top: 1px solid #e9e9e9;
    padding-top: 0.5em;
    }
    .gt-container .gt-popup {
    position: absolute;
    right: 0;
    top: 2.375em;
    background: #fff;
    display: inline-block;
    border: 1px solid #e9e9e9;
    padding: 0.625em 0;
    font-size: 0.875em;
    letter-spacing: 0.5px;
    }
    .gt-container .gt-popup .gt-action {
    cursor: pointer;
    display: block;
    margin: 0.5em 0;
    padding: 0 1.125em;
    position: relative;
    text-decoration: none;
    }
    .gt-container .gt-popup .gt-action.is--active:before {
    content: '';
    width: 0.25em;
    height: 0.25em;
    background: #6190e8;
    position: absolute;
    left: 0.5em;
    top: 0.4375em;
    }
    .gt-container .gt-header {
    margin-left: 1.625em;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    }
    .gt-container .gt-header-comment {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    margin: 0 2em 1em 2em;
    }
    @media (max-width: 479px) {
    .gt-container .gt-header-comment {
    margin-left: 0;
    }
    }
    .gt-container .gt-header-textarea {
    padding: 0.75em;
    display: block;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    min-height: 5.125em;
    max-height: 15em;
    border-radius: 5px;
    border: 1px solid rgba(0,0,0,0.1);
    font-size: 0.875em;
    word-wrap: break-word;
    resize: vertical;
    background-color: #f6f6f6;
    outline: none;
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease;
    }
    .gt-container .gt-header-textarea:hover {
    background-color: #fbfbfb;
    }
    .gt-container .gt-header-preview {
    padding: 0.75em;
    border-radius: 5px;
    border: 1px solid rgba(0,0,0,0.1);
    background-color: #f6f6f6;
    }
    .gt-container .gt-header-controls {
    position: relative;
    margin: 0;
    }
    .gt-container .gt-header-controls:before,
    .gt-container .gt-header-controls:after {
    content: " ";
    display: table;
    }
    .gt-container .gt-header-controls:after {
    clear: both;
    }
    @media (max-width: 479px) {
    .gt-container .gt-header-controls {
    margin: 0;
    }
    }
    .gt-container .gt-header-controls-tip {
    display: none;
    font-size: 0.875em;
    color: #6190e8;
    text-decoration: none;
    vertical-align: sub;
    }
    @media (max-width: 479px) {
    .gt-container .gt-header-controls-tip {
    display: none;
    }
    }
    .gt-container .gt-header-controls .gt-btn {
    float: none;
    width: 100%;
    margin: 0.75em 0 0;
    margin-left: 0;
    }
    @media (max-width: 479px) {
    .gt-container .gt-header-controls .gt-btn {
    float: none;
    width: 100%;
    margin: 0.75em 0 0;
    }
    }
    .gt-container:after {
    content: '';
    position: fixed;
    bottom: 100%;
    left: 0;
    right: 0;
    top: 0;
    opacity: 0;
    }
    .gt-container.gt-input-focused {
    position: relative;
    }
    .gt-container.gt-input-focused:after {
    content: '';
    position: fixed;
    bottom: 0%;
    left: 0;
    right: 0;
    top: 0;
    background: #000;
    opacity: 0.6;
    -webkit-transition: opacity 0.3s, bottom 0s;
    transition: opacity 0.3s, bottom 0s;
    z-index: 9999;
    }
    .gt-container.gt-input-focused .gt-header-comment {
    z-index: 10000;
    }
    .gt-container .gt-comments {
    padding-top: 0;
    }
    .gt-container .gt-comments-null {
    text-align: center;
    }
    .gt-container .gt-comments-controls {
    margin: 1.25em 0;
    text-align: center;
    }
    .gt-container .gt-comment {
    margin-left: 0.875em;
    padding: 0.625em 0.75em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    }
    .gt-container .gt-comment-content {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    margin-left: 0;
    padding: 0.375em 0.75em;
    background-color: #f9f9f9;
    overflow: auto;
    -webkit-transition: all ease 0.25s;
    transition: all ease 0.25s;
    }
    .gt-container .gt-comment-content:hover {
    -webkit-box-shadow: 0 0.625em 3.75em 0 #f4f4f4;
    box-shadow: 0 0.625em 3.75em 0 #f4f4f4;
    }
    @media (max-width: 479px) {
    .gt-container .gt-comment-content {
    margin-left: 0.875em;
    padding: 0.625em 0.75em;
    }
    }
    .gt-container .gt-comment-header {
    margin-bottom: 0.5em;
    font-size: 0.875em;
    position: relative;
    }
    .gt-container .gt-comment-block-1 {
    float: right;
    height: 1.375em;
    width: 2em;
    }
    .gt-container .gt-comment-block-2 {
    float: right;
    height: 1.375em;
    width: 4em;
    }
    .gt-container .gt-comment-username {
    display: none;
    }
    .gt-container .gt-comment-username:hover {
    text-decoration: underline;
    }
    .gt-container .gt-comment-text {
    display: none;
    }
    .gt-container .gt-comment-date {
    margin-left: 0.5em;
    color: #a1a1a1;
    }
    .gt-container .gt-comment-like,
    .gt-container .gt-comment-edit,
    .gt-container .gt-comment-reply {
    display: none;
    }
    .gt-container .gt-comment-like:hover,
    .gt-container .gt-comment-edit:hover,
    .gt-container .gt-comment-reply:hover {
    cursor: pointer;
    }
    .gt-container .gt-comment-like {
    top: 0;
    right: 2em;
    }
    .gt-container .gt-comment-edit,
    .gt-container .gt-comment-reply {
    top: 0;
    right: 0;
    }
    .gt-container .gt-comment-body {
    color: #333 !important;
    }
    .gt-container .gt-comment-body .email-hidden-toggle a {
    display: inline-block;
    height: 12px;
    padding: 0 9px;
    font-size: 12px;
    font-weight: 600;
    line-height: 6px;
    color: #444d56;
    text-decoration: none;
    vertical-align: middle;
    background: #dfe2e5;
    border-radius: 1px;
    }
    .gt-container .gt-comment-body .email-hidden-toggle a:hover {
    background-color: #c6cbd1;
    }
    .gt-container .gt-comment-body .email-hidden-reply {
    display: none;
    white-space: pre-wrap;
    }
    .gt-container .gt-comment-body .email-hidden-reply .email-signature-reply {
    padding: 0 15px;
    margin: 15px 0;
    color: #586069;
    border-left: 4px solid #dfe2e5;
    }
    .gt-container .gt-comment-body .email-hidden-reply.expanded {
    display: block;
    }
    .gt-container .gt-comment-admin .gt-comment-content {
    background-color: #f6f9fe;
    }
    @-webkit-keyframes gt-kf-rotate {
    0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
    }
    100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    }
    }
    @keyframes gt-kf-rotate {
    0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
    }
    100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    }
    }

    /*# sourceMappingURL=gitalk.css.map*/
  • JS代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Gitalk=t():e.Gitalk=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist",t(t.s=82)}([function(e,t){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(39)("wks"),o=n(25),i=n(1).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";function r(e){return"[object Array]"===C.call(e)}function o(e){return void 0===e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function a(e){return"[object ArrayBuffer]"===C.call(e)}function u(e){return"undefined"!=typeof FormData&&e instanceof FormData}function s(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function l(e){return"number"==typeof e}function f(e){return null!==e&&"object"==typeof e}function p(e){return"[object Date]"===C.call(e)}function d(e){return"[object File]"===C.call(e)}function h(e){return"[object Blob]"===C.call(e)}function m(e){return"[object Function]"===C.call(e)}function v(e){return f(e)&&m(e.pipe)}function y(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function g(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function b(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function w(e,t){if(null!==e&&void 0!==e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}function _(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=_(t[n],e):t[n]=e}for(var t={},n=0,r=arguments.length;n<r;n++)w(arguments[n],e);return t}function x(){function e(e,n){"object"==typeof t[n]&&"object"==typeof e?t[n]=x(t[n],e):t[n]="object"==typeof e?x({},e):e}for(var t={},n=0,r=arguments.length;n<r;n++)w(arguments[n],e);return t}function S(e,t,n){return w(t,function(t,r){e[r]=n&&"function"==typeof t?E(t,n):t}),e}var E=n(72),C=Object.prototype.toString;e.exports={isArray:r,isArrayBuffer:a,isBuffer:i,isFormData:u,isArrayBufferView:s,isString:c,isNumber:l,isObject:f,isUndefined:o,isDate:p,isFile:d,isBlob:h,isFunction:m,isStream:v,isURLSearchParams:y,isStandardBrowserEnv:b,forEach:w,merge:_,deepMerge:x,extend:S,trim:g}},function(e,t,n){var r=n(1),o=n(0),i=n(13),a=n(11),u=n(12),s=function(e,t,n){var c,l,f,p=e&s.F,d=e&s.G,h=e&s.S,m=e&s.P,v=e&s.B,y=e&s.W,g=d?o:o[t]||(o[t]={}),b=g.prototype,w=d?r:h?r[t]:(r[t]||{}).prototype;d&&(n=t);for(c in n)(l=!p&&w&&void 0!==w[c])&&u(g,c)||(f=l?w[c]:n[c],g[c]=d&&"function"!=typeof w[c]?n[c]:v&&l?i(f,r):y&&w[c]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):m&&"function"==typeof f?i(Function.call,f):f,m&&((g.virtual||(g.virtual={}))[c]=f,e&s.R&&b&&!b[c]&&a(b,c,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(){return null}function o(e){var t=e.nodeName,n=e.attributes;e.attributes={},t.defaultProps&&_(e.attributes,t.defaultProps),n&&_(e.attributes,n)}function i(e,t){var n,r,o;if(t){for(o in t)if(n=W.test(o))break;if(n){r=e.attributes={};for(o in t)t.hasOwnProperty(o)&&(r[W.test(o)?o.replace(/([A-Z0-9])/,"-$1").toLowerCase():o]=t[o])}}}function a(e,t,n){var r=t&&t._preactCompatRendered&&t._preactCompatRendered.base;r&&r.parentNode!==t&&(r=null),r||(r=t.children[0]);for(var o=t.childNodes.length;o--;)t.childNodes[o]!==r&&t.removeChild(t.childNodes[o]);var i=G.render(e,t,r);return t&&(t._preactCompatRendered=i&&(i._component||{base:i})),"function"==typeof n&&n(),i&&i._component||i}function u(e,t,n,r){var o=G.h(J,{context:e.context},t),i=a(o,n);return r&&r(i),i._component||i.base}function s(e){var t=e._preactCompatRendered&&e._preactCompatRendered.base;return!(!t||t.parentNode!==e)&&(G.render(G.h(r),e,t),!0)}function c(e){return h.bind(null,e)}function l(e,t){for(var n=t||0;n<e.length;n++){var r=e[n];Array.isArray(r)?l(r):r&&"object"==typeof r&&!y(r)&&(r.props&&r.type||r.attributes&&r.nodeName||r.children)&&(e[n]=h(r.type||r.nodeName,r.props||r.attributes,r.children))}}function f(e){return"function"==typeof e&&!(e.prototype&&e.prototype.render)}function p(e){return C({displayName:e.displayName||e.name,render:function(){return e(this.props,this.context)}})}function d(e){var t=e[$];return t?!0===t?e:t:(t=p(e),Object.defineProperty(t,$,{configurable:!0,value:!0}),t.displayName=e.displayName,t.propTypes=e.propTypes,t.defaultProps=e.defaultProps,Object.defineProperty(e,$,{configurable:!0,value:t}),t)}function h(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return l(e,2),m(G.h.apply(void 0,e))}function m(e){e.preactCompatNormalized=!0,w(e),f(e.nodeName)&&(e.nodeName=d(e.nodeName));var t=e.attributes.ref,n=t&&typeof t;return!Z||"string"!==n&&"number"!==n||(e.attributes.ref=g(t,Z)),b(e),e}function v(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];if(!y(e))return e;var o=e.attributes||e.props,i=G.h(e.nodeName||e.type,o,e.children||o&&o.children),a=[i,t];return n&&n.length?a.push(n):t&&t.children&&a.push(t.children),m(G.cloneElement.apply(void 0,a))}function y(e){return e&&(e instanceof Y||e.$$typeof===H)}function g(e,t){return t._refProxies[e]||(t._refProxies[e]=function(n){t&&t.refs&&(t.refs[e]=n,null===n&&(delete t._refProxies[e],t=null))})}function b(e){var t=e.nodeName,n=e.attributes;if(n&&"string"==typeof t){var r={};for(var o in n)r[o.toLowerCase()]=o;if(r.ondoubleclick&&(n.ondblclick=n[r.ondoubleclick],delete n[r.ondoubleclick]),r.onchange&&("textarea"===t||"input"===t.toLowerCase()&&!/^fil|che|rad/i.test(n.type))){var i=r.oninput||"oninput";n[i]||(n[i]=P([n[i],n[r.onchange]]),delete n[r.onchange])}}}function w(e){var t=e.attributes;if(t){var n=t.className||t.class;n&&(t.className=n)}}function _(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function x(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1}function S(e){return e&&e.base||e}function E(){}function C(e){function t(e,t){k(this),I.call(this,e,t,V),T.call(this,e,t)}return e=_({constructor:t},e),e.mixins&&O(e,N(e.mixins)),e.statics&&_(t,e.statics),e.propTypes&&(t.propTypes=e.propTypes),e.defaultProps&&(t.defaultProps=e.defaultProps),e.getDefaultProps&&(t.defaultProps=e.getDefaultProps()),E.prototype=I.prototype,t.prototype=_(new E,e),t.displayName=e.displayName||"Component",t}function N(e){for(var t={},n=0;n<e.length;n++){var r=e[n];for(var o in r)r.hasOwnProperty(o)&&"function"==typeof r[o]&&(t[o]||(t[o]=[])).push(r[o])}return t}function O(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=P(t[n].concat(e[n]||Q),"getDefaultProps"===n||"getInitialState"===n||"getChildContext"===n))}function k(e){for(var t in e){var n=e[t];"function"!=typeof n||n.__bound||U.hasOwnProperty(t)||((e[t]=n.bind(e)).__bound=!0)}}function M(e,t,n){if("string"==typeof t&&(t=e.constructor.prototype[t]),"function"==typeof t)return t.apply(e,n)}function P(e,t){return function(){for(var n,r=arguments,o=this,i=0;i<e.length;i++){var a=M(o,e[i],r);if(t&&null!=a){n||(n={});for(var u in a)a.hasOwnProperty(u)&&(n[u]=a[u])}else void 0!==a&&(n=a)}return n}}function T(e,t){A.call(this,e,t),this.componentWillReceiveProps=P([A,this.componentWillReceiveProps||"componentWillReceiveProps"]),this.render=P([A,j,this.render||"render",D])}function A(e,t){if(e){var n=e.children;if(n&&Array.isArray(n)&&1===n.length&&(e.children=n[0],e.children&&"object"==typeof e.children&&(e.children.length=1,e.children[0]=e.children)),X){var r="function"==typeof this?this:this.constructor,o=this.propTypes||r.propTypes,i=this.displayName||r.name;o&&F.a.checkPropTypes(o,e,"prop",i)}}}function j(e){Z=this}function D(){Z===this&&(Z=null)}function I(e,t,n){G.Component.call(this,e,t),this.state=this.getInitialState?this.getInitialState():{},this.refs={},this._refProxies={},n!==V&&T.call(this,e,t)}function L(e,t){I.call(this,e,t)}n.d(t,"version",function(){return B}),n.d(t,"DOM",function(){return te}),n.d(t,"Children",function(){return ee}),n.d(t,"render",function(){return a}),n.d(t,"createClass",function(){return C}),n.d(t,"createFactory",function(){return c}),n.d(t,"createElement",function(){return h}),n.d(t,"cloneElement",function(){return v}),n.d(t,"isValidElement",function(){return y}),n.d(t,"findDOMNode",function(){return S}),n.d(t,"unmountComponentAtNode",function(){return s}),n.d(t,"Component",function(){return I}),n.d(t,"PureComponent",function(){return L}),n.d(t,"unstable_renderSubtreeIntoContainer",function(){return u});var R=n(86),F=n.n(R),G=n(93);n.n(G);n.d(t,"PropTypes",function(){return F.a});var B="15.1.0",z="a abbr address area article aside audio b base bdi bdo big blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd keygen label legend li link main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt ruby s samp script section select small source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr circle clipPath defs ellipse g image line linearGradient mask path pattern polygon polyline radialGradient rect stop svg text tspan".split(" "),H="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,$="undefined"!=typeof Symbol?Symbol.for("__preactCompatWrapper"):"__preactCompatWrapper",U={constructor:1,render:1,shouldComponentUpdate:1,componentWillReceiveProps:1,componentWillUpdate:1,componentDidUpdate:1,componentWillMount:1,componentDidMount:1,componentWillUnmount:1,componentDidUnmount:1},W=/^(?:accent|alignment|arabic|baseline|cap|clip|color|fill|flood|font|glyph|horiz|marker|overline|paint|stop|strikethrough|stroke|text|underline|unicode|units|v|vert|word|writing|x)[A-Z]/,V={},X=void 0===e||!e.env||"production"!==e.env.NODE_ENV,Y=G.h("a",null).constructor;Y.prototype.$$typeof=H,Y.prototype.preactCompatUpgraded=!1,Y.prototype.preactCompatNormalized=!1,Object.defineProperty(Y.prototype,"type",{get:function(){return this.nodeName},set:function(e){this.nodeName=e},configurable:!0}),Object.defineProperty(Y.prototype,"props",{get:function(){return this.attributes},set:function(e){this.attributes=e},configurable:!0});var q=G.options.event;G.options.event=function(e){return q&&(e=q(e)),e.persist=Object,e.nativeEvent=e,e};var K=G.options.vnode;G.options.vnode=function(e){if(!e.preactCompatUpgraded){e.preactCompatUpgraded=!0;var t=e.nodeName,n=e.attributes=_({},e.attributes);"function"==typeof t?(!0===t[$]||t.prototype&&"isReactComponent"in t.prototype)&&(e.children&&""===String(e.children)&&(e.children=void 0),e.children&&(n.children=e.children),e.preactCompatNormalized||m(e),o(e)):(e.children&&""===String(e.children)&&(e.children=void 0),e.children&&(n.children=e.children),n.defaultValue&&(n.value||0===n.value||(n.value=n.defaultValue),delete n.defaultValue),i(e,n))}K&&K(e)};var J=function(){};J.prototype.getChildContext=function(){return this.props.context},J.prototype.render=function(e){return e.children[0]};for(var Z,Q=[],ee={map:function(e,t,n){return null==e?null:(e=ee.toArray(e),n&&n!==e&&(t=t.bind(n)),e.map(t))},forEach:function(e,t,n){if(null==e)return null;e=ee.toArray(e),n&&n!==e&&(t=t.bind(n)),e.forEach(t)},count:function(e){return e&&e.length||0},only:function(e){if(e=ee.toArray(e),1!==e.length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:function(e){return null==e?[]:Array.isArray&&Array.isArray(e)?e:Q.concat(e)}},te={},ne=z.length;ne--;)te[z[ne]]=c(z[ne]);_(I.prototype=new G.Component,{constructor:I,isReactComponent:{},replaceState:function(e,t){var n=this;this.setState(e,t);for(var r in n.state)r in e||delete n.state[r]},getDOMNode:function(){return this.base},isMounted:function(){return!!this.base}}),E.prototype=I.prototype,L.prototype=new E,L.prototype.isPureReactComponent=!0,L.prototype.shouldComponentUpdate=function(e,t){return x(this.props,e)||x(this.state,t)};var re={version:B,DOM:te,PropTypes:F.a,Children:ee,render:a,createClass:C,createFactory:c,createElement:h,cloneElement:v,isValidElement:y,findDOMNode:S,unmountComponentAtNode:s,Component:I,PureComponent:L,unstable_renderSubtreeIntoContainer:u};t.default=re}.call(t,n(9))},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(6),o=n(48),i=n(32),a=Object.defineProperty;t.f=n(8)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function i(e){if(f===clearTimeout)return clearTimeout(e);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?h=d.concat(h):v=-1,h.length&&u())}function u(){if(!m){var e=o(a);m=!0;for(var t=h.length;t;){for(d=h,h=[];++v<t;)d&&d[v].run();v=-1,t=h.length}d=null,m=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function c(){}var l,f,p=e.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(e){l=n}try{f="function"==typeof clearTimeout?clearTimeout:r}catch(e){f=r}}();var d,h=[],m=!1,v=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];h.push(new s(e,t)),1!==h.length||m||o(u)},s.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=c,p.addListener=c,p.once=c,p.off=c,p.removeListener=c,p.removeAllListeners=c,p.emit=c,p.prependListener=c,p.prependOnceListener=c,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(7),o=n(19);e.exports=n(8)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(24);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports={}},function(e,t,n){var r=n(54),o=n(35);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(35);e.exports=function(e){return Object(r(e))}},function(e,t,n){function r(e,t){if(l(e))return new Date(e.getTime());if("string"!=typeof e)return new Date(e);var n=t||{},r=n.additionalDigits;r=null==r?d:Number(r);var c=o(e),f=i(c.date,r),h=f.year,m=f.restDateString,v=a(m,h);if(v){var y,g=v.getTime(),b=0;return c.time&&(b=u(c.time)),c.timezone?y=s(c.timezone):(y=new Date(g+b).getTimezoneOffset(),y=new Date(g+b+y*p).getTimezoneOffset()),new Date(g+b+y*p)}return new Date(e)}function o(e){var t,n={},r=e.split(h);if(m.test(r[0])?(n.date=null,t=r[0]):(n.date=r[0],t=r[1]),t){var o=k.exec(t);o?(n.time=t.replace(o[1],""),n.timezone=o[1]):n.time=t}return n}function i(e,t){var n,r=y[t],o=b[t];if(n=g.exec(e)||o.exec(e)){var i=n[1];return{year:parseInt(i,10),restDateString:e.slice(i.length)}}if(n=v.exec(e)||r.exec(e)){var a=n[1];return{year:100*parseInt(a,10),restDateString:e.slice(a.length)}}return{year:null}}function a(e,t){if(null===t)return null;var n,r,o,i;if(0===e.length)return r=new Date(0),r.setUTCFullYear(t),r;if(n=w.exec(e))return r=new Date(0),o=parseInt(n[1],10)-1,r.setUTCFullYear(t,o),r;if(n=_.exec(e)){r=new Date(0);var a=parseInt(n[1],10);return r.setUTCFullYear(t,0,a),r}if(n=x.exec(e)){r=new Date(0),o=parseInt(n[1],10)-1;var u=parseInt(n[2],10);return r.setUTCFullYear(t,o,u),r}if(n=S.exec(e))return i=parseInt(n[1],10)-1,c(t,i);if(n=E.exec(e)){i=parseInt(n[1],10)-1;return c(t,i,parseInt(n[2],10)-1)}return null}function u(e){var t,n,r;if(t=C.exec(e))return(n=parseFloat(t[1].replace(",",".")))%24*f;if(t=N.exec(e))return n=parseInt(t[1],10),r=parseFloat(t[2].replace(",",".")),n%24*f+r*p;if(t=O.exec(e)){n=parseInt(t[1],10),r=parseInt(t[2],10);var o=parseFloat(t[3].replace(",","."));return n%24*f+r*p+1e3*o}return null}function s(e){var t,n;return(t=M.exec(e))?0:(t=P.exec(e))?(n=60*parseInt(t[2],10),"+"===t[1]?-n:n):(t=T.exec(e),t?(n=60*parseInt(t[2],10)+parseInt(t[3],10),"+"===t[1]?-n:n):0)}function c(e,t,n){t=t||0,n=n||0;var r=new Date(0);r.setUTCFullYear(e,0,4);var o=r.getUTCDay()||7,i=7*t+n+1-o;return r.setUTCDate(r.getUTCDate()+i),r}var l=n(202),f=36e5,p=6e4,d=2,h=/[T ]/,m=/:/,v=/^(\d{2})$/,y=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],g=/^(\d{4})/,b=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],w=/^-(\d{2})$/,_=/^-?(\d{3})$/,x=/^-?(\d{2})-?(\d{2})$/,S=/^-?W(\d{2})$/,E=/^-?W(\d{2})-?(\d{1})$/,C=/^(\d{2}([.,]\d*)?)$/,N=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,O=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,k=/([Z+-].*)$/,M=/^(Z)$/,P=/^([+-])(\d{2})$/,T=/^([+-])(\d{2}):?(\d{2})$/;e.exports=r},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(101)(!0);n(51)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports=!0},function(e,t,n){var r=n(53),o=n(40);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(7).f,o=n(12),i=n(2)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){n(106);for(var r=n(1),o=n(11),i=n(15),a=n(2)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<u.length;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(83),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,o.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){var r=n(10),o=n(1).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(10);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t,n){var r=n(6),o=n(103),i=n(40),a=n(38)("IE_PROTO"),u=function(){},s=function(){var e,t=n(31)("iframe"),r=i.length;for(t.style.display="none",n(55).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[i[r]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(u.prototype=r(e),n=new u,u.prototype=null,n[a]=e):n=s(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(34),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(39)("keys"),o=n(25);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(0),o=n(1),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(21)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(23),o=n(2)("toStringTag"),i="Arguments"==r(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=a(t=Object(e),o))?n:i?r(t):"Object"==(u=r(t))&&"function"==typeof t.callee?"Arguments":u}},function(e,t,n){var r=n(41),o=n(2)("iterator"),i=n(15);e.exports=n(0).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){"use strict";function r(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=o(t),this.reject=o(n)}var o=n(24);e.exports.f=function(e){return new r(e)}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){t.f=n(2)},function(e,t,n){var r=n(1),o=n(0),i=n(21),a=n(45),u=n(7).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||u(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n={};return Object.keys(e).forEach(function(r){-1===t.indexOf(r)&&(n[r]=e[r])}),n}function o(e,t){if(e===t)return!0;var n=!Array.isArray(e)||!Array.isArray(t),r=e.length!==t.length;return!n&&!r&&e.every(function(e,n){return e===t[n]})}Object.defineProperty(t,"__esModule",{value:!0}),t.omit=r,t.arraysEqual=o;t.isElementAnSFC=function(e){return!("string"==typeof e.type||e.type.prototype.isReactComponent)},t.hyphenate=function(e){var t={};return function(n){return t[n]||(t[n]=e(n)),t[n]}}(function(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()})},function(e,t,n){e.exports=!n(8)&&!n(14)(function(){return 7!=Object.defineProperty(n(31)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";(function(t){"production"===t.env.NODE_ENV?e.exports=n(87):e.exports=n(88)}).call(t,n(9))},function(e,t){},function(e,t,n){"use strict";var r=n(21),o=n(4),i=n(52),a=n(11),u=n(15),s=n(102),c=n(26),l=n(56),f=n(2)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};e.exports=function(e,t,n,h,m,v,y){s(n,t,h);var g,b,w,_=function(e){if(!p&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",S="values"==m,E=!1,C=e.prototype,N=C[f]||C["@@iterator"]||m&&C[m],O=N||_(m),k=m?S?_("entries"):O:void 0,M="Array"==t?C.entries||N:N;if(M&&(w=l(M.call(new e)))!==Object.prototype&&w.next&&(c(w,x,!0),r||"function"==typeof w[f]||a(w,f,d)),S&&N&&"values"!==N.name&&(E=!0,O=function(){return N.call(this)}),r&&!y||!p&&!E&&C[f]||a(C,f,O),u[t]=O,u[x]=d,m)if(g={values:S?O:_("values"),keys:v?O:_("keys"),entries:k},y)for(b in g)b in C||i(C,b,g[b]);else o(o.P+o.F*(p||E),t,g);return g}},function(e,t,n){e.exports=n(11)},function(e,t,n){var r=n(12),o=n(16),i=n(104)(!1),a=n(38)("IE_PROTO");e.exports=function(e,t){var n,u=o(e),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;t.length>s;)r(u,n=t[s++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){var r=n(23);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(1).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(12),o=n(17),i=n(38)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var r=n(6);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(15),o=n(2)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(6),o=n(24),i=n(2)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[i])?t:o(n)}},function(e,t,n){var r,o,i,a=n(13),u=n(112),s=n(55),c=n(31),l=n(1),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,m=l.Dispatch,v=0,y={},g=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},b=function(e){g.call(e.data)};p&&d||(p=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return y[++v]=function(){u("function"==typeof e?e:Function(e),t)},r(v),v},d=function(e){delete y[e]},"process"==n(23)(f)?r=function(e){f.nextTick(a(g,e,1))}:m&&m.now?r=function(e){m.now(a(g,e,1))}:h?(o=new h,i=o.port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){s.appendChild(c("script")).onreadystatechange=function(){s.removeChild(this),g.call(e)}}:function(e){setTimeout(a(g,e,1),0)}),e.exports={set:p,clear:d}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(6),o=n(10),i=n(43);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(2)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){e.exports={default:n(123),__esModule:!0}},function(e,t,n){var r=n(4),o=n(0),i=n(14);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(67),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(125),i=r(o),a=n(127),u=r(a),s="function"==typeof u.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":typeof e};t.default="function"==typeof u.default&&"symbol"===s(i.default)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":s(e)}},function(e,t,n){var r=n(53),o=n(40).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(28),o=n(19),i=n(16),a=n(32),u=n(12),s=n(48),c=Object.getOwnPropertyDescriptor;t.f=n(8)?c:function(e,t){if(e=i(e),t=a(t,!0),s)try{return c(e,t)}catch(e){}if(u(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(136),i=r(o),a=n(140),u=r(a),s=n(67),c=r(s);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,c.default)(t)));e.prototype=(0,u.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.hasClassInParent=t.formatErrorMsg=t.getMetaContent=t.axiosGithub=t.axiosJSON=t.queryStringify=t.queryParse=void 0;var o=n(161),i=r(o),a=n(164),u=r(a),s=n(171),c=r(s);t.queryParse=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.search;if(!e)return{};var t="?"===e[0]?e.substring(1):e,n={};return t.split("&").forEach(function(e){var t=e.split("="),r=(0,u.default)(t,2),o=r[0],i=r[1];o&&(n[decodeURIComponent(o)]=decodeURIComponent(i))}),n},t.queryStringify=function(e){return(0,i.default)(e).map(function(t){return t+"="+encodeURIComponent(e[t]||"")}).join("&")},t.axiosJSON=c.default.create({headers:{Accept:"application/json"}}),t.axiosGithub=c.default.create({baseURL:"https://api.github.com",headers:{Accept:"application/json"}}),t.getMetaContent=function(e,t){t||(t="content");var n=window.document.querySelector("meta[name='"+e+"']");return n&&n.getAttribute(t)},t.formatErrorMsg=function(e){var t="Error: ";return e.response&&e.response.data&&e.response.data.message?(t+=e.response.data.message+". ",e.response.data.errors&&(t+=e.response.data.errors.map(function(e){return e.message}).join(", "))):t+=e.message,t},t.hasClassInParent=function e(t){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var i=!1;if(void 0===t.className)return!1;var a=t.className.split(" ");return r.forEach(function(e,t){i=i||a.indexOf(e)>=0}),i||t.parentNode&&e(t.parentNode,r)}},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=n(3);e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(o.isURLSearchParams(t))i=t.toString();else{var a=[];o.forEach(t,function(e,t){null!==e&&void 0!==e&&(o.isArray(e)?t+="[]":e=[e],o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),a.push(r(t)+"="+r(e))}))}),i=a.join("&")}if(i){var u=e.indexOf("#");-1!==u&&(e=e.slice(0,u)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";(function(t){function r(e,t){!o.isUndefined(e)&&o.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var o=n(3),i=n(177),a={"Content-Type":"application/x-www-form-urlencoded"},u={adapter:function(){var e;return"undefined"!=typeof XMLHttpRequest?e=n(76):void 0!==t&&"[object process]"===Object.prototype.toString.call(t)&&(e=n(76)),e}(),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),o.isFormData(e)||o.isArrayBuffer(e)||o.isBuffer(e)||o.isStream(e)||o.isFile(e)||o.isBlob(e)?e:o.isArrayBufferView(e)?e.buffer:o.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):o.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},o.forEach(["delete","get","head"],function(e){u.headers[e]={}}),o.forEach(["post","put","patch"],function(e){u.headers[e]=o.merge(a)}),e.exports=u}).call(t,n(9))},function(e,t,n){"use strict";var r=n(3),o=n(178),i=n(73),a=n(180),u=n(183),s=n(184),c=n(77);e.exports=function(e){return new Promise(function(t,l){var f=e.data,p=e.headers;r.isFormData(f)&&delete p["Content-Type"];var d=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";p.Authorization="Basic "+btoa(h+":"+m)}var v=a(e.baseURL,e.url);if(d.open(e.method.toUpperCase(),i(v,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d.onreadystatechange=function(){if(d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in d?u(d.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?d.response:d.responseText,i={data:r,status:d.status,statusText:d.statusText,headers:n,config:e,request:d};o(t,l,i),d=null}},d.onabort=function(){d&&(l(c("Request aborted",e,"ECONNABORTED",d)),d=null)},d.onerror=function(){l(c("Network Error",e,null,d)),d=null},d.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),l(c(t,e,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var y=n(185),g=(e.withCredentials||s(v))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;g&&(p[e.xsrfHeaderName]=g)}if("setRequestHeader"in d&&r.forEach(p,function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete p[t]:d.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){d&&(d.abort(),l(e),d=null)}),void 0===f&&(f=null),d.send(f)})}},function(e,t,n){"use strict";var r=n(179);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,function(e){void 0!==t[e]&&(n[e]=t[e])}),r.forEach(i,function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):void 0!==t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):void 0!==e[o]&&(n[o]=e[o])}),r.forEach(a,function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])});var u=o.concat(i).concat(a),s=Object.keys(t).filter(function(e){return-1===u.indexOf(e)});return r.forEach(s,function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e){var t=e.src,n=e.className,r=e.alt,i=e.onError;return o.default.createElement("div",{className:"gt-avatar "+n},o.default.createElement("img",{src:t,alt:"@"+r,onError:i}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e){var t=e.className,r=e.text,i=e.name;return o.default.createElement("span",{className:"gt-ico "+t},o.default.createElement("span",{className:"gt-svg",dangerouslySetInnerHTML:{__html:n(191)("./"+i+".svg")}}),r&&o.default.createElement("span",{className:"gt-ico-text"},r))}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o=n(29),i=r(o),a=n(30),u=r(a),s=n(5),c=r(s),l=n(5);n(94);var f=n(98),p=r(f),d=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.default)(this,e),this.options=t}return(0,u.default)(e,[{key:"render",value:function(e,t){var n=null;if(!(e=e||this.options.container))throw new Error("Container is required: "+e);if(e instanceof HTMLElement)n=e;else if(!(n=window.document.getElementById(e)))throw new Error("Container not found, window.document.getElementById: "+e);return t||(t=function(){}),(0,l.render)(c.default.createElement(p.default,{options:this.options}),n,t)}}]),e}();e.exports=d},function(e,t,n){e.exports={default:n(84),__esModule:!0}},function(e,t,n){n(85);var r=n(0).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(4);r(r.S+r.F*!n(8),"Object",{defineProperty:n(7).f})},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var r=n(49);e.exports=n(89)(r.isElement,!0)}else e.exports=n(92)()}).call(t,n(9))},function(e,t,n){"use strict";function r(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case d:case h:case s:case l:case c:case v:return e;default:switch(e=e&&e.$$typeof){case p:case m:case b:case g:case f:return e;default:return t}}case u:return t}}}function o(e){return r(e)===h}/** @license React v16.12.0
    * react-is.production.min.js
    *
    * Copyright (c) Facebook, Inc. and its affiliates.
    *
    * This source code is licensed under the MIT license found in the
    * LICENSE file in the root directory of this source tree.
    */
    Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,u=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,c=i?Symbol.for("react.strict_mode"):60108,l=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.async_mode"):60111,h=i?Symbol.for("react.concurrent_mode"):60111,m=i?Symbol.for("react.forward_ref"):60112,v=i?Symbol.for("react.suspense"):60113,y=i?Symbol.for("react.suspense_list"):60120,g=i?Symbol.for("react.memo"):60115,b=i?Symbol.for("react.lazy"):60116,w=i?Symbol.for("react.fundamental"):60117,_=i?Symbol.for("react.responder"):60118,x=i?Symbol.for("react.scope"):60119;t.typeOf=r,t.AsyncMode=d,t.ConcurrentMode=h,t.ContextConsumer=p,t.ContextProvider=f,t.Element=a,t.ForwardRef=m,t.Fragment=s,t.Lazy=b,t.Memo=g,t.Portal=u,t.Profiler=l,t.StrictMode=c,t.Suspense=v,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===h||e===l||e===c||e===v||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===g||e.$$typeof===f||e.$$typeof===p||e.$$typeof===m||e.$$typeof===w||e.$$typeof===_||e.$$typeof===x)},t.isAsyncMode=function(e){return o(e)||r(e)===d},t.isConcurrentMode=o,t.isContextConsumer=function(e){return r(e)===p},t.isContextProvider=function(e){return r(e)===f},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return r(e)===m},t.isFragment=function(e){return r(e)===s},t.isLazy=function(e){return r(e)===b},t.isMemo=function(e){return r(e)===g},t.isPortal=function(e){return r(e)===u},t.isProfiler=function(e){return r(e)===l},t.isStrictMode=function(e){return r(e)===c},t.isSuspense=function(e){return r(e)===v}},function(e,t,n){"use strict";(function(e){/** @license React v16.12.0
    * react-is.development.js
    *
    * Copyright (c) Facebook, Inc. and its affiliates.
    *
    * This source code is licensed under the MIT license found in the
    * LICENSE file in the root directory of this source tree.
    */
    "production"!==e.env.NODE_ENV&&function(){function e(e){return"string"==typeof e||"function"==typeof e||e===b||e===C||e===_||e===w||e===O||e===k||"object"==typeof e&&null!==e&&(e.$$typeof===P||e.$$typeof===M||e.$$typeof===x||e.$$typeof===S||e.$$typeof===N||e.$$typeof===T||e.$$typeof===A||e.$$typeof===j)}function n(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case y:var n=e.type;switch(n){case E:case C:case b:case _:case w:case O:return n;default:var r=n&&n.$$typeof;switch(r){case S:case N:case P:case M:case x:return r;default:return t}}case g:return t}}}function r(e){return K||(K=!0,L(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),o(e)||n(e)===E}function o(e){return n(e)===C}function i(e){return n(e)===S}function a(e){return n(e)===x}function u(e){return"object"==typeof e&&null!==e&&e.$$typeof===y}function s(e){return n(e)===N}function c(e){return n(e)===b}function l(e){return n(e)===P}function f(e){return n(e)===M}function p(e){return n(e)===g}function d(e){return n(e)===_}function h(e){return n(e)===w}function m(e){return n(e)===O}Object.defineProperty(t,"__esModule",{value:!0});var v="function"==typeof Symbol&&Symbol.for,y=v?Symbol.for("react.element"):60103,g=v?Symbol.for("react.portal"):60106,b=v?Symbol.for("react.fragment"):60107,w=v?Symbol.for("react.strict_mode"):60108,_=v?Symbol.for("react.profiler"):60114,x=v?Symbol.for("react.provider"):60109,S=v?Symbol.for("react.context"):60110,E=v?Symbol.for("react.async_mode"):60111,C=v?Symbol.for("react.concurrent_mode"):60111,N=v?Symbol.for("react.forward_ref"):60112,O=v?Symbol.for("react.suspense"):60113,k=v?Symbol.for("react.suspense_list"):60120,M=v?Symbol.for("react.memo"):60115,P=v?Symbol.for("react.lazy"):60116,T=v?Symbol.for("react.fundamental"):60117,A=v?Symbol.for("react.responder"):60118,j=v?Symbol.for("react.scope"):60119,D=function(){},I=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=0,i="Warning: "+e.replace(/%s/g,function(){return n[o++]});"undefined"!=typeof console&&console.warn(i);try{throw new Error(i)}catch(e){}};D=function(e,t){if(void 0===t)throw new Error("`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning message argument");if(!e){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];I.apply(void 0,[t].concat(r))}};var L=D,R=E,F=C,G=S,B=x,z=y,H=N,$=b,U=P,W=M,V=g,X=_,Y=w,q=O,K=!1;t.typeOf=n,t.AsyncMode=R,t.ConcurrentMode=F,t.ContextConsumer=G,t.ContextProvider=B,t.Element=z,t.ForwardRef=H,t.Fragment=$,t.Lazy=U,t.Memo=W,t.Portal=V,t.Profiler=X,t.StrictMode=Y,t.Suspense=q,t.isValidElementType=e,t.isAsyncMode=r,t.isConcurrentMode=o,t.isContextConsumer=i,t.isContextProvider=a,t.isElement=u,t.isForwardRef=s,t.isFragment=c,t.isLazy=l,t.isMemo=f,t.isPortal=p,t.isProfiler=d,t.isStrictMode=h,t.isSuspense=m}()}).call(t,n(9))},function(e,t,n){"use strict";(function(t){function r(){return null}var o=n(49),i=n(90),a=n(33),u=n(91),s=Function.call.bind(Object.prototype.hasOwnProperty),c=function(){};"production"!==t.env.NODE_ENV&&(c=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),e.exports=function(e,n){function l(e){var t=e&&(k&&e[k]||e[M]);if("function"==typeof t)return t}function f(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function p(e){this.message=e,this.stack=""}function d(e){function r(r,u,s,l,f,d,h){if(l=l||P,d=d||s,h!==a){if(n){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}if("production"!==t.env.NODE_ENV&&"undefined"!=typeof console){var v=l+":"+s;!o[v]&&i<3&&(c("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+l+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),o[v]=!0,i++)}}return null==u[s]?r?new p(null===u[s]?"The "+f+" `"+d+"` is marked as required in `"+l+"`, but its value is `null`.":"The "+f+" `"+d+"` is marked as required in `"+l+"`, but its value is `undefined`."):null:e(u,s,l,f,d)}if("production"!==t.env.NODE_ENV)var o={},i=0;var u=r.bind(null,!1);return u.isRequired=r.bind(null,!0),u}function h(e){function t(t,n,r,o,i,a){var u=t[n];if(E(u)!==e)return new p("Invalid "+o+" `"+i+"` of type `"+C(u)+"` supplied to `"+r+"`, expected `"+e+"`.");return null}return d(t)}function m(e){function t(t,n,r,o,i){if("function"!=typeof e)return new p("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var u=t[n];if(!Array.isArray(u)){return new p("Invalid "+o+" `"+i+"` of type `"+E(u)+"` supplied to `"+r+"`, expected an array.")}for(var s=0;s<u.length;s++){var c=e(u,s,r,o,i+"["+s+"]",a);if(c instanceof Error)return c}return null}return d(t)}function v(e){function t(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||P;return new p("Invalid "+o+" `"+i+"` of type `"+O(t[n])+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null}return d(t)}function y(e){function n(t,n,r,o,i){for(var a=t[n],u=0;u<e.length;u++)if(f(a,e[u]))return null;var s=JSON.stringify(e,function(e,t){return"symbol"===C(t)?String(t):t});return new p("Invalid "+o+" `"+i+"` of value `"+String(a)+"` supplied to `"+r+"`, expected one of "+s+".")}return Array.isArray(e)?d(n):("production"!==t.env.NODE_ENV&&c(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),r)}function g(e){function t(t,n,r,o,i){if("function"!=typeof e)return new p("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var u=t[n],c=E(u);if("object"!==c)return new p("Invalid "+o+" `"+i+"` of type `"+c+"` supplied to `"+r+"`, expected an object.");for(var l in u)if(s(u,l)){var f=e(u,l,r,o,i+"."+l,a);if(f instanceof Error)return f}return null}return d(t)}function b(e){function n(t,n,r,o,i){for(var u=0;u<e.length;u++){if(null==(0,e[u])(t,n,r,o,i,a))return null}return new p("Invalid "+o+" `"+i+"` supplied to `"+r+"`.")}if(!Array.isArray(e))return"production"!==t.env.NODE_ENV&&c("Invalid argument supplied to oneOfType, expected an instance of array."),r;for(var o=0;o<e.length;o++){var i=e[o];if("function"!=typeof i)return c("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+N(i)+" at index "+o+"."),r}return d(n)}function w(e){function t(t,n,r,o,i){var u=t[n],s=E(u);if("object"!==s)return new p("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected `object`.");for(var c in e){var l=e[c];if(l){var f=l(u,c,r,o,i+"."+c,a);if(f)return f}}return null}return d(t)}function _(e){function t(t,n,r,o,u){var s=t[n],c=E(s);if("object"!==c)return new p("Invalid "+o+" `"+u+"` of type `"+c+"` supplied to `"+r+"`, expected `object`.");var l=i({},t[n],e);for(var f in l){var d=e[f];if(!d)return new p("Invalid "+o+" `"+u+"` key `"+f+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var h=d(s,f,r,o,u+"."+f,a);if(h)return h}return null}return d(t)}function x(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(x);if(null===t||e(t))return!0;var n=l(t);if(!n)return!1;var r,o=n.call(t);if(n!==t.entries){for(;!(r=o.next()).done;)if(!x(r.value))return!1}else for(;!(r=o.next()).done;){var i=r.value;if(i&&!x(i[1]))return!1}return!0;default:return!1}}function S(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function E(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":S(t,e)?"symbol":t}function C(e){if(void 0===e||null===e)return""+e;var t=E(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function N(e){var t=C(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}function O(e){return e.constructor&&e.constructor.name?e.constructor.name:P}var k="function"==typeof Symbol&&Symbol.iterator,M="@@iterator",P="<<anonymous>>",T={array:h("array"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:function(){return d(r)}(),arrayOf:m,element:function(){function t(t,n,r,o,i){var a=t[n];if(!e(a)){return new p("Invalid "+o+" `"+i+"` of type `"+E(a)+"` supplied to `"+r+"`, expected a single ReactElement.")}return null}return d(t)}(),elementType:function(){function e(e,t,n,r,i){var a=e[t];if(!o.isValidElementType(a)){return new p("Invalid "+r+" `"+i+"` of type `"+E(a)+"` supplied to `"+n+"`, expected a single ReactElement type.")}return null}return d(e)}(),instanceOf:v,node:function(){function e(e,t,n,r,o){return x(e[t])?null:new p("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}return d(e)}(),objectOf:g,oneOf:y,oneOfType:b,shape:w,exact:_};return p.prototype=Error.prototype,T.checkPropTypes=u,T.resetWarningCache=u.resetWarningCache,T.PropTypes=T,T}}).call(t,n(9))},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}/*
    object-assign
    (c) Sindre Sorhus
    @license MIT
    */
    var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,u,s=r(e),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var l in n)i.call(n,l)&&(s[l]=n[l]);if(o){u=o(n);for(var f=0;f<u.length;f++)a.call(n,u[f])&&(s[u[f]]=n[u[f]])}}return s}},function(e,t,n){"use strict";(function(t){function r(e,n,r,s,c){if("production"!==t.env.NODE_ENV)for(var l in e)if(u(e,l)){var f;try{if("function"!=typeof e[l]){var p=Error((s||"React class")+": "+r+" type `"+l+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[l]+"`.");throw p.name="Invariant Violation",p}f=e[l](n,l,s,r,null,i)}catch(e){f=e}if(!f||f instanceof Error||o((s||"React class")+": type specification of "+r+" `"+l+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof f+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),f instanceof Error&&!(f.message in a)){a[f.message]=!0;var d=c?c():"";o("Failed "+r+" type: "+f.message+(null!=d?d:""))}}}var o=function(){};if("production"!==t.env.NODE_ENV){var i=n(33),a={},u=Function.call.bind(Object.prototype.hasOwnProperty);o=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}r.resetWarningCache=function(){"production"!==t.env.NODE_ENV&&(a={})},e.exports=r}).call(t,n(9))},function(e,t,n){"use strict";function r(){}function o(){}var i=n(33);o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,a){if(a!==i){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){!function(){"use strict";function t(){}function n(e,n){var r,o,i,a,u=j;for(a=arguments.length;a-- >2;)A.push(arguments[a]);for(n&&null!=n.children&&(A.length||A.push(n.children),delete n.children);A.length;)if((o=A.pop())&&void 0!==o.pop)for(a=o.length;a--;)A.push(o[a]);else!0!==o&&!1!==o||(o=null),(i="function"!=typeof e)&&(null==o?o="":"number"==typeof o?o=String(o):"string"!=typeof o&&(i=!1)),i&&r?u[u.length-1]+=o:u===j?u=[o]:u.push(o),r=i;var s=new t;return s.nodeName=e,s.children=u,s.attributes=null==n?void 0:n,s.key=null==n?void 0:n.key,void 0!==T.vnode&&T.vnode(s),s}function r(e,t){for(var n in t)e[n]=t[n];return e}function o(e,t){return n(e.nodeName,r(r({},e.attributes),t),arguments.length>2?[].slice.call(arguments,2):e.children)}function i(e){!e.__d&&(e.__d=!0)&&1==I.push(e)&&(T.debounceRendering||setTimeout)(a)}function a(){var e,t=I;for(I=[];e=t.pop();)e.__d&&N(e)}function u(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&s(e,t.nodeName):n||e._componentConstructor===t.nodeName}function s(e,t){return e.__n===t||e.nodeName.toLowerCase()===t.toLowerCase()}function c(e){var t=r({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var o in n)void 0===t[o]&&(t[o]=n[o]);return t}function l(e,t){var n=t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e);return n.__n=e,n}function f(e){e.parentNode&&e.parentNode.removeChild(e)}function p(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)n&&n(null),r&&r(e);else if("class"!==t||o)if("style"===t){if(r&&"string"!=typeof r&&"string"!=typeof n||(e.style.cssText=r||""),r&&"object"==typeof r){if("string"!=typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"==typeof r[i]&&!1===D.test(i)?r[i]+"px":r[i]}}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var a=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||e.addEventListener(t,h,a):e.removeEventListener(t,h,a),(e.__l||(e.__l={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)d(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var u=o&&t!==(t=t.replace(/^xlink\:?/,""));null==r||!1===r?u?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!=typeof r&&(u?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function d(e,t,n){try{e[t]=n}catch(e){}}function h(e){return this.__l[e.type](T.event&&T.event(e)||e)}function m(){for(var e;e=L.pop();)T.afterMount&&T.afterMount(e),e.componentDidMount&&e.componentDidMount()}function v(e,t,n,r,o,i){R++||(F=null!=o&&void 0!==o.ownerSVGElement,G=null!=e&&!("__preactattr_"in e));var a=y(e,t,n,r,i);return o&&a.parentNode!==o&&o.appendChild(a),--R||(G=!1,i||m()),a}function y(e,t,n,r,o){var i=e,a=F;if(null==t&&(t=""),"string"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||o)?e.nodeValue!=t&&(e.nodeValue=t):(i=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(i,e),b(e,!0))),i.__preactattr_=!0,i;if("function"==typeof t.nodeName)return O(e,t,n,r);if(F="svg"===t.nodeName||"foreignObject"!==t.nodeName&&F,(!e||!s(e,String(t.nodeName)))&&(i=l(String(t.nodeName),F),e)){for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(i,e),b(e,!0)}var u=i.firstChild,c=i.__preactattr_||(i.__preactattr_={}),f=t.children;return!G&&f&&1===f.length&&"string"==typeof f[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=f[0]&&(u.nodeValue=f[0]):(f&&f.length||null!=u)&&g(i,f,n,r,G||null!=c.dangerouslySetInnerHTML),_(i,t.attributes,c),F=a,i}function g(e,t,n,r,o){var i,a,s,c,l=e.childNodes,p=[],d={},h=0,m=0,v=l.length,g=0,w=t?t.length:0;if(0!==v)for(var _=0;_<v;_++){var x=l[_],S=x.__preactattr_,E=w&&S?x._component?x._component.__k:S.key:null;null!=E?(h++,d[E]=x):(S||(void 0!==x.splitText?!o||x.nodeValue.trim():o))&&(p[g++]=x)}if(0!==w)for(var _=0;_<w;_++){s=t[_],c=null;var E=s.key;if(null!=E)h&&void 0!==d[E]&&(c=d[E],d[E]=void 0,h--);else if(!c&&m<g)for(i=m;i<g;i++)if(void 0!==p[i]&&u(a=p[i],s,o)){c=a,p[i]=void 0,i===g-1&&g--,i===m&&m++;break}c=y(c,s,n,r),c&&c!==e&&(_>=v?e.appendChild(c):c!==l[_]&&(c===l[_+1]?f(l[_]):e.insertBefore(c,l[_]||null)))}if(h)for(var _ in d)void 0!==d[_]&&b(d[_],!1);for(;m<=g;)void 0!==(c=p[g--])&&b(c,!1)}function b(e,t){var n=e._component;n?k(n):(null!=e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),!1!==t&&null!=e.__preactattr_||f(e),w(e))}function w(e){for(e=e.lastChild;e;){var t=e.previousSibling;b(e,!0),e=t}}function _(e,t,n){var r;for(r in n)t&&null!=t[r]||null==n[r]||p(e,r,n[r],n[r]=void 0,F);for(r in t)"children"===r||"innerHTML"===r||r in n&&t[r]===("value"===r||"checked"===r?e[r]:n[r])||p(e,r,n[r],n[r]=t[r],F)}function x(e){var t=e.constructor.name;(B[t]||(B[t]=[])).push(e)}function S(e,t,n){var r,o=B[e.name];if(e.prototype&&e.prototype.render?(r=new e(t,n),M.call(r,t,n)):(r=new M(t,n),r.constructor=e,r.render=E),o)for(var i=o.length;i--;)if(o[i].constructor===e){r.__b=o[i].__b,o.splice(i,1);break}return r}function E(e,t,n){return this.constructor(e,n)}function C(e,t,n,r,o){e.__x||(e.__x=!0,(e.__r=t.ref)&&delete t.ref,(e.__k=t.key)&&delete t.key,!e.base||o?e.componentWillMount&&e.componentWillMount():e.componentWillReceiveProps&&e.componentWillReceiveProps(t,r),r&&r!==e.context&&(e.__c||(e.__c=e.context),e.context=r),e.__p||(e.__p=e.props),e.props=t,e.__x=!1,0!==n&&(1!==n&&!1===T.syncComponentUpdates&&e.base?i(e):N(e,1,o)),e.__r&&e.__r(e))}function N(e,t,n,o){if(!e.__x){var i,a,u,s=e.props,l=e.state,f=e.context,p=e.__p||s,d=e.__s||l,h=e.__c||f,y=e.base,g=e.__b,w=y||g,_=e._component,x=!1;if(y&&(e.props=p,e.state=d,e.context=h,2!==t&&e.shouldComponentUpdate&&!1===e.shouldComponentUpdate(s,l,f)?x=!0:e.componentWillUpdate&&e.componentWillUpdate(s,l,f),e.props=s,e.state=l,e.context=f),e.__p=e.__s=e.__c=e.__b=null,e.__d=!1,!x){i=e.render(s,l,f),e.getChildContext&&(f=r(r({},f),e.getChildContext()));var E,O,M=i&&i.nodeName;if("function"==typeof M){var P=c(i);a=_,a&&a.constructor===M&&P.key==a.__k?C(a,P,1,f,!1):(E=a,e._component=a=S(M,P,f),a.__b=a.__b||g,a.__u=e,C(a,P,0,f,!1),N(a,1,n,!0)),O=a.base}else u=w,E=_,E&&(u=e._component=null),(w||1===t)&&(u&&(u._component=null),O=v(u,i,f,n||!y,w&&w.parentNode,!0));if(w&&O!==w&&a!==_){var A=w.parentNode;A&&O!==A&&(A.replaceChild(O,w),E||(w._component=null,b(w,!1)))}if(E&&k(E),e.base=O,O&&!o){for(var j=e,D=e;D=D.__u;)(j=D).base=O;O._component=j,O._componentConstructor=j.constructor}}if(!y||n?L.unshift(e):x||(m(),e.componentDidUpdate&&e.componentDidUpdate(p,d,h),T.afterUpdate&&T.afterUpdate(e)),null!=e.__h)for(;e.__h.length;)e.__h.pop().call(e);R||o||m()}}function O(e,t,n,r){for(var o=e&&e._component,i=o,a=e,u=o&&e._componentConstructor===t.nodeName,s=u,l=c(t);o&&!s&&(o=o.__u);)s=o.constructor===t.nodeName;return o&&s&&(!r||o._component)?(C(o,l,3,n,r),e=o.base):(i&&!u&&(k(i),e=a=null),o=S(t.nodeName,l,n),e&&!o.__b&&(o.__b=e,a=null),C(o,l,1,n,r),e=o.base,a&&e!==a&&(a._component=null,b(a,!1))),e}function k(e){T.beforeUnmount&&T.beforeUnmount(e);var t=e.base;e.__x=!0,e.componentWillUnmount&&e.componentWillUnmount(),e.base=null;var n=e._component;n?k(n):t&&(t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),e.__b=t,f(t),x(e),w(t)),e.__r&&e.__r(null)}function M(e,t){this.__d=!0,this.context=t,this.props=e,this.state=this.state||{}}function P(e,t,n){return v(n,e,{},!1,t,!1)}var T={},A=[],j=[],D=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,I=[],L=[],R=0,F=!1,G=!1,B={};r(M.prototype,{setState:function(e,t){var n=this.state;this.__s||(this.__s=r({},n)),r(n,"function"==typeof e?e(n,this.props):e),t&&(this.__h=this.__h||[]).push(t),i(this)},forceUpdate:function(e){e&&(this.__h=this.__h||[]).push(e),N(this,2)},render:function(){}});var z={h:n,createElement:n,cloneElement:o,Component:M,render:P,rerender:a,options:T};e.exports=z}()},function(e,t,n){"use strict";e.exports=n(95).polyfill()},function(e,t,n){(function(t,r){/*!
    * @overview es6-promise - a tiny implementation of Promises/A+.
    * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
    * @license Licensed under MIT license
    * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
    * @version 4.1.1
    */
    !function(t,n){e.exports=n()}(0,function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function o(e){return"function"==typeof e}function i(e){W=e}function a(e){V=e}function u(){return void 0!==U?function(){U(c)}:s()}function s(){var e=setTimeout;return function(){return e(c,1)}}function c(){for(var e=0;e<$;e+=2){(0,Z[e])(Z[e+1]),Z[e]=void 0,Z[e+1]=void 0}$=0}function l(e,t){var n=arguments,r=this,o=new this.constructor(p);void 0===o[ee]&&T(o);var i=r._state;return i?function(){var e=n[i-1];V(function(){return k(i,o,e,r._result)})}():E(r,o,e,t),o}function f(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(p);return w(n,e),n}function p(){}function d(){return new TypeError("You cannot resolve a promise with itself")}function h(){return new TypeError("A promises callback cannot return that same promise.")}function m(e){try{return e.then}catch(e){return oe.error=e,oe}}function v(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}function y(e,t,n){V(function(e){var r=!1,o=v(n,t,function(n){r||(r=!0,t!==n?w(e,n):x(e,n))},function(t){r||(r=!0,S(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&o&&(r=!0,S(e,o))},e)}function g(e,t){t._state===ne?x(e,t._result):t._state===re?S(e,t._result):E(t,void 0,function(t){return w(e,t)},function(t){return S(e,t)})}function b(e,t,n){t.constructor===e.constructor&&n===l&&t.constructor.resolve===f?g(e,t):n===oe?(S(e,oe.error),oe.error=null):void 0===n?x(e,t):o(n)?y(e,t,n):x(e,t)}function w(t,n){t===n?S(t,d()):e(n)?b(t,n,m(n)):x(t,n)}function _(e){e._onerror&&e._onerror(e._result),C(e)}function x(e,t){e._state===te&&(e._result=t,e._state=ne,0!==e._subscribers.length&&V(C,e))}function S(e,t){e._state===te&&(e._state=re,e._result=t,V(_,e))}function E(e,t,n,r){var o=e._subscribers,i=o.length;e._onerror=null,o[i]=t,o[i+ne]=n,o[i+re]=r,0===i&&e._state&&V(C,e)}function C(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r=void 0,o=void 0,i=e._result,a=0;a<t.length;a+=3)r=t[a],o=t[a+n],r?k(n,r,o,i):o(i);e._subscribers.length=0}}function N(){this.error=null}function O(e,t){try{return e(t)}catch(e){return ie.error=e,ie}}function k(e,t,n,r){var i=o(n),a=void 0,u=void 0,s=void 0,c=void 0;if(i){if(a=O(n,r),a===ie?(c=!0,u=a.error,a.error=null):s=!0,t===a)return void S(t,h())}else a=r,s=!0;t._state!==te||(i&&s?w(t,a):c?S(t,u):e===ne?x(t,a):e===re&&S(t,a))}function M(e,t){try{t(function(t){w(e,t)},function(t){S(e,t)})}catch(t){S(e,t)}}function P(){return ae++}function T(e){e[ee]=ae++,e._state=void 0,e._result=void 0,e._subscribers=[]}function A(e,t){this._instanceConstructor=e,this.promise=new e(p),this.promise[ee]||T(this.promise),H(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?x(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&x(this.promise,this._result))):S(this.promise,j())}function j(){return new Error("Array Methods must be provided an Array")}function D(e){return new A(this,e).promise}function I(e){var t=this;return new t(H(e)?function(n,r){for(var o=e.length,i=0;i<o;i++)t.resolve(e[i]).then(n,r)}:function(e,t){return t(new TypeError("You must pass an array to race."))})}function L(e){var t=this,n=new t(p);return S(n,e),n}function R(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function F(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function G(e){this[ee]=P(),this._result=this._state=void 0,this._subscribers=[],p!==e&&("function"!=typeof e&&R(),this instanceof G?M(this,e):F())}function B(){var e=void 0;if(void 0!==r)e=r;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=G}var z=void 0;z=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var H=z,$=0,U=void 0,W=void 0,V=function(e,t){Z[$]=e,Z[$+1]=t,2===($+=2)&&(W?W(c):Q())},X="undefined"!=typeof window?window:void 0,Y=X||{},q=Y.MutationObserver||Y.WebKitMutationObserver,K="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),J="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Z=new Array(1e3),Q=void 0;Q=K?function(){return function(){return t.nextTick(c)}}():q?function(){var e=0,t=new q(c),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}():J?function(){var e=new MessageChannel;return e.port1.onmessage=c,function(){return e.port2.postMessage(0)}}():void 0===X?function(){try{var e=n(97);return U=e.runOnLoop||e.runOnContext,u()}catch(e){return s()}}():s();var ee=Math.random().toString(36).substring(16),te=void 0,ne=1,re=2,oe=new N,ie=new N,ae=0;return A.prototype._enumerate=function(e){for(var t=0;this._state===te&&t<e.length;t++)this._eachEntry(e[t],t)},A.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,r=n.resolve;if(r===f){var o=m(e);if(o===l&&e._state!==te)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(n===G){var i=new n(p);b(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new n(function(t){return t(e)}),t)}else this._willSettleAt(r(e),t)},A.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===te&&(this._remaining--,e===re?S(r,n):this._result[t]=n),0===this._remaining&&x(r,this._result)},A.prototype._willSettleAt=function(e,t){var n=this;E(e,void 0,function(e){return n._settledAt(ne,t,e)},function(e){return n._settledAt(re,t,e)})},G.all=D,G.race=I,G.resolve=f,G.reject=L,G._setScheduler=i,G._setAsap=a,G._asap=V,G.prototype={constructor:G,then:l,catch:function(e){return this.then(null,e)}},G.polyfill=B,G.Promise=G,G})}).call(t,n(9),n(96))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o=n(99),i=r(o),a=n(119),u=r(a),s=n(64),c=r(s),l=n(29),f=r(l),p=n(30),d=r(p),h=n(66),m=r(h),v=n(70),y=r(v),g=n(5),b=r(g),w=n(143),_=r(w),x=n(150),S=r(x),E=n(151),C=r(E);n(160);var N=n(71),O=n(80),k=r(O),M=n(188),P=r(M),T=n(189),A=r(T),j=n(190),D=r(j),I=n(81),L=r(I),R=n(218),F=n(219),G=r(F),B=function(e){function t(e){(0,f.default)(this,t);var n=(0,m.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e));n.state={user:null,issue:null,comments:[],localComments:[],comment:"",page:1,pagerDirection:"last",cursor:null,previewHtml:"",isNoInit:!1,isIniting:!0,isCreating:!1,isLoading:!1,isLoadMore:!1,isLoadOver:!1,isIssueCreating:!1,isPopupVisible:!1,isInputFocused:!1,isPreview:!1,isOccurError:!1,errorMsg:""},n.getCommentsV3=function(e){var t=n.options,r=t.clientID,o=t.clientSecret,i=t.perPage,a=n.state.page;return n.getIssue().then(function(e){if(e)return N.axiosGithub.get(e.comments_url,{headers:{Accept:"application/vnd.github.v3.full+json"},auth:{username:r,password:o},params:{per_page:i,page:a}}).then(function(e){var t=n.state,r=t.comments,o=t.issue,u=!1,s=r.concat(e.data);return(s.length>=o.comments||e.data.length<i)&&(u=!0),n.setState({comments:s,isLoadOver:u,page:a+1}),s})})},n.getRef=function(e){n.publicBtnEL=e},n.reply=function(e){return function(){var t=n.state.comment,r=e.body,o=r.split("\n");o.unshift("@"+e.user.login),o=o.map(function(e){return"> "+e}),o.push(""),o.push(""),t&&o.unshift(""),n.setState({comment:t+o.join("\n")},function(){S.default.update(n.commentEL),n.commentEL.focus()})}},n.handlePopup=function(e){e.preventDefault(),e.stopPropagation();var t=!n.state.isPopupVisible,r=function e(t){(0,N.hasClassInParent)(t.target,"gt-user","gt-popup")||(window.document.removeEventListener("click",e),n.setState({isPopupVisible:!1}))};n.setState({isPopupVisible:t}),t?window.document.addEventListener("click",r):window.document.removeEventListener("click",r)},n.handleLogin=function(){var e=n.state.comment;window.localStorage.setItem(R.GT_COMMENT,encodeURIComponent(e)),window.location.href=n.loginLink},n.handleIssueCreate=function(){n.setState({isIssueCreating:!0}),n.createIssue().then(function(e){return n.setState({isIssueCreating:!1,isOccurError:!1}),n.getComments(e)}).catch(function(e){n.setState({isIssueCreating:!1,isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})}).then(function(e){e&&n.setState({isNoInit:!1})})},n.handleCommentCreate=function(e){if(!n.state.comment.length)return e&&e.preventDefault(),void n.commentEL.focus();n.setState(function(e){if(!e.isCreating)return n.createComment().then(function(){return n.setState({isCreating:!1,isOccurError:!1})}).catch(function(e){n.setState({isCreating:!1,isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})}),{isCreating:!0}})},n.handleCommentPreview=function(e){n.setState({isPreview:!n.state.isPreview}),N.axiosGithub.post("/markdown",{text:n.state.comment},{headers:n.accessToken&&{Authorization:"token "+n.accessToken}}).then(function(e){n.setState({previewHtml:e.data})}).catch(function(e){n.setState({isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})})},n.handleCommentLoad=function(){var e=n.state,t=e.issue;e.isLoadMore||(n.setState({isLoadMore:!0}),n.getComments(t).then(function(){return n.setState({isLoadMore:!1})}))},n.handleCommentChange=function(e){return n.setState({comment:e.target.value})},n.handleLogout=function(){n.logout(),window.location.reload()},n.handleCommentFocus=function(e){if(!n.options.distractionFreeMode)return e.preventDefault();n.setState({isInputFocused:!0})},n.handleCommentBlur=function(e){if(!n.options.distractionFreeMode)return e.preventDefault();n.setState({isInputFocused:!1})},n.handleSort=function(e){return function(t){n.setState({pagerDirection:e})}},n.handleCommentKeyDown=function(e){n.options.enableHotKey&&(e.metaKey||e.ctrlKey)&&13===e.keyCode&&(n.publicBtnEL&&n.publicBtnEL.focus(),n.handleCommentCreate())},n.options=(0,u.default)({},{id:window.location.href,number:-1,labels:["Gitalk"],title:window.document.title,body:"",language:window.navigator.language||window.navigator.userLanguage,perPage:10,pagerDirection:"last",createIssueManually:!1,distractionFreeMode:!1,proxy:"https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token",flipMoveOptions:{staggerDelayBy:150,appearAnimation:"accordionVertical",enterAnimation:"accordionVertical",leaveAnimation:"accordionVertical"},enableHotKey:!0,url:window.location.href,defaultAuthor:{avatarUrl:"//avatars1.githubusercontent.com/u/29697133?s=50",login:"null",url:""},updateCountCallback:null},e.options),n.state.pagerDirection=n.options.pagerDirection;var r=window.localStorage.getItem(R.GT_COMMENT);r&&(n.state.comment=decodeURIComponent(r),window.localStorage.removeItem(R.GT_COMMENT));var o=(0,N.queryParse)();if(o.code){var i=o.code;delete o.code;var a=""+window.location.origin+window.location.pathname+(0,N.queryStringify)(o)+window.location.hash;history.replaceState(null,null,a),n.options=(0,u.default)({},n.options,{url:a,id:a},e.options),N.axiosJSON.post(n.options.proxy,{code:i,client_id:n.options.clientID,client_secret:n.options.clientSecret}).then(function(e){e.data&&e.data.access_token?(n.accessToken=e.data.access_token,n.getInit().then(function(){return n.setState({isIniting:!1})}).catch(function(e){console.log("err:",e),n.setState({isIniting:!1,isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})})):(console.log("res.data err:",e.data),n.setState({isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(new Error("no access token"))}))}).catch(function(e){console.log("err: ",e),n.setState({isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})})}else n.getInit().then(function(){return n.setState({isIniting:!1})}).catch(function(e){console.log("err:",e),n.setState({isIniting:!1,isOccurError:!0,errorMsg:(0,N.formatErrorMsg)(e)})});return n.i18n=(0,C.default)(n.options.language),n}return(0,y.default)(t,e),(0,d.default)(t,[{key:"componentDidUpdate",value:function(){this.commentEL&&(0,S.default)(this.commentEL)}},{key:"getInit",value:function(){var e=this;return this.getUserInfo().then(function(){return e.getIssue()}).then(function(t){return e.getComments(t)})}},{key:"getUserInfo",value:function(){var e=this;return N.axiosGithub.get("/user",{headers:{Authorization:"token "+this.accessToken}}).then(function(t){e.setState({user:t.data})}).catch(function(t){e.logout()})}},{key:"getIssueById",value:function(){var e=this,t=this.options,n=t.owner,r=t.repo,o=t.number,a=t.clientID,u=t.clientSecret,s="/repos/"+n+"/"+r+"/issues/"+o;return new i.default(function(t,n){N.axiosGithub.get(s,{auth:{username:a,password:u},params:{t:Date.now()}}).then(function(n){var r=null;n&&n.data&&n.data.number===o&&(r=n.data,e.setState({issue:r,isNoInit:!1})),t(r)}).catch(function(e){404===e.response.status&&t(null),n(e)})})}},{key:"getIssueByLabels",value:function(){var e=this,t=this.options,n=t.owner,r=t.repo,o=t.id,i=t.labels,a=t.clientID,u=t.clientSecret;return N.axiosGithub.get("/repos/"+n+"/"+r+"/issues",{auth:{username:a,password:u},params:{labels:i.concat(o).join(","),t:Date.now()}}).then(function(t){var n=e.options.createIssueManually,r=!1,o=null;if(t&&t.data&&t.data.length)o=t.data[0];else{if(!n&&e.isAdmin)return e.createIssue();r=!0}return e.setState({issue:o,isNoInit:r}),o})}},{key:"getIssue",value:function(){var e=this,t=this.options.number,n=this.state.issue;return n?(this.setState({isNoInit:!1}),i.default.resolve(n)):"number"==typeof t&&t>0?this.getIssueById().then(function(t){return t||e.getIssueByLabels()}):this.getIssueByLabels()}},{key:"createIssue",value:function(){var e=this,t=this.options,n=t.owner,r=t.repo,o=t.title,i=t.body,a=t.id,u=t.labels,s=t.url;return N.axiosGithub.post("/repos/"+n+"/"+r+"/issues",{title:o,labels:u.concat(a),body:i||s+" \n\n "+((0,N.getMetaContent)("description")||(0,N.getMetaContent)("description","og:description")||"")},{headers:{Authorization:"token "+this.accessToken}}).then(function(t){return e.setState({issue:t.data}),t.data})}},{key:"getComments",value:function(e){if(e)return this.accessToken?G.default.call(this,e):this.getCommentsV3(e)}},{key:"createComment",value:function(){var e=this,t=this.state,n=t.comment,r=t.localComments,o=t.comments;return this.getIssue().then(function(t){return N.axiosGithub.post(t.comments_url,{body:n},{headers:{Accept:"application/vnd.github.v3.full+json",Authorization:"token "+e.accessToken}})}).then(function(t){e.setState({comment:"",comments:o.concat(t.data),localComments:r.concat(t.data)})})}},{key:"logout",value:function(){this.setState({user:null}),window.localStorage.removeItem(R.GT_ACCESS_TOKEN)}},{key:"like",value:function(e){var t=this,n=this.options,r=n.owner,o=n.repo,i=this.state.user,a=this.state.comments;N.axiosGithub.post("/repos/"+r+"/"+o+"/issues/comments/"+e.id+"/reactions",{content:"heart"},{headers:{Authorization:"token "+this.accessToken,Accept:"application/vnd.github.squirrel-girl-preview"}}).then(function(n){a=a.map(function(t){return t.id===e.id&&(t.reactions?~t.reactions.nodes.findIndex(function(e){return e.user.login===i.login})||(t.reactions.totalCount+=1):(t.reactions={nodes:[]},t.reactions.totalCount=1),t.reactions.nodes.push(n.data),t.reactions.viewerHasReacted=!0),t}),t.setState({comments:a})})}},{key:"unLike",value:function(e){var t=this,n=this.state.user,r=this.state.comments;N.axiosGithub.post("/graphql",function(e){return{operationName:"RemoveReaction",query:'\n mutation RemoveReaction{\n removeReaction (input:{\n subjectId: "'+e+'",\n content: HEART\n }) {\n reaction {\n content\n }\n }\n }\n '}}(e.gId),{headers:{Authorization:"bearer "+this.accessToken}}).then(function(o){o.data&&(r=r.map(function(t){if(t.id===e.id){var r=t.reactions.nodes.findIndex(function(e){return e.user.login===n.login});~r&&(t.reactions.totalCount-=1,t.reactions.nodes.splice(r,1)),t.reactions.viewerHasReacted=!1}return t}),t.setState({comments:r}))})}},{key:"initing",value:function(){return b.default.createElement("div",{className:"gt-initing"},b.default.createElement("i",{className:"gt-loader"}),b.default.createElement("p",{className:"gt-initing-text"},this.i18n.t("init")))}},{key:"noInit",value:function(){var e=this.state,t=e.user,n=e.isIssueCreating,r=this.options,o=r.owner,i=r.repo,a=r.admin;return b.default.createElement("div",{className:"gt-no-init",key:"no-init"},b.default.createElement("p",{dangerouslySetInnerHTML:{__html:this.i18n.t("no-found-related",{link:'<a href="https://github.com/'+o+"/"+i+'/issues">Issues</a>'})}}),b.default.createElement("p",null,this.i18n.t("please-contact",{user:[].concat(a).map(function(e){return"@"+e}).join(" ")})),this.isAdmin?b.default.createElement("p",null,b.default.createElement(P.default,{onClick:this.handleIssueCreate,isLoading:n,text:this.i18n.t("init-issue")})):null,!t&&b.default.createElement(P.default,{className:"gt-btn-login",onClick:this.handleLogin,text:this.i18n.t("login-with-github")}))}},{key:"handleImageErrored",value:function(e){e.target.src="https://cdn.jsdelivr.net/npm/gitalk@1/src/assets/icon/github.svg"}},{key:"header",value:function(){var e=this,t=this.state,n=t.user,r=t.comment,o=t.isCreating,i=t.previewHtml,a=t.isPreview;return b.default.createElement("div",{className:"gt-header",key:"header"},n?b.default.createElement(k.default,{className:"gt-header-avatar",src:n.avatar_url,alt:n.login,onError:this.handleImageErrored.bind(this)}):b.default.createElement("a",{className:"gt-avatar-github",onMouseDown:this.handleLogin},b.default.createElement(L.default,{className:"gt-ico-github",name:"github"})),b.default.createElement("div",{className:"gt-header-comment"},b.default.createElement("textarea",{ref:function(t){e.commentEL=t},className:"gt-header-textarea "+(a?"hide":""),value:r,onChange:this.handleCommentChange,onFocus:this.handleCommentFocus,onBlur:this.handleCommentBlur,onKeyDown:this.handleCommentKeyDown,placeholder:this.i18n.t("leave-a-comment")}),b.default.createElement("div",{className:"gt-header-preview markdown-body "+(a?"":"hide"),dangerouslySetInnerHTML:{__html:i}}),b.default.createElement("div",{className:"gt-header-controls"},b.default.createElement("a",{className:"gt-header-controls-tip",href:"https://guides.github.com/features/mastering-markdown/",target:"_blank"},b.default.createElement(L.default,{className:"gt-ico-tip",name:"tip",text:this.i18n.t("support-markdown")})),n&&b.default.createElement(P.default,{getRef:this.getRef,className:"gt-btn-public",onMouseDown:this.handleCommentCreate,text:this.i18n.t("comment"),isLoading:o}),b.default.createElement(P.default,{className:"gt-btn-preview",onMouseDown:this.handleCommentPreview,text:a?this.i18n.t("edit"):this.i18n.t("preview")}),!n&&b.default.createElement(P.default,{className:"gt-btn-login",onMouseDown:this.handleLogin,text:this.i18n.t("login-with-github")}))))}},{key:"comments",value:function(){var e=this,t=this.state,n=t.user,r=t.comments,o=t.isLoadOver,i=t.isLoadMore,a=t.pagerDirection,u=this.options,s=u.language,c=u.flipMoveOptions,l=u.admin,f=r.concat([]);return"last"===a&&this.accessToken&&f.reverse(),b.default.createElement("div",{className:"gt-comments",key:"comments"},b.default.createElement(_.default,c,f.map(function(t){return b.default.createElement(D.default,{comment:t,key:t.id,user:n,language:s,commentedText:e.i18n.t("commented"),admin:l,replyCallback:e.reply(t),likeCallback:t.reactions&&t.reactions.viewerHasReacted?e.unLike.bind(e,t):e.like.bind(e,t)})})),!f.length&&b.default.createElement("p",{className:"gt-comments-null"},this.i18n.t("first-comment-person")),!o&&f.length?b.default.createElement("div",{className:"gt-comments-controls"},b.default.createElement(P.default,{className:"gt-btn-loadmore",onClick:this.handleCommentLoad,isLoading:i,text:this.i18n.t("load-more")})):null)}},{key:"meta",value:function(){var e=this.state,t=e.user,n=e.issue,r=e.isPopupVisible,o=e.pagerDirection,i=e.localComments,a=(n&&n.comments)+i.length,u="last"===o,s=this.options.updateCountCallback;if(s&&"[object Function]"==={}.toString.call(s))try{s(a)}catch(e){console.log("An error occurred executing the updateCountCallback:",e)}return b.default.createElement("div",{className:"gt-meta",key:"meta"},b.default.createElement("span",{className:"gt-counts",dangerouslySetInnerHTML:{__html:this.i18n.t("counts",{counts:'<a class="gt-link gt-link-counts" href="'+(n&&n.html_url)+'" target="_blank">'+a+"</a>",smart_count:a})}}),r&&b.default.createElement("div",{className:"gt-popup"},t?b.default.createElement(A.default,{className:"gt-action-sortasc"+(u?"":" is--active"),onClick:this.handleSort("first"),text:this.i18n.t("sort-asc")}):null,t?b.default.createElement(A.default,{className:"gt-action-sortdesc"+(u?" is--active":""),onClick:this.handleSort("last"),text:this.i18n.t("sort-desc")}):null,t?b.default.createElement(A.default,{className:"gt-action-logout",onClick:this.handleLogout,text:this.i18n.t("logout")}):b.default.createElement("a",{className:"gt-action gt-action-login",onMouseDown:this.handleLogin},this.i18n.t("login-with-github")),b.default.createElement("div",{className:"gt-copyright"},b.default.createElement("a",{className:"gt-link gt-link-project",href:"https://github.com/gitalk/gitalk",target:"_blank"},"Gitalk"),b.default.createElement("span",{className:"gt-version"},R.GT_VERSION))),b.default.createElement("div",{className:"gt-user"},t?b.default.createElement("div",{className:r?"gt-user-inner is--poping":"gt-user-inner",onClick:this.handlePopup},b.default.createElement("span",{className:"gt-user-name"},t.login),b.default.createElement(L.default,{className:"gt-ico-arrdown",name:"arrow_down"})):b.default.createElement("div",{className:r?"gt-user-inner is--poping":"gt-user-inner",onClick:this.handlePopup},b.default.createElement("span",{className:"gt-user-name"},this.i18n.t("anonymous")),b.default.createElement(L.default,{className:"gt-ico-arrdown",name:"arrow_down"}))))}},{key:"render",value:function(){var e=this.state,t=e.isIniting,n=e.isNoInit,r=e.isOccurError,o=e.errorMsg,i=e.isInputFocused;return b.default.createElement("div",{className:"gt-container"+(i?" gt-input-focused":"")},t&&this.initing(),!t&&(n?[]:[this.meta()]),r&&b.default.createElement("div",{className:"gt-error"},o),!t&&(n?[this.noInit()]:[this.header(),this.comments()]))}},{key:"accessToken",get:function(){return this._accessToke||window.localStorage.getItem(R.GT_ACCESS_TOKEN)},set:function(e){window.localStorage.setItem(R.GT_ACCESS_TOKEN,e),this._accessToken=e}},{key:"loginLink",get:function(){var e=this.options.clientID,t={client_id:e,redirect_uri:window.location.href,scope:"public_repo"};return"https://github.com/login/oauth/authorize?"+(0,N.queryStringify)(t)}},{key:"isAdmin",get:function(){var e=this.options.admin,t=this.state.user;return t&&~[].concat(e).map(function(e){return e.toLowerCase()}).indexOf(t.login.toLowerCase())}}]),t}(g.Component);e.exports=B},function(e,t,n){e.exports={default:n(100),__esModule:!0}},function(e,t,n){n(50),n(20),n(27),n(109),n(117),n(118),e.exports=n(0).Promise},function(e,t,n){var r=n(34),o=n(35);e.exports=function(e){return function(t,n){var i,a,u=String(o(t)),s=r(n),c=u.length;return s<0||s>=c?e?"":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?e?u.charAt(s):i:e?u.slice(s,s+2):a-56320+(i-55296<<10)+65536)}}},function(e,t,n){"use strict";var r=n(36),o=n(19),i=n(26),a={};n(11)(a,n(2)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(7),o=n(6),i=n(22);e.exports=n(8)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),u=a.length,s=0;u>s;)r.f(e,n=a[s++],t[n]);return e}},function(e,t,n){var r=n(16),o=n(37),i=n(105);e.exports=function(e){return function(t,n,a){var u,s=r(t),c=o(s.length),l=i(a,c);if(e&&n!=n){for(;c>l;)if((u=s[l++])!=u)return!0}else for(;c>l;l++)if((e||l in s)&&s[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(34),o=Math.max,i=Math.min;e.exports=function(e,t){return e=r(e),e<0?o(e+t,0):i(e,t)}},function(e,t,n){"use strict";var r=n(107),o=n(108),i=n(15),a=n(16);e.exports=n(51)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,n):"values"==t?o(0,e[n]):o(0,[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r,o,i,a,u=n(21),s=n(1),c=n(13),l=n(41),f=n(4),p=n(10),d=n(24),h=n(110),m=n(111),v=n(59),y=n(60).set,g=n(113)(),b=n(43),w=n(61),_=n(114),x=n(62),S=s.TypeError,E=s.process,C=E&&E.versions,N=C&&C.v8||"",O=s.Promise,k="process"==l(E),M=function(){},P=o=b.f,T=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[n(2)("species")]=function(e){e(M,M)};return(k||"function"==typeof PromiseRejectionEvent)&&e.then(M)instanceof t&&0!==N.indexOf("6.6")&&-1===_.indexOf("Chrome/66")}catch(e){}}(),A=function(e){var t;return!(!p(e)||"function"!=typeof(t=e.then))&&t},j=function(e,t){if(!e._n){e._n=!0;var n=e._c;g(function(){for(var r=e._v,o=1==e._s,i=0;n.length>i;)!function(t){var n,i,a,u=o?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(o||(2==e._h&&L(e),e._h=1),!0===u?n=r:(l&&l.enter(),n=u(r),l&&(l.exit(),a=!0)),n===t.promise?c(S("Promise-chain cycle")):(i=A(n))?i.call(n,s,c):s(n)):c(r)}catch(e){l&&!a&&l.exit(),c(e)}}(n[i++]);e._c=[],e._n=!1,t&&!e._h&&D(e)})}},D=function(e){y.call(s,function(){var t,n,r,o=e._v,i=I(e);if(i&&(t=w(function(){k?E.emit("unhandledRejection",o,e):(n=s.onunhandledrejection)?n({promise:e,reason:o}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=k||I(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},I=function(e){return 1!==e._h&&0===(e._a||e._c).length},L=function(e){y.call(s,function(){var t;k?E.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},R=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),j(t,!0))},F=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw S("Promise can't be resolved itself");(t=A(e))?g(function(){var r={_w:n,_d:!1};try{t.call(e,c(F,r,1),c(R,r,1))}catch(e){R.call(r,e)}}):(n._v=e,n._s=1,j(n,!1))}catch(e){R.call({_w:n,_d:!1},e)}}};T||(O=function(e){h(this,O,"Promise","_h"),d(e),r.call(this);try{e(c(F,this,1),c(R,this,1))}catch(e){R.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(115)(O.prototype,{then:function(e,t){var n=P(v(this,O));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=k?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&j(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(F,e,1),this.reject=c(R,e,1)},b.f=P=function(e){return e===O||e===a?new i(e):o(e)}),f(f.G+f.W+f.F*!T,{Promise:O}),n(26)(O,"Promise"),n(116)("Promise"),a=n(0).Promise,f(f.S+f.F*!T,"Promise",{reject:function(e){var t=P(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(u||!T),"Promise",{resolve:function(e){return x(u&&this===a?O:this,e)}}),f(f.S+f.F*!(T&&n(63)(function(e){O.all(e).catch(M)})),"Promise",{all:function(e){var t=this,n=P(t),r=n.resolve,o=n.reject,i=w(function(){var n=[],i=0,a=1;m(e,!1,function(e){var u=i++,s=!1;n.push(void 0),a++,t.resolve(e).then(function(e){s||(s=!0,n[u]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=P(t),r=n.reject,o=w(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(13),o=n(57),i=n(58),a=n(6),u=n(37),s=n(42),c={},l={},t=e.exports=function(e,t,n,f,p){var d,h,m,v,y=p?function(){return e}:s(e),g=r(n,f,t?2:1),b=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(i(y)){for(d=u(e.length);d>b;b++)if((v=t?g(a(h=e[b])[0],h[1]):g(e[b]))===c||v===l)return v}else for(m=y.call(e);!(h=m.next()).done;)if((v=o(m,g,h.value,t))===c||v===l)return v};t.BREAK=c,t.RETURN=l},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(1),o=n(60).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,s="process"==n(23)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(s&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(s)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var l=u.resolve(void 0);n=function(){l.then(c)}}else n=function(){o.call(r,c)};else{var f=!0,p=document.createTextNode("");new i(c).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t,n){var r=n(1),o=r.navigator;e.exports=o&&o.userAgent||""},function(e,t,n){var r=n(11);e.exports=function(e,t,n){for(var o in t)n&&e[o]?e[o]=t[o]:r(e,o,t[o]);return e}},function(e,t,n){"use strict";var r=n(1),o=n(0),i=n(7),a=n(8),u=n(2)("species");e.exports=function(e){var t="function"==typeof o[e]?o[e]:r[e];a&&t&&!t[u]&&i.f(t,u,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";var r=n(4),o=n(0),i=n(1),a=n(59),u=n(62);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then(function(){return n})}:e,n?function(n){return u(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(4),o=n(43),i=n(61);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){e.exports={default:n(120),__esModule:!0}},function(e,t,n){n(121),e.exports=n(0).Object.assign},function(e,t,n){var r=n(4);r(r.S+r.F,"Object",{assign:n(122)})},function(e,t,n){"use strict";var r=n(8),o=n(22),i=n(44),a=n(28),u=n(17),s=n(54),c=Object.assign;e.exports=!c||n(14)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=r})?function(e,t){for(var n=u(e),c=arguments.length,l=1,f=i.f,p=a.f;c>l;)for(var d,h=s(arguments[l++]),m=f?o(h).concat(f(h)):o(h),v=m.length,y=0;v>y;)d=m[y++],r&&!p.call(h,d)||(n[d]=h[d]);return n}:c},function(e,t,n){n(124),e.exports=n(0).Object.getPrototypeOf},function(e,t,n){var r=n(17),o=n(56);n(65)("getPrototypeOf",function(){return function(e){return o(r(e))}})},function(e,t,n){e.exports={default:n(126),__esModule:!0}},function(e,t,n){n(20),n(27),e.exports=n(45).f("iterator")},function(e,t,n){e.exports={default:n(128),__esModule:!0}},function(e,t,n){n(129),n(50),n(134),n(135),e.exports=n(0).Symbol},function(e,t,n){"use strict";var r=n(1),o=n(12),i=n(8),a=n(4),u=n(52),s=n(130).KEY,c=n(14),l=n(39),f=n(26),p=n(25),d=n(2),h=n(45),m=n(46),v=n(131),y=n(132),g=n(6),b=n(10),w=n(17),_=n(16),x=n(32),S=n(19),E=n(36),C=n(133),N=n(69),O=n(44),k=n(7),M=n(22),P=N.f,T=k.f,A=C.f,j=r.Symbol,D=r.JSON,I=D&&D.stringify,L=d("_hidden"),R=d("toPrimitive"),F={}.propertyIsEnumerable,G=l("symbol-registry"),B=l("symbols"),z=l("op-symbols"),H=Object.prototype,$="function"==typeof j&&!!O.f,U=r.QObject,W=!U||!U.prototype||!U.prototype.findChild,V=i&&c(function(){return 7!=E(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=P(H,t);r&&delete H[t],T(e,t,n),r&&e!==H&&T(H,t,r)}:T,X=function(e){var t=B[e]=E(j.prototype);return t._k=e,t},Y=$&&"symbol"==typeof j.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof j},q=function(e,t,n){return e===H&&q(z,t,n),g(e),t=x(t,!0),g(n),o(B,t)?(n.enumerable?(o(e,L)&&e[L][t]&&(e[L][t]=!1),n=E(n,{enumerable:S(0,!1)})):(o(e,L)||T(e,L,S(1,{})),e[L][t]=!0),V(e,t,n)):T(e,t,n)},K=function(e,t){g(e);for(var n,r=v(t=_(t)),o=0,i=r.length;i>o;)q(e,n=r[o++],t[n]);return e},J=function(e,t){return void 0===t?E(e):K(E(e),t)},Z=function(e){var t=F.call(this,e=x(e,!0));return!(this===H&&o(B,e)&&!o(z,e))&&(!(t||!o(this,e)||!o(B,e)||o(this,L)&&this[L][e])||t)},Q=function(e,t){if(e=_(e),t=x(t,!0),e!==H||!o(B,t)||o(z,t)){var n=P(e,t);return!n||!o(B,t)||o(e,L)&&e[L][t]||(n.enumerable=!0),n}},ee=function(e){for(var t,n=A(_(e)),r=[],i=0;n.length>i;)o(B,t=n[i++])||t==L||t==s||r.push(t);return r},te=function(e){for(var t,n=e===H,r=A(n?z:_(e)),i=[],a=0;r.length>a;)!o(B,t=r[a++])||n&&!o(H,t)||i.push(B[t]);return i};$||(j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===H&&t.call(z,n),o(this,L)&&o(this[L],e)&&(this[L][e]=!1),V(this,e,S(1,n))};return i&&W&&V(H,e,{configurable:!0,set:t}),X(e)},u(j.prototype,"toString",function(){return this._k}),N.f=Q,k.f=q,n(68).f=C.f=ee,n(28).f=Z,O.f=te,i&&!n(21)&&u(H,"propertyIsEnumerable",Z,!0),h.f=function(e){return X(d(e))}),a(a.G+a.W+a.F*!$,{Symbol:j});for(var ne="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;ne.length>re;)d(ne[re++]);for(var oe=M(d.store),ie=0;oe.length>ie;)m(oe[ie++]);a(a.S+a.F*!$,"Symbol",{for:function(e){return o(G,e+="")?G[e]:G[e]=j(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var t in G)if(G[t]===e)return t},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!$,"Object",{create:J,defineProperty:q,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var ae=c(function(){O.f(1)});a(a.S+a.F*ae,"Object",{getOwnPropertySymbols:function(e){return O.f(w(e))}}),D&&a(a.S+a.F*(!$||c(function(){var e=j();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(b(t)||void 0!==e)&&!Y(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Y(t))return t}),r[1]=t,I.apply(D,r)}}),j.prototype[R]||n(11)(j.prototype,R,j.prototype.valueOf),f(j,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(e,t,n){var r=n(25)("meta"),o=n(10),i=n(12),a=n(7).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(14)(function(){return s(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++u,w:{}}})},f=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";l(e)}return e[r].i},p=function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;l(e)}return e[r].w},d=function(e){return c&&h.NEED&&s(e)&&!i(e,r)&&l(e),e},h=e.exports={KEY:r,NEED:!1,fastKey:f,getWeak:p,onFreeze:d}},function(e,t,n){var r=n(22),o=n(44),i=n(28);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,u=n(e),s=i.f,c=0;u.length>c;)s.call(e,a=u[c++])&&t.push(a);return t}},function(e,t,n){var r=n(23);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(16),o=n(68).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return o(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?u(e):o(r(e))}},function(e,t,n){n(46)("asyncIterator")},function(e,t,n){n(46)("observable")},function(e,t,n){e.exports={default:n(137),__esModule:!0}},function(e,t,n){n(138),e.exports=n(0).Object.setPrototypeOf},function(e,t,n){var r=n(4);r(r.S,"Object",{setPrototypeOf:n(139).set})},function(e,t,n){var r=n(10),o=n(6),i=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(13)(Function.call,n(69).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},function(e,t,n){e.exports={default:n(141),__esModule:!0}},function(e,t,n){n(142);var r=n(0).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(4);r(r.S,"Object",{create:n(36)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(144),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.key||""}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),f=n(5),p=r(f);n(145);var d=n(146),h=r(d),m=n(149),v=n(47),y=(0,m.whichTransitionEvent)(),g=!y,b=function(e){function t(){var e,n,r,a;o(this,t);for(var l=arguments.length,p=Array(l),d=0;d<l;d++)p[d]=arguments[d];return n=r=i(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(p))),r.state={children:f.Children.toArray(r.props.children).map(function(e){return c({},e,{element:e,appearing:!0})})},r.childrenData={},r.parentData={domNode:null,boundingBox:null},r.heightPlaceholderData={domNode:null},r.remainingAnimations=0,r.childrenToAnimate=[],r.runAnimation=function(){r.state.children.filter(r.doesChildNeedToBeAnimated).forEach(function(e,t){r.remainingAnimations+=1,r.childrenToAnimate.push(u(e)),r.animateChild(e,t)}),"function"==typeof r.props.onStartAll&&r.callChildrenHook(r.props.onStartAll)},r.doesChildNeedToBeAnimated=function(e){if(!u(e))return!1;var t=r.getChildData(u(e)),n=t.domNode,o=t.boundingBox,i=r.parentData.boundingBox;if(!n)return!1;var a=r.props,c=a.appearAnimation,l=a.enterAnimation,f=a.leaveAnimation,p=a.getPosition,d=e.appearing&&c,h=e.entering&&l,v=e.leaving&&f;if(d||h||v)return!0;var y=(0,m.getPositionDelta)({childDomNode:n,childBoundingBox:o,parentBoundingBox:i,getPosition:p}),g=s(y,2),b=g[0],w=g[1];return 0!==b||0!==w},a=n,i(r,a)}return a(t,e),l(t,[{key:"componentDidMount",value:function(){this.props.appearAnimation&&!this.isAnimationDisabled(this.props)&&(this.prepForAnimation(),this.runAnimation())}},{key:"componentWillReceiveProps",value:function(e){this.updateBoundingBoxCaches();var t=f.Children.toArray(e.children);this.setState({children:this.isAnimationDisabled(e)?t.map(function(e){return c({},e,{element:e})}):this.calculateNextSetOfChildren(t)})}},{key:"componentDidUpdate",value:function(e){var t=f.Children.toArray(this.props.children).map(function(e){return e.key}),n=f.Children.toArray(e.children).map(function(e){return e.key});!(0,v.arraysEqual)(t,n)&&!this.isAnimationDisabled(this.props)&&(this.prepForAnimation(),this.runAnimation())}},{key:"calculateNextSetOfChildren",value:function(e){var t=this,n=e.map(function(e){var n=t.findChildByKey(e.key||""),r=!n||n.leaving;return c({},e,{element:e,entering:r})}),r=0;return this.state.children.forEach(function(o,i){if(!e.find(function(e){return e.key===u(o)})&&t.props.leaveAnimation){var a=c({},o,{leaving:!0}),s=i+r;n.splice(s,0,a),r+=1}}),n}},{key:"prepForAnimation",value:function(){var e=this,t=this.props,n=t.leaveAnimation,r=t.maintainContainerHeight,o=t.getPosition;if(n){this.state.children.filter(function(e){return e.leaving}).forEach(function(t){var n=e.getChildData(u(t));n.boundingBox&&(0,m.removeNodeFromDOMFlow)(n,e.props.verticalAlignment)}),r&&this.heightPlaceholderData.domNode&&(0,m.updateHeightPlaceholder)({domNode:this.heightPlaceholderData.domNode,parentData:this.parentData,getPosition:o})}this.state.children.forEach(function(t){var n=e.getChildData(u(t)),r=n.domNode;r&&(t.entering||t.leaving||(0,m.applyStylesToDOMNode)({domNode:r,styles:{transition:""}}))})}},{key:"animateChild",value:function(e,t){var n=this,r=this.getChildData(u(e)),o=r.domNode;o&&((0,m.applyStylesToDOMNode)({domNode:o,styles:this.computeInitialStyles(e)}),this.props.onStart&&this.props.onStart(e,o),requestAnimationFrame(function(){requestAnimationFrame(function(){var r={transition:(0,m.createTransitionString)(t,n.props),transform:"",opacity:""};e.appearing&&n.props.appearAnimation?r=c({},r,n.props.appearAnimation.to):e.entering&&n.props.enterAnimation?r=c({},r,n.props.enterAnimation.to):e.leaving&&n.props.leaveAnimation&&(r=c({},r,n.props.leaveAnimation.to)),(0,m.applyStylesToDOMNode)({domNode:o,styles:r})})}),this.bindTransitionEndHandler(e))}},{key:"bindTransitionEndHandler",value:function(e){var t=this,n=this.getChildData(u(e)),r=n.domNode;if(r){var o=function n(o){o.target===r&&(r.style.transition="",t.triggerFinishHooks(e,r),r.removeEventListener(y,n),e.leaving&&t.removeChildData(u(e)))};r.addEventListener(y,o)}}},{key:"triggerFinishHooks",value:function(e,t){var n=this;if(this.props.onFinish&&this.props.onFinish(e,t),this.remainingAnimations-=1,0===this.remainingAnimations){var r=this.state.children.filter(function(e){return!e.leaving}).map(function(e){return c({},e,{appearing:!1,entering:!1})});this.setState({children:r},function(){"function"==typeof n.props.onFinishAll&&n.callChildrenHook(n.props.onFinishAll),n.childrenToAnimate=[]}),this.heightPlaceholderData.domNode&&(this.heightPlaceholderData.domNode.style.height="0")}}},{key:"callChildrenHook",value:function(e){var t=this,n=[],r=[];this.childrenToAnimate.forEach(function(e){var o=t.findChildByKey(e);o&&(n.push(o),t.hasChildData(e)&&r.push(t.getChildData(e).domNode))}),e(n,r)}},{key:"updateBoundingBoxCaches",value:function(){var e=this,t=this.parentData.domNode;t&&(this.parentData.boundingBox=this.props.getPosition(t),this.state.children.forEach(function(n){var r=u(n);if(r&&e.hasChildData(r)){var o=e.getChildData(r);o.domNode&&n&&e.setChildData(r,{boundingBox:(0,m.getRelativeBoundingBox)({childDomNode:o.domNode,parentDomNode:t,getPosition:e.props.getPosition})})}}))}},{key:"computeInitialStyles",value:function(e){if(e.appearing)return this.props.appearAnimation?this.props.appearAnimation.from:{};if(e.entering)return this.props.enterAnimation?c({position:"",top:"",left:"",right:"",bottom:""},this.props.enterAnimation.from):{};if(e.leaving)return this.props.leaveAnimation?this.props.leaveAnimation.from:{};var t=this.getChildData(u(e)),n=t.domNode,r=t.boundingBox,o=this.parentData.boundingBox;if(!n)return{};var i=(0,m.getPositionDelta)({childDomNode:n,childBoundingBox:r,parentBoundingBox:o,getPosition:this.props.getPosition}),a=s(i,2);return{transform:"translate("+a[0]+"px, "+a[1]+"px)"}}},{key:"isAnimationDisabled",value:function(e){return g||e.disableAllAnimations||0===e.duration&&0===e.delay&&0===e.staggerDurationBy&&0===e.staggerDelayBy}},{key:"findChildByKey",value:function(e){return this.state.children.find(function(t){return u(t)===e})}},{key:"hasChildData",value:function(e){return Object.prototype.hasOwnProperty.call(this.childrenData,e)}},{key:"getChildData",value:function(e){return this.hasChildData(e)?this.childrenData[e]:{}}},{key:"setChildData",value:function(e,t){this.childrenData[e]=c({},this.getChildData(e),t)}},{key:"removeChildData",value:function(e){delete this.childrenData[e]}},{key:"createHeightPlaceholder",value:function(){var e=this,t=this.props.typeName,n="ul"===t||"ol"===t,r=n?"li":"div";return p.default.createElement(r,{key:"height-placeholder",ref:function(t){e.heightPlaceholderData.domNode=t},style:{visibility:"hidden",height:0}})}},{key:"childrenWithRefs",value:function(){var e=this;return this.state.children.map(function(t){return p.default.cloneElement(t.element,{ref:function(n){if(n){var r=(0,m.getNativeNode)(n);e.setChildData(u(t),{domNode:r})}}})})}},{key:"render",value:function(){var e=this,t=this.props,n=t.typeName,r=t.delegated,o=t.leaveAnimation,i=t.maintainContainerHeight,a=c({},r,{ref:function(t){e.parentData.domNode=t}}),u=this.childrenWithRefs();return o&&i&&u.push(this.createHeightPlaceholder()),p.default.createElement(n,a,u)}}]),t}(f.Component);t.default=(0,h.default)(b),e.exports=t.default},function(e,t,n){"use strict";Array.prototype.find||(Array.prototype.find=function(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t=Object(this),n=t.length>>>0,r=arguments[1],o=void 0,i=0;i<n;i++)if(o=t[i],e.call(r,o,i,t))return o}),Array.prototype.every||(Array.prototype.every=function(e,t){var n,r;if(null==this)throw new TypeError("this is null or not defined");var o=Object(this),i=o.length>>>0;if("function"!=typeof e)throw new TypeError;for(arguments.length>1&&(n=t),r=0;r<i;){var a;if(r in o){a=o[r];if(!e.call(n,a,r,o))return!1}r++}return!0}),Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)})},function(e,t,n){"use strict";(function(r){function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){var t,n;return n=t=function(t){function n(){return o(this,n),i(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return a(n,t),l(n,[{key:"checkForStatelessFunctionalComponents",value:function(e){if("production"!==v){f.Children.toArray(e).every(function(e){return!(0,m.isElementAnSFC)(e)||void 0===e.key})||(0,d.statelessFunctionalComponentSupplied)()}}},{key:"convertProps",value:function(e){var t={children:e.children,easing:e.easing,onStart:e.onStart,onFinish:e.onFinish,onStartAll:e.onStartAll,onFinishAll:e.onFinishAll,typeName:e.typeName,disableAllAnimations:e.disableAllAnimations,getPosition:e.getPosition,maintainContainerHeight:e.maintainContainerHeight,verticalAlignment:e.verticalAlignment,duration:this.convertTimingProp("duration"),delay:this.convertTimingProp("delay"),staggerDurationBy:this.convertTimingProp("staggerDurationBy"),staggerDelayBy:this.convertTimingProp("staggerDelayBy"),appearAnimation:this.convertAnimationProp(e.appearAnimation,h.appearPresets),enterAnimation:this.convertAnimationProp(e.enterAnimation,h.enterPresets),leaveAnimation:this.convertAnimationProp(e.leaveAnimation,h.leavePresets),delegated:{}};this.checkForStatelessFunctionalComponents(t.children),void 0!==e.disableAnimations&&("production"!==v&&(0,d.deprecatedDisableAnimations)(),t.disableAllAnimations=e.disableAnimations);var n=Object.keys(t),r=(0,m.omit)(this.props,n);return r.style=c({position:"relative"},r.style),t.delegated=r,t}},{key:"convertTimingProp",value:function(e){var t=this.props[e],r="number"==typeof t?t:parseInt(t,10);if(isNaN(r)){var o=n.defaultProps[e];return"production"!==v&&(0,d.invalidTypeForTimingProp)({prop:e,value:t,defaultValue:o}),o}return r}},{key:"convertAnimationProp",value:function(e,t){switch(void 0===e?"undefined":s(e)){case"boolean":return t[e?h.defaultPreset:h.disablePreset];case"string":var n=Object.keys(t);return-1===n.indexOf(e)?("production"!==v&&(0,d.invalidEnterLeavePreset)({value:e,acceptableValues:n.join(", "),defaultValue:h.defaultPreset}),t[h.defaultPreset]):t[e];default:return e}}},{key:"render",value:function(){return p.default.createElement(e,this.convertProps(this.props))}}]),n}(f.Component),t.defaultProps={easing:"ease-in-out",duration:350,delay:0,staggerDurationBy:0,staggerDelayBy:0,typeName:"div",enterAnimation:h.defaultPreset,leaveAnimation:h.defaultPreset,disableAllAnimations:!1,getPosition:function(e){return e.getBoundingClientRect()},maintainContainerHeight:!1,verticalAlignment:"top"},n}Object.defineProperty(t,"__esModule",{value:!0});var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),f=n(5),p=function(e){return e&&e.__esModule?e:{default:e}}(f),d=n(147),h=n(148),m=n(47),v=void 0;try{v=r.env.NODE_ENV}catch(e){v="development"}t.default=u,e.exports=t.default}).call(t,n(9))},function(e,t,n){"use strict";function r(e){var t=!1;return function(){t||(console.warn(e),t=!0)}}Object.defineProperty(t,"__esModule",{value:!0});t.statelessFunctionalComponentSupplied=r("\n>> Error, via react-flip-move <<\n\nYou provided a stateless functional component as a child to <FlipMove>. Unfortunately, SFCs aren't supported, because Flip Move needs access to the backing instances via refs, and SFCs don't have a public instance that holds that info.\n\nPlease wrap your components in a native element (eg. <div>), or a non-functional component.\n"),t.invalidTypeForTimingProp=function(e){return console.error("\n>> Error, via react-flip-move <<\n\nThe prop you provided for '"+e.prop+"' is invalid. It needs to be a positive integer, or a string that can be resolved to a number. The value you provided is '"+e.value+"'.\n\nAs a result, the default value for this parameter will be used, which is '"+e.defaultValue+"'.\n")},t.deprecatedDisableAnimations=r("\n>> Warning, via react-flip-move <<\n\nThe 'disableAnimations' prop you provided is deprecated. Please switch to use 'disableAllAnimations'.\n\nThis will become a silent error in future versions of react-flip-move.\n"),t.invalidEnterLeavePreset=function(e){return console.error("\n>> Error, via react-flip-move <<\n\nThe enter/leave preset you provided is invalid. We don't currently have a '"+e.value+" preset.'\n\nAcceptable values are "+e.acceptableValues+". The default value of '"+e.defaultValue+"' will be used.\n")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.enterPresets={elevator:{from:{transform:"scale(0)",opacity:"0"},to:{transform:"",opacity:""}},fade:{from:{opacity:"0"},to:{opacity:""}},accordionVertical:{from:{transform:"scaleY(0)",transformOrigin:"center top"},to:{transform:"",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(0)",transformOrigin:"left center"},to:{transform:"",transformOrigin:"left center"}},none:null},o=t.leavePresets={elevator:{from:{transform:"scale(1)",opacity:"1"},to:{transform:"scale(0)",opacity:"0"}},fade:{from:{opacity:"1"},to:{opacity:"0"}},accordionVertical:{from:{transform:"scaleY(1)",transformOrigin:"center top"},to:{transform:"scaleY(0)",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(1)",transformOrigin:"left center"},to:{transform:"scaleX(0)",transformOrigin:"left center"}},none:null};t.appearPresets=r;r.accordianVertical=r.accordionVertical,r.accordianHorizontal=r.accordionHorizontal,o.accordianVertical=o.accordionVertical,o.accordianHorizontal=o.accordionHorizontal;t.defaultPreset="elevator",t.disablePreset="none"},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.domNode,n=e.styles;Object.keys(n).forEach(function(e){t.style.setProperty((0,s.hyphenate)(e),n[e])})}function i(){var e={transition:"transitionend","-o-transition":"oTransitionEnd","-moz-transition":"transitionend","-webkit-transition":"webkitTransitionEnd"};if("undefined"==typeof document)return"";var t=document.createElement("fakeelement"),n=Object.keys(e).find(function(e){return void 0!==t.style.getPropertyValue(e)});return n?e[n]:""}Object.defineProperty(t,"__esModule",{value:!0}),t.createTransitionString=t.getNativeNode=t.updateHeightPlaceholder=t.removeNodeFromDOMFlow=t.getPositionDelta=t.getRelativeBoundingBox=void 0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.applyStylesToDOMNode=o,t.whichTransitionEvent=i;var u=n(5),s=n(47);t.getRelativeBoundingBox=function(e){var t=e.childDomNode,n=e.parentDomNode,r=e.getPosition,o=r(n),i=r(t),a=i.top,u=i.left,s=i.right,c=i.bottom,l=i.width,f=i.height;return{top:a-o.top,left:u-o.left,right:o.right-s,bottom:o.bottom-c,width:l,height:f}},t.getPositionDelta=function(e){var t=e.childDomNode,n=e.childBoundingBox,r=e.parentBoundingBox,o=e.getPosition,i={top:0,left:0,right:0,bottom:0,height:0,width:0},a=n||i,u=r||i,s=o(t),c={top:s.top-u.top,left:s.left-u.left};return[a.left-c.left,a.top-c.top]},t.removeNodeFromDOMFlow=function(e,t){var n=e.domNode,i=e.boundingBox;if(n&&i){var u=window.getComputedStyle(n),s=["margin-top","margin-left","margin-right"],c=s.reduce(function(e,t){var n=u.getPropertyValue(t);return a({},e,r({},t,Number(n.replace("px",""))))},{});o({domNode:n,styles:{position:"absolute",top:("bottom"===t?i.top-i.height:i.top)-c["margin-top"]+"px",left:i.left-c["margin-left"]+"px",right:i.right-c["margin-right"]+"px"}})}},t.updateHeightPlaceholder=function(e){var t=e.domNode,n=e.parentData,r=e.getPosition,i=n.domNode,a=n.boundingBox;if(i&&a){o({domNode:t,styles:{height:"0"}});var u=a.height,s=r(i).height,c=u-s;o({domNode:t,styles:{height:c>0?c+"px":"0"}})}},t.getNativeNode=function(e){if("undefined"==typeof HTMLElement)return null;if(e instanceof HTMLElement)return e;var t=(0,u.findDOMNode)(e);return t instanceof HTMLElement?t:null},t.createTransitionString=function(e,t){var n=t.delay,r=t.duration,o=t.staggerDurationBy,i=t.staggerDelayBy,a=t.easing;return n+=e*i,r+=e*o,["transform","opacity"].map(function(e){return e+" "+r+"ms "+a+" "+n+"ms"}).join(", ")}},function(e,t,n){var r,o,i;/*!
    Autosize 3.0.21
    license: MIT
    http://www.jacklmoore.com/autosize
    */
    !function(n,a){o=[t,e],r=a,void 0!==(i="function"==typeof r?r.apply(t,o):r)&&(e.exports=i)}(0,function(e,t){"use strict";function n(e){function t(t){var n=e.style.width;e.style.width="0px",e.offsetWidth,e.style.width=n,e.style.overflowY=t}function n(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}function r(){var t=e.style.height,r=n(e),o=document.documentElement&&document.documentElement.scrollTop;e.style.height="auto";var i=e.scrollHeight+u;if(0===e.scrollHeight)return void(e.style.height=t);e.style.height=i+"px",s=e.clientWidth,r.forEach(function(e){e.node.scrollTop=e.scrollTop}),o&&(document.documentElement.scrollTop=o)}function o(){r();var n=Math.round(parseFloat(e.style.height)),o=window.getComputedStyle(e,null),i="content-box"===o.boxSizing?Math.round(parseFloat(o.height)):e.offsetHeight;if(i!==n?"hidden"===o.overflowY&&(t("scroll"),r(),i="content-box"===o.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):"hidden"!==o.overflowY&&(t("hidden"),r(),i="content-box"===o.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),c!==i){c=i;var u=a("autosize:resized");try{e.dispatchEvent(u)}catch(e){}}}if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!i.has(e)){var u=null,s=e.clientWidth,c=null,l=function(){e.clientWidth!==s&&o()},f=function(t){window.removeEventListener("resize",l,!1),e.removeEventListener("input",o,!1),e.removeEventListener("keyup",o,!1),e.removeEventListener("autosize:destroy",f,!1),e.removeEventListener("autosize:update",o,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),i.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",f,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",o,!1),window.addEventListener("resize",l,!1),e.addEventListener("input",o,!1),e.addEventListener("autosize:update",o,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",i.set(e,{destroy:f,update:o}),function(){var t=window.getComputedStyle(e,null);"vertical"===t.resize?e.style.resize="none":"both"===t.resize&&(e.style.resize="horizontal"),u="content-box"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(u)&&(u=0),o()}()}}function r(e){var t=i.get(e);t&&t.destroy()}function o(e){var t=i.get(e);t&&t.update()}var i="function"==typeof Map?new Map:function(){var e=[],t=[];return{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,r){-1===e.indexOf(n)&&(e.push(n),t.push(r))},delete:function(n){var r=e.indexOf(n);r>-1&&(e.splice(r,1),t.splice(r,1))}}}(),a=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){a=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}var u=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?(u=function(e){return e},u.destroy=function(e){return e},u.update=function(e){return e}):(u=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return n(e)}),e},u.destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],r),e},u.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],o),e}),t.exports=u})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return new i.default({phrases:w[e]||w.en,locale:e})};var o=n(152),i=r(o),a=n(153),u=r(a),s=n(154),c=r(s),l=n(155),f=r(l),p=n(156),d=r(p),h=n(157),m=r(h),v=n(158),y=r(v),g=n(159),b=r(g),w={zh:u.default,"zh-CN":u.default,"zh-TW":c.default,en:f.default,"es-ES":d.default,fr:m.default,ru:y.default,de:b.default}},function(e,t,n){var r,o;!function(n,i){r=[],void 0!==(o=function(){return i(n)}.apply(t,r))&&(e.exports=o)}(this,function(e){"use strict";function t(e){e=e||{},this.phrases={},this.extend(e.phrases||{}),this.currentLocale=e.locale||"en",this.allowMissing=!!e.allowMissing,this.warn=e.warn||s}function n(e){var t,n,r,o={};for(t in e)if(e.hasOwnProperty(t)){n=e[t];for(r in n)o[n[r]]=t}return o}function r(e){var t=/^\s+|\s+$/g;return e.replace(t,"")}function o(e,t,n){var o,i,u;return null!=n&&e?(i=e.split(l),u=i[a(t,n)]||i[0],o=r(u)):o=e,o}function i(e){var t=n(p);return t[e]||t.en}function a(e,t){return f[i(e)](t)}function u(e,t){for(var n in t)"_"!==n&&t.hasOwnProperty(n)&&(e=e.replace(new RegExp("%\\{"+n+"\\}","g"),t[n]));return e}function s(t){e.console&&e.console.warn&&e.console.warn("WARNING: "+t)}function c(e){var t={};for(var n in e)t[n]=e[n];return t}t.VERSION="0.4.3",t.prototype.locale=function(e){return e&&(this.currentLocale=e),this.currentLocale},t.prototype.extend=function(e,t){var n;for(var r in e)e.hasOwnProperty(r)&&(n=e[r],t&&(r=t+"."+r),"object"==typeof n?this.extend(n,r):this.phrases[r]=n)},t.prototype.clear=function(){this.phrases={}},t.prototype.replace=function(e){this.clear(),this.extend(e)},t.prototype.t=function(e,t){var n,r;return t=null==t?{}:t,"number"==typeof t&&(t={smart_count:t}),"string"==typeof this.phrases[e]?n=this.phrases[e]:"string"==typeof t._?n=t._:this.allowMissing?n=e:(this.warn('Missing translation for key: "'+e+'"'),r=e),"string"==typeof n&&(t=c(t),r=o(n,this.currentLocale,t.smart_count),r=u(r,t)),r},t.prototype.has=function(e){return e in this.phrases};var l="||||",f={chinese:function(e){return 0},german:function(e){return 1!==e?1:0},french:function(e){return e>1?1:0},russian:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},czech:function(e){return 1===e?0:e>=2&&e<=4?1:2},polish:function(e){return 1===e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},icelandic:function(e){return e%10!=1||e%100==11?1:0}},p={chinese:["fa","id","ja","ko","lo","ms","th","tr","zh"],german:["da","de","en","es","fi","el","he","hu","it","nl","no","pt","sv"],french:["fr","tl","pt-br"],russian:["hr","ru"],czech:["cs"],polish:["pl"],icelandic:["is"]};return t})},function(e,t){e.exports={init:"Dynamics 加载中 ...","no-found-related":"未找到相关的 %{link} 进行评论","please-contact":"请联系 %{user} 初始化创建","init-issue":"初始化动态","leave-a-comment":"请不要在此处留言哦,如果要留言请到留言板",preview:"预览",edit:"编辑",comment:"发送动态","support-markdown":"GamerNoTitle的动态栏","login-with-github":"请不要登录!","first-comment-person":"这里是GamerNoTitle的动态哦~",commented:"发表于","load-more":"加载更多动态",counts:"%{counts} 条评论","sort-asc":"从旧到新排序","sort-desc":"从新到旧排序",logout:"注销",anonymous:"请不要登录!"}},function(e,t){e.exports={init:"Dynamics 載入中 ...","no-found-related":"未找到相關的 %{link} 進行評論","please-contact":"請聯繫 %{user} 初始化創建","init-issue":"初始化動態","leave-a-comment":"請不要在此處留言哦,如果要留言請到留言板",preview:"預覽",edit:"編輯",comment:"發送動態","support-markdown":"GamerNoTitle的動態","login-with-github":"請不要登錄!","first-comment-person":"這裡是GamerNoTitle的動態哦~",commented:"發表於","load-more":"載入更多動態",counts:"%{counts} 條評論","sort-asc":"從舊到新排序","sort-desc":"從新到舊排序",logout:"註銷",anonymous:"請不要登錄!"}},function(e,t){e.exports={init:"Dynamics Loading","no-found-related":"Related %{link} not found","please-contact":"Please contact %{user} to initialize the Dynamics","init-issue":"Init Dynamics","leave-a-comment":"Do not leave your comment here, please go to the comment board",preview:"Preview",edit:"Edit",comment:"Comment","support-markdown":"Dynamics of GamerNoTitle","login-with-github":"Do not Login","first-comment-person":"Here're the Dynamics of GamerNoTitle",commented:"Published","load-more":"Load more",counts:"%{counts} comment |||| %{counts} comments","sort-asc":"Sort by Oldest","sort-desc":"Sort by Latest",logout:"Logout",anonymous:"Do not Login"}},function(e,t){e.exports={init:"Dynamics Loading","no-found-related":"Link %{link} no encontrado","please-contact":"Por favor contacta con %{user} para inicializar el comentario","init-issue":"Iniciar Issue","leave-a-comment":"Deja un comentario",preview:"Avance",edit:"Editar",comment:"Comentario","support-markdown":"Markdown es soportado","login-with-github":"Entrar con GitHub","first-comment-person":"Sé el primero en dejar un comentario!",commented:"comentó","load-more":"Cargar más",counts:"%{counts} comentario |||| %{counts} comentarios","sort-asc":"Ordenar por Antiguos","sort-desc":"Ordenar por Recientes",logout:"Salir",anonymous:"Anónimo"}},function(e,t){e.exports={init:"Dynamics Loading","no-found-related":"Lien %{link} non trouvé","please-contact":"S’il vous plaît contactez %{user} pour initialiser les commentaires","init-issue":"Initialisation des issues","leave-a-comment":"Laisser un commentaire",preview:"Aperçu",edit:"Modifier",comment:"Commentaire","support-markdown":"Markdown est supporté","login-with-github":"Se connecter avec GitHub","first-comment-person":"Être le premier à laisser un commentaire !",commented:"commenter","load-more":"Charger plus",counts:"%{counts} commentaire |||| %{counts} commentaires","sort-asc":"Trier par plus ancien","sort-desc":"Trier par plus récent",logout:"Déconnexion",anonymous:"Anonyme"}},function(e,t){e.exports={init:"Dynamics Loading","no-found-related":"Связанные %{link} не найдены","please-contact":"Пожалуйста, свяжитесь с %{user} чтобы инициализировать комментарий","init-issue":"Выпуск инициализации","leave-a-comment":"Оставить комментарий",preview:"Предварительный просмотр",edit:"Pедактировать",comment:"Комментарий","support-markdown":"Поддерживается Markdown","login-with-github":"Вход через GitHub","first-comment-person":"Будьте первым, кто оставил комментарий",commented:"прокомментированный","load-more":"Загрузить ещё",counts:"%{counts} комментарий |||| %{counts} комментарьев","sort-asc":"Сортировать по старым","sort-desc":"Сортировать по последним",logout:"Выход",anonymous:"Анонимный"}},function(e,t){e.exports={init:"Dynamics Loading","no-found-related":"Zugehöriger %{link} nicht gefunden","please-contact":"Bitte kontaktiere %{user} um den Kommentar zu initialisieren","init-issue":"Initialisiere Issue","leave-a-comment":"Hinterlasse einen Kommentar",preview:"Vorschau",edit:"Editieren",comment:"Kommentieren","support-markdown":"Markdown wird unterstützt","login-with-github":"Mit GitHub-Account anmelden","first-comment-person":"Sei die erste Person, welche einen Kommentar hinterlässt!",commented:"kommentierte","load-more":"Zeige mehr",counts:"%{counts} Kommentar |||| %{counts} Kommentare","sort-asc":"Älteste zuerst","sort-desc":"Neuste zuerst",logout:"Abmelden",anonymous:"Anonym"}},function(e,t){},function(e,t,n){e.exports={default:n(162),__esModule:!0}},function(e,t,n){n(163),e.exports=n(0).Object.keys},function(e,t,n){var r=n(17),o=n(22);n(65)("keys",function(){return function(e){return o(r(e))}})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(165),i=r(o),a=n(168),u=r(a);t.default=function(){function e(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,s=(0,u.default)(e);!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,i.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){e.exports={default:n(166),__esModule:!0}},function(e,t,n){n(27),n(20),e.exports=n(167)},function(e,t,n){var r=n(41),o=n(2)("iterator"),i=n(15);e.exports=n(0).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(r(t))}},function(e,t,n){e.exports={default:n(169),__esModule:!0}},function(e,t,n){n(27),n(20),e.exports=n(170)},function(e,t,n){var r=n(6),o=n(42);e.exports=n(0).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){e.exports=n(172)},function(e,t,n){"use strict";function r(e){var t=new a(e),n=i(a.prototype.request,t);return o.extend(n,a.prototype,t),o.extend(n,t),n}var o=n(3),i=n(72),a=n(173),u=n(78),s=n(75),c=r(s);c.Axios=a,c.create=function(e){return r(u(c.defaults,e))},c.Cancel=n(79),c.CancelToken=n(186),c.isCancel=n(74),c.all=function(e){return Promise.all(e)},c.spread=n(187),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){this.defaults=e,this.interceptors={request:new a,response:new a}}var o=n(3),i=n(73),a=n(174),u=n(175),s=n(78);r.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=s(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[u,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},r.prototype.getUri=function(e){return e=s(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},o.forEach(["delete","get","head","options"],function(e){r.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=r},function(e,t,n){"use strict";function r(){this.handlers=[]}var o=n(3);r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=r},function(e,t,n){"use strict";function r(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=n(3),i=n(176),a=n(74),u=n(75);e.exports=function(e){return r(e),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),o.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||u.adapter)(e).then(function(t){return r(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return a(t)||(r(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(77);e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(181),o=n(182);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(3),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a):a}},function(e,t,n){"use strict";var r=n(3);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(3);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,a){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(79);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e;return{token:new r(function(t){e=t}),cancel:e}},e.exports=r},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e){var t=e.className,n=e.getRef,r=e.onClick,i=e.onMouseDown,a=e.text,u=e.isLoading;return o.default.createElement("button",{ref:function(e){return n&&n(e)},className:"gt-btn "+t,onClick:r,onMouseDown:i},o.default.createElement("span",{className:"gt-btn-text"},a),u&&o.default.createElement("span",{className:"gt-btn-loading gt-spinner"}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e){var t=e.className,n=e.onClick,r=e.text;return o.default.createElement("a",{className:"gt-action "+t,onClick:n},o.default.createElement("span",{className:"gt-action-text"},r))}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(64),i=r(o),a=n(29),u=r(a),s=n(30),c=r(s),l=n(66),f=r(l),p=n(70),d=r(p),h=n(5),m=r(h),v=n(80),y=r(v),g=n(81),b=r(g),w=n(199),_=r(w),x=n(212),S=r(x),E=n(213),C=r(E),N=n(214),O=r(N),k=n(215),M=r(k),P=n(216),T=r(P);n(217);var A=(0,S.default)(),j=(0,C.default)(),D=(0,O.default)(),I=(0,M.default)(),L=(0,T.default)();"undefined"!=typeof window&&(window.GT_i18n_distanceInWordsLocaleMap={zh:A,"zh-CN":A,"zh-TW":j,"es-ES":D,fr:I,ru:L});var R=function(e){function t(){return(0,u.default)(this,t),(0,f.default)(this,(t.__proto__||(0,i.default)(t)).apply(this,arguments))}return(0,d.default)(t,e),(0,c.default)(t,[{key:"shouldComponentUpdate",value:function(){return!1}},{key:"componentDidMount",value:function(){var e=this.node,t=e.querySelector(".email-hidden-toggle>a");t&&t.addEventListener("click",function(t){t.preventDefault(),e.querySelector(".email-hidden-reply").classList.toggle("expanded")},!0)}},{key:"handleImageErrored",value:function(e){e.target.src="https://cdn.jsdelivr.net/npm/gitalk@1/src/assets/icon/github.svg"}},{key:"render",value:function(){var e=this,t=this.props,n=t.comment,r=t.user,o=t.language,i=t.commentedText,a=void 0===i?"":i,u=t.admin,s=void 0===u?[]:u,c=t.replyCallback,l=t.likeCallback,f=r&&n.user.login===r.login,p=~[].concat(s).map(function(e){return e.toLowerCase()}).indexOf(n.user.login.toLowerCase()),d=n.reactions,h="";return d&&d.totalCount&&(h=d.totalCount,100===d.totalCount&&d.pageInfo&&d.pageInfo.hasNextPage&&(h="100+")),m.default.createElement("div",{ref:function(t){e.node=t},className:"gt-comment "+(p?"gt-comment-admin":"")},m.default.createElement(y.default,{className:"gt-comment-avatar",src:n.user&&n.user.avatar_url,alt:n.user&&n.user.login,onError:this.handleImageErrored.bind(this)}),m.default.createElement("div",{className:"gt-comment-content"},m.default.createElement("div",{className:"gt-comment-header"},m.default.createElement("div",{className:"gt-comment-block-"+(r?"2":"1")}),m.default.createElement("a",{className:"gt-comment-username",href:n.user&&n.user.html_url},n.user&&n.user.login),m.default.createElement("span",{className:"gt-comment-text"},a),m.default.createElement("span",{className:"gt-comment-date"},(0,_.default)(n.created_at,{addSuffix:!0,locale:{distanceInWords:window.GT_i18n_distanceInWordsLocaleMap[o]}})),d&&m.default.createElement("a",{className:"gt-comment-like",title:"Like",onClick:l},d.viewerHasReacted?m.default.createElement(b.default,{className:"gt-ico-heart",name:"heart_on",text:h}):m.default.createElement(b.default,{className:"gt-ico-heart",name:"heart",text:h})),f?m.default.createElement("a",{href:n.html_url,className:"gt-comment-edit",title:"Edit",target:"_blank"},m.default.createElement(b.default,{className:"gt-ico-edit",name:"edit"})):m.default.createElement("a",{className:"gt-comment-reply",title:"Reply",onClick:c},m.default.createElement(b.default,{className:"gt-ico-reply",name:"reply"}))),m.default.createElement("div",{className:"gt-comment-body markdown-body",dangerouslySetInnerHTML:{__html:n.body_html}})))}}]),t}(h.Component);t.default=R},function(e,t,n){function r(e){return n(o(e))}function o(e){var t=i[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var i={"./arrow_down.svg":192,"./edit.svg":193,"./github.svg":194,"./heart.svg":195,"./heart_on.svg":196,"./reply.svg":197,"./tip.svg":198};r.keys=function(){return Object.keys(i)},r.resolve=o,e.exports=r,r.id=191},function(e,t){e.exports='<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="1619"><path d="M511.872 676.8c-0.003 0-0.006 0-0.008 0-9.137 0-17.379-3.829-23.21-9.97l-251.277-265.614c-5.415-5.72-8.743-13.464-8.744-21.984 0-17.678 14.33-32.008 32.008-32.008 9.157 0 17.416 3.845 23.25 10.009l228.045 241.103 228.224-241.088c5.855-6.165 14.113-10.001 23.266-10.001 8.516 0 16.256 3.32 21.998 8.736 12.784 12.145 13.36 32.434 1.264 45.233l-251.52 265.6c-5.844 6.155-14.086 9.984-23.223 9.984-0.025 0-0.051 0-0.076 0z" p-id="1620"></path></svg>'},function(e,t){e.exports='<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">\n <path d="M785.333333 85.333333C774.666667 85.333333 763.2 90.133333 754.666667 98.666667L682.666667 170.666667 853.333333 341.333333 925.333333 269.333333C942.4 252.266667 942.4 222.133333 925.333333 209.333333L814.666667 98.666667C806.133333 90.133333 796 85.333333 785.333333 85.333333zM640 217.333333 85.333333 768 85.333333 938.666667 256 938.666667 806.666667 384 640 217.333333z"></path>\n</svg>\n'},function(e,t){e.exports='<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <path d="M64 524C64 719.602 189.356 885.926 364.113 947.017 387.65799 953 384 936.115 384 924.767L384 847.107C248.118 863.007 242.674 773.052 233.5 758.001 215 726.501 171.5 718.501 184.5 703.501 215.5 687.501 247 707.501 283.5 761.501 309.956 800.642 361.366 794.075 387.658 787.497 393.403 763.997 405.637 743.042 422.353 726.638 281.774 701.609 223 615.67 223 513.5 223 464.053 239.322 418.406 271.465 381.627 251.142 320.928 273.421 269.19 276.337 261.415 334.458 256.131 394.888 302.993 399.549 306.685 432.663 297.835 470.341 293 512.5 293 554.924 293 592.81 297.896 626.075 306.853 637.426 298.219 693.46 258.054 747.5 262.966 750.382 270.652 772.185 321.292 753.058 381.083 785.516 417.956 802 463.809 802 513.5 802 615.874 742.99 701.953 601.803 726.786 625.381 750.003 640 782.295 640 818.008L640 930.653C640.752 939.626 640 948.664978 655.086 948.665 832.344 888.962 960 721.389 960 524 960 276.576 759.424 76 512 76 264.577 76 64 276.576 64 524Z"></path>\n</svg>\n'},function(e,t){e.exports='<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <path d="M527.061333 166.528A277.333333 277.333333 0 0 1 1000.618667 362.666667a277.333333 277.333333 0 0 1-81.28 196.138666l-377.173334 377.173334a42.666667 42.666667 0 0 1-60.330666 0l-377.173334-377.173334a277.376 277.376 0 0 1 392.277334-392.277333l15.061333 15.061333 15.061333-15.061333z m286.72 377.173333l45.226667-45.226666a192 192 0 0 0-135.808-327.893334 192 192 0 0 0-135.808 56.32l-45.226667 45.226667a42.666667 42.666667 0 0 1-60.330666 0l-45.226667-45.226667a192.042667 192.042667 0 0 0-271.616 271.573334L512 845.482667l301.781333-301.781334z"></path>\n</svg>\n'},function(e,t){e.exports='<svg t="1512463363724" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <path d="M527.061333 166.528A277.333333 277.333333 0 0 1 1000.618667 362.666667a277.333333 277.333333 0 0 1-81.28 196.138666l-377.173334 377.173334a42.666667 42.666667 0 0 1-60.330666 0l-377.173334-377.173334a277.376 277.376 0 0 1 392.277334-392.277333l15.061333 15.061333 15.061333-15.061333z"></path>\n</svg>\n'},function(e,t){e.exports='<svg viewBox="0 0 1332 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <path d="M529.066665 273.066666 529.066665 0 51.2 477.866666 529.066665 955.733335 529.066665 675.84C870.4 675.84 1109.333335 785.066665 1280 1024 1211.733335 682.666665 1006.933335 341.333334 529.066665 273.066666"></path>\n</svg>\n'},function(e,t){e.exports='<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <path d="M512 366.949535c-16.065554 0-29.982212 13.405016-29.982212 29.879884l0 359.070251c0 16.167882 13.405016 29.879884 29.982212 29.879884 15.963226 0 29.879884-13.405016 29.879884-29.879884L541.879884 396.829419C541.879884 380.763865 528.474868 366.949535 512 366.949535L512 366.949535z"\n p-id="3083"></path>\n <path d="M482.017788 287.645048c0-7.776956 3.274508-15.553912 8.80024-21.181973 5.525732-5.525732 13.302688-8.80024 21.181973-8.80024 7.776956 0 15.553912 3.274508 21.079644 8.80024 5.525732 5.62806 8.80024 13.405016 8.80024 21.181973 0 7.776956-3.274508 15.656241-8.80024 21.181973-5.525732 5.525732-13.405016 8.697911-21.079644 8.697911-7.879285 0-15.656241-3.274508-21.181973-8.697911C485.292295 303.301289 482.017788 295.524333 482.017788 287.645048L482.017788 287.645048z"\n p-id="3084"></path>\n <path d="M512 946.844409c-239.8577 0-434.895573-195.037873-434.895573-434.895573 0-239.8577 195.037873-434.895573 434.895573-434.895573 239.755371 0 434.895573 195.037873 434.895573 434.895573C946.895573 751.806535 751.755371 946.844409 512 946.844409zM512 126.17088c-212.740682 0-385.880284 173.037274-385.880284 385.777955 0 212.740682 173.037274 385.777955 385.880284 385.777955 212.740682 0 385.777955-173.037274 385.777955-385.777955C897.777955 299.208154 724.740682 126.17088 512 126.17088z"\n p-id="3085"></path>\n</svg>\n'},function(e,t,n){function r(e,t){return o(Date.now(),e,t)}var o=n(200);e.exports=r},function(e,t,n){function r(e,t,n){var r=n||{},d=o(e,t),h=r.locale,m=s.distanceInWords.localize;h&&h.distanceInWords&&h.distanceInWords.localize&&(m=h.distanceInWords.localize);var v,y,g={addSuffix:Boolean(r.addSuffix),comparison:d};d>0?(v=i(e),y=i(t)):(v=i(t),y=i(e));var b,w=a(y,v),_=y.getTimezoneOffset()-v.getTimezoneOffset(),x=Math.round(w/60)-_;if(x<2)return r.includeSeconds?w<5?m("lessThanXSeconds",5,g):w<10?m("lessThanXSeconds",10,g):w<20?m("lessThanXSeconds",20,g):w<40?m("halfAMinute",null,g):w<60?m("lessThanXMinutes",1,g):m("xMinutes",1,g):0===x?m("lessThanXMinutes",1,g):m("xMinutes",x,g);if(x<45)return m("xMinutes",x,g);if(x<90)return m("aboutXHours",1,g);if(x<c){return m("aboutXHours",Math.round(x/60),g)}if(x<l)return m("xDays",1,g);if(x<f){return m("xDays",Math.round(x/c),g)}if(x<p)return b=Math.round(x/f),m("aboutXMonths",b,g);if((b=u(y,v))<12){return m("xMonths",Math.round(x/f),g)}var S=b%12,E=Math.floor(b/12);return S<3?m("aboutXYears",E,g):S<9?m("overXYears",E,g):m("almostXYears",E+1,g)}var o=n(201),i=n(18),a=n(203),u=n(205),s=n(208),c=1440,l=2520,f=43200,p=86400;e.exports=r},function(e,t,n){function r(e,t){var n=o(e),r=n.getTime(),i=o(t),a=i.getTime();return r>a?-1:r<a?1:0}var o=n(18);e.exports=r},function(e,t){function n(e){return e instanceof Date}e.exports=n},function(e,t,n){function r(e,t){var n=o(e,t)/1e3;return n>0?Math.floor(n):Math.ceil(n)}var o=n(204);e.exports=r},function(e,t,n){function r(e,t){var n=o(e),r=o(t);return n.getTime()-r.getTime()}var o=n(18);e.exports=r},function(e,t,n){function r(e,t){var n=o(e),r=o(t),u=a(n,r),s=Math.abs(i(n,r));return n.setMonth(n.getMonth()-u*s),u*(s-(a(n,r)===-u))}var o=n(18),i=n(206),a=n(207);e.exports=r},function(e,t,n){function r(e,t){var n=o(e),r=o(t);return 12*(n.getFullYear()-r.getFullYear())+(n.getMonth()-r.getMonth())}var o=n(18);e.exports=r},function(e,t,n){function r(e,t){var n=o(e),r=n.getTime(),i=o(t),a=i.getTime();return r<a?-1:r>a?1:0}var o=n(18);e.exports=r},function(e,t,n){var r=n(209),o=n(210);e.exports={distanceInWords:r(),format:o()}},function(e,t){function n(){function e(e,n,r){r=r||{};var o;return o="string"==typeof t[e]?t[e]:1===n?t[e].one:t[e].other.replace("{{count}}",n),r.addSuffix?r.comparison>0?"in "+o:o+" ago":o}var t={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};return{localize:e}}e.exports=n},function(e,t,n){function r(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],t=["January","February","March","April","May","June","July","August","September","October","November","December"],n=["Su","Mo","Tu","We","Th","Fr","Sa"],r=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],a=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["AM","PM"],s=["am","pm"],c=["a.m.","p.m."],l={MMM:function(t){return e[t.getMonth()]},MMMM:function(e){return t[e.getMonth()]},dd:function(e){return n[e.getDay()]},ddd:function(e){return r[e.getDay()]},dddd:function(e){return a[e.getDay()]},A:function(e){return e.getHours()/12>=1?u[1]:u[0]},a:function(e){return e.getHours()/12>=1?s[1]:s[0]},aa:function(e){return e.getHours()/12>=1?c[1]:c[0]}};return["M","D","DDD","d","Q","W"].forEach(function(e){l[e+"o"]=function(t,n){return o(n[e](t))}}),{formatters:l,formattingTokensRegExp:i(l)}}function o(e){var t=e%100;if(t>20||t<10)switch(t%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}var i=n(211);e.exports=r},function(e,t){function n(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);var o=r.concat(t).sort().reverse();return new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+o.join("|")+"|.)","g")}var r=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];e.exports=n},function(e,t){function n(){function e(e,n,r){r=r||{};var o;return o="string"==typeof t[e]?t[e]:1===n?t[e].one:t[e].other.replace("{{count}}",n),r.addSuffix?r.comparison>0?o+"内":o+"前":o}var t={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}};return{localize:e}}e.exports=n},function(e,t){function n(){function e(e,n,r){r=r||{};var o;return o="string"==typeof t[e]?t[e]:1===n?t[e].one:t[e].other.replace("{{count}}",n),r.addSuffix?r.comparison>0?o+"內":o+"前":o}var t={lessThanXSeconds:{one:"少於 1 秒",other:"少於 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分鐘",lessThanXMinutes:{one:"少於 1 分鐘",other:"少於 {{count}} 分鐘"},xMinutes:{one:"1 分鐘",other:"{{count}} 分鐘"},xHours:{one:"1 小時",other:"{{count}} 小時"},aboutXHours:{one:"大約 1 小時",other:"大約 {{count}} 小時"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXMonths:{one:"大約 1 個月",other:"大約 {{count}} 個月"},xMonths:{one:"1 個月",other:"{{count}} 個月"},aboutXYears:{one:"大約 1 年",other:"大約 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超過 1 年",other:"超過 {{count}} 年"},almostXYears:{one:"將近 1 年",other:"將近 {{count}} 年"}};return{localize:e}}e.exports=n},function(e,t){function n(){function e(e,n,r){r=r||{};var o;return o="string"==typeof t[e]?t[e]:1===n?t[e].one:t[e].other.replace("{{count}}",n),r.addSuffix?r.comparison>0?"en "+o:"hace "+o:o}var t={lessThanXSeconds:{one:"menos de un segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"medio minuto",lessThanXMinutes:{one:"menos de un minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"alrededor de 1 hora",other:"alrededor de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 día",other:"{{count}} días"},aboutXMonths:{one:"alrededor de 1 mes",other:"alrededor de {{count}} meses"},xMonths:{one:"1 mes",other:"{{count}} meses"},aboutXYears:{one:"alrededor de 1 año",other:"alrededor de {{count}} años"},xYears:{one:"1 año",other:"{{count}} años"},overXYears:{one:"más de 1 año",other:"más de {{count}} años"},almostXYears:{one:"casi 1 año",other:"casi {{count}} años"}};return{localize:e}}e.exports=n},function(e,t){function n(){function e(e,n,r){r=r||{};var o;return o="string"==typeof t[e]?t[e]:1===n?t[e].one:t[e].other.replace("{{count}}",n),r.addSuffix?r.comparison>0?"dans "+o:"il y a "+o:o}var t={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}};return{localize:e}}e.exports=n},function(e,t){function n(e,t){if(void 0!==e.one&&1===t)return e.one;var n=t%10,r=t%100;return 1===n&&11!==r?e.singularNominative.replace("{{count}}",t):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace("{{count}}",t):e.pluralGenitive.replace("{{count}}",t)}function r(e){return function(t,r){return r.addSuffix?r.comparison>0?e.future?n(e.future,t):"через "+n(e.regular,t):e.past?n(e.past,t):n(e.regular,t)+" назад":n(e.regular,t)}}function o(){function e(e,n,r){return r=r||{},t[e](n,r)}var t={lessThanXSeconds:r({regular:{one:"меньше секунды",singularNominative:"меньше {{count}} секунды",singularGenitive:"меньше {{count}} секунд",pluralGenitive:"меньше {{count}} секунд"},future:{one:"меньше, чем через секунду",singularNominative:"меньше, чем через {{count}} секунду",singularGenitive:"меньше, чем через {{count}} секунды",pluralGenitive:"меньше, чем через {{count}} секунд"}}),xSeconds:r({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду назад",singularGenitive:"{{count}} секунды назад",pluralGenitive:"{{count}} секунд назад"},future:{singularNominative:"через {{count}} секунду",singularGenitive:"через {{count}} секунды",pluralGenitive:"через {{count}} секунд"}}),halfAMinute:function(e,t){return t.addSuffix?t.comparison>0?"через полминуты":"полминуты назад":"полминуты"},lessThanXMinutes:r({regular:{one:"меньше минуты",singularNominative:"меньше {{count}} минуты",singularGenitive:"меньше {{count}} минут",pluralGenitive:"меньше {{count}} минут"},future:{one:"меньше, чем через минуту",singularNominative:"меньше, чем через {{count}} минуту",singularGenitive:"меньше, чем через {{count}} минуты",pluralGenitive:"меньше, чем через {{count}} минут"}}),xMinutes:r({regular:{singularNominative:"{{count}} минута",singularGenitive:"{{count}} минуты",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минуту назад",singularGenitive:"{{count}} минуты назад",pluralGenitive:"{{count}} минут назад"},future:{singularNominative:"через {{count}} минуту",singularGenitive:"через {{count}} минуты",pluralGenitive:"через {{count}} минут"}}),aboutXHours:r({regular:{singularNominative:"около {{count}} часа",singularGenitive:"около {{count}} часов",pluralGenitive:"около {{count}} часов"},future:{singularNominative:"приблизительно через {{count}} час",singularGenitive:"приблизительно через {{count}} часа",pluralGenitive:"приблизительно через {{count}} часов"}}),xHours:r({regular:{singularNominative:"{{count}} час",singularGenitive:"{{count}} часа",pluralGenitive:"{{count}} часов"}}),xDays:r({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} дней"}}),aboutXMonths:r({regular:{singularNominative:"около {{count}} месяца",singularGenitive:"около {{count}} месяцев",pluralGenitive:"около {{count}} месяцев"},future:{singularNominative:"приблизительно через {{count}} месяц",singularGenitive:"приблизительно через {{count}} месяца",pluralGenitive:"приблизительно через {{count}} месяцев"}}),xMonths:r({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяца",pluralGenitive:"{{count}} месяцев"}}),aboutXYears:r({regular:{singularNominative:"около {{count}} года",singularGenitive:"около {{count}} лет",pluralGenitive:"около {{count}} лет"},future:{singularNominative:"приблизительно через {{count}} год",singularGenitive:"приблизительно через {{count}} года",pluralGenitive:"приблизительно через {{count}} лет"}}),xYears:r({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} года",pluralGenitive:"{{count}} лет"}}),overXYears:r({regular:{singularNominative:"больше {{count}} года",singularGenitive:"больше {{count}} лет",pluralGenitive:"больше {{count}} лет"},future:{singularNominative:"больше, чем через {{count}} год",singularGenitive:"больше, чем через {{count}} года",pluralGenitive:"больше, чем через {{count}} лет"}}),almostXYears:r({regular:{singularNominative:"почти {{count}} год",singularGenitive:"почти {{count}} года",pluralGenitive:"почти {{count}} лет"},future:{singularNominative:"почти через {{count}} год",singularGenitive:"почти через {{count}} года",pluralGenitive:"почти через {{count}} лет"}})};return{localize:e}}e.exports=o},function(e,t){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.GT_ACCESS_TOKEN="GT_ACCESS_TOKEN",t.GT_VERSION="1.6.2",t.GT_COMMENT="GT_COMMENT"},function(e,t,n){"use strict";function r(e){var t=this,n=this.options,r=n.owner,o=n.repo,s=n.perPage,c=n.pagerDirection,l=n.defaultAuthor,f=this.state,p=f.cursor,d=f.comments;return a.axiosGithub.post("/graphql",u({owner:r,repo:o,id:e.number,pageSize:s,cursor:p},c),{headers:{Authorization:"bearer "+this.accessToken}}).then(function(n){var a=n.data.data.repository.issue.comments,u=a.nodes.map(function(t){var n=t.author||l;return{id:t.databaseId,gId:t.id,user:{avatar_url:n.avatarUrl,login:n.login,html_url:n.url},created_at:t.createdAt,body_html:t.bodyHTML,body:t.body,html_url:"https://github.com/"+r+"/"+o+"/issues/"+e.number+"#issuecomment-"+t.databaseId,reactions:t.reactions}}),s=void 0;s="last"===c?[].concat((0,i.default)(u),(0,i.default)(d)):[].concat((0,i.default)(d),(0,i.default)(u));var f=!1===a.pageInfo.hasPreviousPage||!1===a.pageInfo.hasNextPage;return t.setState({comments:s,isLoadOver:f,cursor:a.pageInfo.startCursor||a.pageInfo.endCursor}),s})}Object.defineProperty(t,"__esModule",{value:!0});var o=n(220),i=function(e){return e&&e.__esModule?e:{default:e}}(o),a=n(71),u=function(e,t){var n="last"===t?"before":"after",r="\n query getIssueAndComments(\n $owner: String!,\n $repo: String!,\n $id: Int!,\n $cursor: String,\n $pageSize: Int!\n ) {\n repository(owner: $owner, name: $repo) {\n issue(number: $id) {\n title\n url\n bodyHTML\n createdAt\n comments("+t+": $pageSize, "+n+": $cursor) {\n totalCount\n pageInfo {\n "+("last"===t?"hasPreviousPage":"hasNextPage")+"\n "+("before"===n?"startCursor":"endCursor")+"\n }\n nodes {\n id\n databaseId\n author {\n avatarUrl\n login\n url\n }\n bodyHTML\n body\n createdAt\n reactions(first: 100, content: HEART) {\n totalCount\n viewerHasReacted\n pageInfo{\n hasNextPage\n }\n nodes {\n id\n databaseId\n user {\n login\n }\n }\n }\n }\n }\n }\n }\n }\n ";return null===e.cursor&&delete e.cursor,{operationName:"getIssueAndComments",query:r,variables:e}};t.default=r},function(e,t,n){"use strict";t.__esModule=!0;var r=n(221),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,o.default)(e)}},function(e,t,n){e.exports={default:n(222),__esModule:!0}},function(e,t,n){n(20),n(223),e.exports=n(0).Array.from},function(e,t,n){"use strict";var r=n(13),o=n(4),i=n(17),a=n(57),u=n(58),s=n(37),c=n(224),l=n(42);o(o.S+o.F*!n(63)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,o,f,p=i(e),d="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,v=void 0!==m,y=0,g=l(p);if(v&&(m=r(m,h>2?arguments[2]:void 0,2)),void 0==g||d==Array&&u(g))for(t=s(p.length),n=new d(t);t>y;y++)c(n,y,v?m(p[y],y):p[y]);else for(f=g.call(p),n=new d;!(o=f.next()).done;y++)c(n,y,v?a(f,m,[o.value,y],!0):o.value);return n.length=y,n}})},function(e,t,n){"use strict";var r=n(7),o=n(19);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}}])});
    //# sourceMappingURL=gitalk.min.js.map
  • 在 主题配置文件 card_webinfo 下添加一行代码:

    1
    card_dynamics: true
主页魔改

1:主页魔改样式与本博客一致

2:样式修改过大,存在风险,请注意代码空格!!

3:有错误请在评论区留言!!!

一:修改主页图片

  1. 打开你的主题Butterfl文件,找到下面代码
    1
    2
    3
    cover:
    # display the cover or not (是否顯示文章封面)
    index_enable: true
  2. index_enable设置为false
  3. 打开 butterfly\layout\includes\mixins\post-ui.pug 文件,找到下面代码:
    1
    2
    .recent-post-info(class=no_cover)
    a.article-title(href=url_for(link) title=title)= title
  4. 替换成:
    1
    2
    3
    4
    5
    6
    7
    .recent-post-info(class=no_cover)
    a.article-title(href=url_for(link) title=title)= title
    a(href=url_for(link) title=title)
    if theme.lazyload.enable
    img.post_bg(data-lazy-src=url_for(post_cover) onerror=`this.onerror=null;this.src='`+ url_for(theme.error_img.post_page) + `'` alt=title)
    else
    img.post_bg(src=url_for(post_cover) onerror=`this.onerror=null;this.src='`+ url_for(theme.error_img.post_page) + `'` alt=title)
  5. 打开 butterfly\source\css\_third-party\normalize.min.css 文件,在底部添加如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .recent-post-info img {
    transition: all 0.25s ease;
    -moz-transition: all 0.25s ease;
    -webkit-transition: all 0.25s ease;
    -o-transition: all 0.25s ease;
    width: 100px;
    height: 100px;
    border-radius: 100%;
    float: right;
    margin: 4px;
    box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1), 0 2px 4px 0px rgba(0,0,0,0.1);
    margin: 0px 0px 0px 0px;
    }

二:修改文章标题下标签样式

  1. 打开 butterfly3.0.1\layout\includes\mixins\post-ui.pug 文件,找到如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    .article-meta-wrap
    if (is_home() && (article.top || article.sticky > 0))
    span.article-meta
    i.fas.fa-thumbtack.article-meta__icon.sticky
    span.sticky= _p('sticky')
    span.article-meta__separator |
    if (theme.post_meta.page.date_type)
    span.post-meta-date
    if (theme.post_meta.page.date_type === 'both')
    i.far.fa-calendar-alt
    span.article-meta-label=_p('post.created')
    time.post-meta-date-created(datetime=date_xml(article.date) title=_p('post.created') + ' ' + full_date(article.date))=date(article.date, config.date_format)
    span.article-meta__separator |
    i.fas.fa-history
    span.article-meta-label=_p('post.updated')
    time.post-meta-date-updated(datetime=date_xml(article.updated) title=_p('post.updated') + ' ' + full_date(article.updated))=date(article.updated, config.date_format)
    else
    - let data_type_updated = theme.post_meta.page.date_type === 'updated'
    - let date_type = data_type_updated ? 'updated' : 'date'
    - let date_icon = data_type_updated ? 'fas fa-history' :'far fa-calendar-alt'
    - let date_title = data_type_updated ? _p('post.updated') : _p('post.created')
    i(class=date_icon)
    span.article-meta-label=date_title
    time(datetime=date_xml(article[date_type]) title=date_title + ' ' + full_date(article[date_type]))=date(article[date_type], config.date_format)
    if (theme.post_meta.page.categories && article.categories.data.length > 0)
    span.article-meta
    span.article-meta__separator |
    i.fas.fa-inbox.article-meta__icon
    each item, index in article.categories.data
    a(href=url_for(item.path)).article-meta__categories #[=item.name]
    if (index < article.categories.data.length - 1)
    i.fas.fa-angle-right
    if (theme.post_meta.page.tags && article.tags.data.length > 0)
    span.article-meta.tags
    span.article-meta__separator |
    i.fas.fa-tag.article-meta__icon
    each item, index in article.tags.data
    a(href=url_for(item.path)).article-meta__tags #[=item.name]
    if (index < article.tags.data.length - 1)
    span.article-meta__link #[='•']
  2. 替换成:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    .article-meta-wrap
    if (is_home() && (article.top || article.sticky > 0))
    span.article-meta
    span
    i.fas.fa-thumbtack.article-meta__icon.sticky
    span.sticky= _p('sticky')
    span
    if (theme.post_meta.page.date_type)
    span.post-meta-date
    if (theme.post_meta.page.date_type === 'both')
    i.far.fa-calendar-alt
    span.article-meta-label=_p('post.created')
    time.post-meta-date-created(datetime=date_xml(article.date) title=_p('post.created') + ' ' + full_date(article.date))=date(article.date, config.date_format)
    span(style="padding-left: .3rem;")
    i.fas.fa-history
    span.article-meta-label=_p('post.updated')
    time.post-meta-date-updated(datetime=date_xml(article.updated) title=_p('post.updated') + ' ' + full_date(article.updated))=date(article.updated, config.date_format)
    span(style="padding-left: .3rem;")
    else
    - let data_type_updated = theme.post_meta.page.date_type === 'updated'
    - let date_type = data_type_updated ? 'updated' : 'date'
    - let date_icon = data_type_updated ? 'fas fa-history' :'far fa-calendar-alt'
    - let date_title = data_type_updated ? _p('post.updated') : _p('post.created')
    i(class=date_icon)
    span.article-meta-label=date_title
    time(datetime=date_xml(article[date_type]) title=date_title + ' ' + full_date(article[date_type]))=date(article[date_type], config.date_format)
    span
    if (theme.post_meta.page.categories && article.categories.data.length > 0)
    span.article-meta
    span
    i.fas.fa-inbox.article-meta__icon
    each item, index in article.categories.data
    a(href=url_for(item.path)).article-meta__categories #[=item.name]
    if (index < article.categories.data.length - 1)
    i.fas.fa-angle-right
    span
    if (theme.post_meta.page.tags && article.tags.data.length > 0)
    span.article-meta.tags
    span
    i.fas.fa-tag.article-meta__icon
    each item, index in article.tags.data
    a(href=url_for(item.path)).article-meta__tags #[=item.name]
    if (index < article.tags.data.length - 1)
    span.article-meta__link #[='•']
    span
  3. 打开 butterfly\source\css\_global\function.styl 文件,找到下面代码:
    1
    [data-theme='light']
  4. 添加一行代码:
    1
    --page-bg: #1759ee
  5. 打开 butterfly\source\css\_mode\darkmode.styl 文件,找到下面代码:
    1
    [data-theme='dark']
  6. 添加一行代码:
    1
    --page-bg: #121212
  7. 打开 butterfly\source\css\_third-party\normalize.min.css 文件,底部添加:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /*封面置顶,教程,标签*/
    .article-meta {
    position: relative;
    z-index: 1;
    display: inline-block;
    background-image: linear-gradient(to right, #3f90ff8c, #1152ecd9 100%);
    color: #fff;
    text-decoration: none;
    border-radius: 20px;
    margin: 5px 5px 1px 0px;
    }

    /*封面 span*/
    .article-meta span {
    padding-left: .3rem;
    }

    /*封面发表更新*/
    .post-meta-date {
    position: relative;
    z-index: 1;
    display: inline-block;
    background-image: linear-gradient(to right, #3f90ff8c, #1152ecd9 100%);
    color: #fff;
    text-decoration: none;
    padding-left: .3rem;
    border-radius: 20px;
    margin: 5px 5px 1px 0px;
    }

    /*封面底部*/
    #recent-posts > .recent-post-item {
    border-bottom: 5px solid var(--page-bg);
    }

三:调整侧栏最新文章时间

  • 打开 butterfly\layout\includes\widget\card_recent_post.pug 文件,替换成如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    .card-widget.card-recent-post
    .card-content
    .item-headline
    i.fas.fa-history
    span= _p('aside.card_recent_post')
    .aside-recent-item
    - let postLimit = theme.aside.card_recent_post.limit === 0 ? site.posts.length : theme.aside.card_recent_post.limit || 5
    - let sort = theme.aside.card_recent_post.sort === 'updated' ? 'updated' : 'date'
    - site.posts.sort(sort, -1).limit(postLimit).each(function(article){
    .aside-recent-post
    - let link = article.link || article.path
    - let title = article.title || _p('no_title')
    - let no_cover = article.cover === false || !theme.cover.aside_enable ? 'no-aside-cover' : ''
    - let post_cover = article.cover
    if post_cover && theme.cover.aside_enable
    a.aside-post-cover(href=url_for(link) title=title)
    if theme.lazyload.enable
    img.aside-post-bg(data-lazy-src=url_for(post_cover) onerror=`this.onerror=null;this.src='${url_for(theme.error_img.post_page)}'` alt=title)
    else
    img.aside-post-bg(src=url_for(post_cover) onerror=`this.onerror=null;this.src='${url_for(theme.error_img.post_page)}'` alt=title)
    .aside-post-info(class=no_cover)
    a.aside-post-title(href=url_for(link) title=title)= title
    if theme.aside.card_recent_post.sort === 'updated'
    span(style="padding-left: .3rem;")
    time.aside-post_meta.post-meta-updated(datetime=date_xml(article.updated) title=_p('post.updated') + ' ' + full_date(article.updated)) #[=date(article.updated, config.date_format)]
    span(style="padding-left: .3rem;")
    else
    span(style="padding-left: .3rem;")
    time.aside-post_meta.post-meta-date(datetime=date_xml(article.date) title=_p('post.created') + ' ' + full_date(article.date)) #[=date(article.date, config.date_format)]
    span(style="padding-left: .3rem;")
    - })

四:调整文章内标签

  • 打开 butterfly\layout\includes\header\post-info.pug 文件,替换成如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    #post-info
    #post-title
    .posttitle= page.title || _p('no_title')

    #post-meta
    .meta-firstline
    if (theme.post_meta.post.date_type)
    span.post-meta-date
    if (theme.post_meta.post.date_type === 'both')
    i.far.fa-calendar-alt.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.created')
    time.post-meta-date-created(datetime=date_xml(page.date) title=_p('post.created') + ' ' + full_date(page.date))=date(page.date, config.date_format)
    span(style="padding-left: .3rem;")
    i.fas.fa-history.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.updated')
    time.post-meta-date-updated(datetime=date_xml(page.updated) title=_p('post.updated') + ' ' + full_date(page.updated))=date(page.updated, config.date_format)
    span(style="padding-left: .3rem;")
    else
    - let data_type_update = theme.post_meta.post.date_type === 'updated'
    - let date_type = data_type_update ? 'updated' : 'date'
    - let date_icon = data_type_update ? 'fas fa-history' :'far fa-calendar-alt'
    - let data_info = data_type_update ? _p('post.updated') : _p('post.created')
    i.fa-fw.post-meta-icon(class=date_icon)
    span.post-meta-label= data_info
    time(datetime=date_xml(page[date_type]) title=date_title + ' ' + full_date(page[date_type]))=date(page[date_type], config.date_format)
    if (theme.post_meta.post.categories && page.categories.data.length > 0)
    span.post-meta-categories(style="position: relative;z-index: 1;display: inline-block;background-image: linear-gradient(to right, #3f90ff, #1152ec 100%);color: #fff;text-decoration: none;padding-left: .3rem;border-radius: 20px;margin: 5px 5px 1px 0px")
    if (theme.post_meta.post.date_type)

    each item, index in page.categories.data
    i.fas.fa-inbox.fa-fw.post-meta-icon
    a(href=url_for(item.path)).post-meta-categories #[=item.name]
    if (index < page.categories.data.length - 1)
    i.fas.fa-angle-right.post-meta-separator
    span(style="padding-left: .3rem;")

    .meta-secondline
    - let postWordcount = theme.wordcount.enable && (theme.wordcount.post_wordcount || theme.wordcount.min2read)
    if (postWordcount)
    span
    span.post-meta-wordcount(style="position: relative;z-index: 1;display: inline-block;background-image: linear-gradient(to right, #3f90ff, #1152ec 100%);color: #fff;text-decoration: none;padding-left: .3rem;border-radius: 20px;margin: 5px 5px 1px 0px;")
    if theme.wordcount.post_wordcount
    i.far.fa-file-word.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.wordcount') + ':'
    span.word-count= wordcount(page.content)
    if theme.wordcount.min2read
    span(style="padding-left: .3rem;")
    if theme.wordcount.min2read
    i.far.fa-clock.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.min2read') + ':'
    span= min2read(page.content, {cn: 350, en: 160}) + _p('post.min2read_unit')
    span(style="padding-left: .3rem;")

    if theme.busuanzi.page_pv
    span
    span.post-meta-pv-cv(style="position: relative;z-index: 1;display: inline-block;background-image: linear-gradient(to right, #3f90ff, #1152ec 100%);color: #fff;text-decoration: none;padding-left: .3rem;border-radius: 20px;margin: 5px 5px 1px 0px")
    i.far.fa-eye.fa-fw.post-meta-icon
    span.post-meta-label=_p('post.page_pv') + ':'
    span#busuanzi_value_page_pv
    span(style="padding-left: .3rem;")

    if !theme.comments.lazyload && page.comments !== false && theme.comments.use && theme.comments.count
    - var whichCount = theme.comments.use[0]
    if whichCount !== 'Livere' && whichCount !== 'Utterances'
    span.post-meta-separator |
    span.post-meta-commentcount
    if whichCount === 'Disqus' || whichCount === 'Disqusjs'
    i.far.fa-comments.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.comments') + ':'
    span.disqus-comment-count.comment-count
    a(href=full_url_for(page.path) + '#disqus_thread')
    else if whichCount === 'Valine'
    i.far.fa-comments.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.comments') + ':'
    a(href=url_for(page.path) + '#post-comment' itemprop="discussionUrl")
    span.valine-comment-count.comment-count(data-xid=url_for(page.path) itemprop="commentCount")
    else if whichCount === 'Gitalk'
    i.far.fa-comments.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.comments') + ':'
    a(href=url_for(page.path) + '#post-comment')
    span.gitalk-comment-count.comment-count
    else if whichCount === 'Facebook Comments'
    i.far.fa-comments.fa-fw.post-meta-icon
    span.post-meta-label= _p('post.comments') + ':'
    a.comment-count(href=url_for(page.path) + '#post-comment')
    span.fb-comments-count(data-href=urlNoIndex())

五:修改侧栏标题

  • 打开 butterfly\source\css_layout\aside.styl 文件,找到如下代码:

    1
    2
    .item-headline
    font-size: .8rem
  • 修改为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .item-headline
    font-size: .8rem
    position: relative;
    z-index: 1;
    display: block;
    background-image: linear-gradient(to right, #1152ecd9, #3f90ff8c 100%);
    color: #fff;
    text-decoration: none;
    padding-left: .5rem;
    border-radius: 20px;

六:修改鼠标移至文章显示渐变

  1. 打开 butterfly\source\css\_third-party\normalize.min.css 文件,底部添加代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /*主页文章鼠标移动渐变*/
    #aside_content .card-widget:hover {
    background: var(--card-bg-h);
    -webkit-box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
    box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
    }

    /*主页侧栏头像鼠标移动渐变*/
    #recent-posts > .recent-post-item:hover {
    background: var(--card-bg-h);
    -webkit-box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
    box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
    }
  2. 打开 butterfly\source\css\_mode\darkmode.styl 文件,[data-theme='dark']底部添加代码:
    1
    2
    --card-bg-h: #101010
    --border-radius: 1rem
  3. 打开 butterfly\source\css\_global\function.styl 文件,[data-theme='light']底部添加代码:
    1
    2
    --card-bg-h: linear-gradient(145deg, #cee3ff, #F8FFAE)
    --border-radius: 1rem

七:修改侧栏头像鼠标移动放大

  1. 打开 butterfly\source\css\_layout\aside.styl 文件,找到如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    .card-info
    img
    width: 110px
    height: 110px
    border-radius: 70px
    transition: all .5s

    &:hover
    transform: rotate(360deg)
  2. 替换成:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    .card-info
    img
    width: 110px
    height: 110px
    border-radius: 70px
    transition: all .5s
    box-shadow: 2px 2px 5px var(--nitaia)

    &:hover
    -webkit-transform: scale(0.9);
    -moz-transform: scale(0.9);
    -o-transform: scale(0.9);
    -ms-transform: scale(0.9);
    transform: scale(0.9);
    border-radius: 90px;
    -webkit-box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
    box-shadow: 10px 10px 10px var(--nitaia), -10px -10px 10px var(--nitaib);
  3. 打开 butterfly\source\css\_global\function.styl 文件,找到 [data-theme='light'] 代码,在下面添加:
    1
    --nitaia: #b2b2b2
  4. 打开 butterfly\source\css\_mode\darkmode.styl 文件,找到 [data-theme='dark'] 代码,在下面添加:
    1
    --nitaia: #151515

八:修改主页文章描述为可点链接

  1. 打开 butterfly\layout\includes\mixins\post-ui.pug文件,找到如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if theme.index_post_content.method == 1
    .content!= article.description
    else if theme.index_post_content.method == 2
    if article.description
    .content!= article.description
    else
    - const content = strip_html(article.content)
    - let expert = content.substring(0, theme.index_post_content.length)
    - content.length > theme.index_post_content.length ? expert += ' ...' : ''
    .content!= expert
    else
    - const content = strip_html(article.content)
    - let expert = content.substring(0, theme.index_post_content.length)
    - content.length > theme.index_post_content.length ? expert += ' ...' : ''
    .content!= expert
  2. 替换成
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if theme.index_post_content.method == 1
    .content!= article.description
    else if theme.index_post_content.method == 2
    a(href=url_for(link) title=title).content!= article.description
    if article.description
    else
    - const content = strip_html(article.content)
    - let expert = content.substring(0, theme.index_post_content.length)
    - content.length > theme.index_post_content.length ? expert += ' ...' : ''
    .content!= expert
  3. 打开 butterfly\source\css\_layout\page.styl文件找到 & > .content代码,下面添加一行:
    1
    color: var(--font-color)
返回顶部按钮魔改

添加 UP酱 返回顶部

  • 在 主题配置文件,引入下面JS代码:

    1
    2
    3
    4
    /*UP酱*/
    var top_up = "<img style='max-width: 300%;transform: translate(-80px,-60px);' src='https://p0.ssl.qhimgs1.com/sdr/400__/t019489e54550aeea34.gif' title='回到顶部' >";
    /*添加到返回顶部按钮下*/
    document.getElementById("go-up").innerHTML += top_up;
  • CSS代码:隐藏返回顶部按钮

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #go-up i {
    display: none;
    background-color: transparent !important;
    }

    #go-up {
    background-color: transparent !important;
    }

    #upj {
    transform: translate(-70px, -80px) !important;
    }
  • 如果箭头往上移:打开 butterfly\layout\includes\rightside.pug,找到如下代码:

    1
    2
    button#go-up(type="button" title=_p("rightside.back_to_top"))
    i.fas.fa-arrow-up
  • 将 i.fas.fa-arrow-up 修改为:i.fas.fa-arrow-up(style=”transform: translate(0px,6px);”)

卡通悬挂返回顶部

  • 打开 butterfly3.0.1\layout\includes\rightside.pug 文件,在最顶部添加下面代码:

    1
    <a href="#" class="cd-top faa-float animated"></a>
  • 在自己创建的 JS 文件或者主题的 JS文件,添加下面代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $(function() {
    var offset = 100
    , offset_opacity = 1200
    , scroll_top_duration = 700
    , $back_to_top = $('.cd-top');
    $(window).scroll(function() {
    if ($(this).scrollTop() > offset) {
    $back_to_top.addClass('cd-is-visible');
    $(".changeSkin-gear").css("bottom", "0");
    if ($(window).height() > 950) {
    $(".cd-top.cd-is-visible").css("top", "0");
    } else {
    $(".cd-top.cd-is-visible").css("top", ($(window).height() - 950) + "px");
    }
    } else {
    $(".changeSkin-gear").css("bottom", "-999px");
    $(".cd-top.cd-is-visible").css("top", "-900px");
    $back_to_top.removeClass('cd-is-visible cd-fade-out');
    }
    if ($(this).scrollTop() > offset_opacity) {
    $back_to_top.addClass('cd-fade-out');
    }
    });
    $back_to_top.on('cd-top', function(event) {
    event.preventDefault();
    $('body,html').animate({
    scrollTop: 0,
    }, scroll_top_duration);
    });
    })
  • 在自己创建的 CSS 文件或者主题的 CSS 文件,添加下面代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @media(max-width: 678px){.cd-top{display:none;}}

    .faa-float.animated {
    -webkit-animation: float 2s linear infinite;
    animation: float 2s linear infinite;
    }

    .cd-top {
    position: fixed;
    right: 25px;
    top: -900px;
    z-index: 99;
    width: 70px;
    height: 900px;
    background: url(https://cdn.jsdelivr.net/gh/zzsnn/jsdelivr-fome/images/scroll.png) no-repeat center; //蓝色
    /*background: url(https://cdn.jsdelivr.net/gh/zzsnn/jsdelivr-fome/images/scroll-zs.png) no-repeat center;*/ //棕色
    background-size: contain;
    -webkit-transition: all .5s ease-in-out;
    transition: all .5s ease-in-out;
    opacity: 1;
    }
移动端独立背景图

移动端独立背景图

  • 打开 /Butterfly/source/css/_layout/pagination.styl 文件,在最低部添加下面代码:
    1
    2
    3
    4
    5
    6
    7
    8
    @media screen and (max-width: 768px)
    .prev-post,
    .next-post
    width: 100% !important
    @media screen and (max-width: $sm)
    #web_bg
    background: url(http://tu.yaohuo.me/imgs/2020/06/8ebec35e93e04611.png)
    background-size: cover