浏览代码

Site updated: 2020-04-17 16:26:04

schtonn 5 年之前
父节点
当前提交
b95901881e
共有 47 个文件被更改,包括 518 次插入11169 次删除
  1. 0 59
      404.html
  2. 0 387
      archives/2020/03/index.html
  3. 0 387
      archives/2020/index.html
  4. 0 387
      archives/index.html
  5. 35 0
      bird.js
  6. 1 162
      core/css/main.css
  7. 1 18
      core/css/reset.css
  8. 1 49
      core/index.html
  9. 0 2355
      css/main.css
  10. 0 231
      games/index.html
  11. 二进制
      images/apple-touch-icon-next.png
  12. 二进制
      images/bird.png
  13. 二进制
      images/computer.mp4
  14. 二进制
      images/favicon-16x16-next.png
  15. 二进制
      images/favicon-32x32-next.png
  16. 二进制
      images/icon-256.png
  17. 二进制
      images/pipe.png
  18. 二进制
      images/segment-1.png
  19. 二进制
      images/transistor.png
  20. 0 307
      index.html
  21. 0 2334
      lib/font-awesome/css/font-awesome.css
  22. 0 0
      lib/font-awesome/css/font-awesome.min.css
  23. 6 21
      lib/pace/README.html
  24. 1 1
      lib/pace/pace-theme-flat-top.min.css
  25. 0 0
      lib/pace/pace-theme-material.min.css
  26. 103 0
      motion.js
  27. 57 0
      next-boot.js
  28. 26 0
      offlineClient.js
  29. 0 371
      posts/computer/index.html
  30. 0 342
      posts/dinic/index.html
  31. 0 317
      posts/fibonacci/index.html
  32. 0 241
      posts/matrix-pow/index.html
  33. 0 292
      posts/min-span-tree/index.html
  34. 0 397
      posts/plan/index.html
  35. 0 245
      posts/segment-tree/index.html
  36. 0 294
      posts/test/index.html
  37. 0 292
      posts/tree-link/index.html
  38. 0 383
      posts/union-find/index.html
  39. 0 136
      sans/index.html
  40. 二进制
      sans/media/mus_zz_megalovania.ogg
  41. 0 268
      tags/graph/index.html
  42. 0 209
      tags/index.html
  43. 0 228
      tags/math/index.html
  44. 0 248
      tags/other/index.html
  45. 0 208
      tags/struct/index.html
  46. 52 0
      trail.js
  47. 235 0
      utils.js

文件差异内容过多而无法显示
+ 0 - 59
404.html


文件差异内容过多而无法显示
+ 0 - 387
archives/2020/03/index.html


文件差异内容过多而无法显示
+ 0 - 387
archives/2020/index.html


文件差异内容过多而无法显示
+ 0 - 387
archives/index.html


+ 35 - 0
bird.js

@@ -0,0 +1,35 @@
+'use strict';
+var game = new Phaser.Game(400, 490, Phaser.AUTO, 'game_div'), game_state = {
+        main: function () {
+        }
+    };
+game_state.main.prototype = {
+    preload: function () {
+        this.game.stage.backgroundColor = '#71c5cf', this.game.load.image('bird', '/../images/bird.png'), this.game.load.image('pipe', '/../images/pipe.png');
+    },
+    create: function () {
+        this.bird = this.game.add.sprite(100, 245, 'bird'), this.bird.body.gravity.y = 1000, this.game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR).onDown.add(this.jump, this), this.pipes = game.add.group(), this.pipes.createMultiple(20, 'pipe'), this.timer = this.game.time.events.loop(1500, this.add_row_of_pipes, this), this.score = 0;
+        this.label_score = this.game.add.text(20, 20, '0', {
+            font: '30px Arial',
+            fill: '#ffffff'
+        });
+    },
+    update: function () {
+        0 == this.bird.inWorld && this.restart_game(), this.game.physics.overlap(this.bird, this.pipes, this.restart_game, null, this);
+    },
+    jump: function () {
+        this.bird.body.velocity.y = -350;
+    },
+    restart_game: function () {
+        this.game.time.events.remove(this.timer), this.game.state.start('main');
+    },
+    add_one_pipe: function (t, e) {
+        var i = this.pipes.getFirstDead();
+        i.reset(t, e), i.body.velocity.x = -200, i.outOfBoundsKill = !0;
+    },
+    add_row_of_pipes: function () {
+        for (var t = Math.floor(5 * Math.random()) + 1, e = 0; e < 8; e++)
+            e != t && e != t + 1 && this.add_one_pipe(400, 60 * e + 10);
+        this.score += 1, this.label_score.content = this.score;
+    }
+}, game.state.add('main', game_state.main), game.state.start('main');

+ 1 - 162
core/css/main.css

@@ -1,162 +1 @@
-
-
-/*********************************************
- * GLOBAL
- *********************************************/
-
-body, html {
-	overflow: hidden;
-	font-family: Helvetica, Arial, sans-serif;
-	color: #fff;
-	font-size: 11px;
-	background: #010c12;
-}
-
-.no-canvas {
-	color: #999999;
-	font-size: 24px;
-	text-align: center;
-	margin-top: 150px;
-}
-
-
-/*********************************************
- * EXPERIMENT STYLES
- *********************************************/
-
-canvas {
-	border: 6px #333333 solid;
-	cursor: crosshair;
-	z-index: 1;
-}
-
-#background {
-	border: none;
-	z-index: 0;
-}
-
-.ui {
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 10px;
-	color: #999999;
-	text-align: left;
-	padding: 8px;
-	background-color: rgba(0,0,0,0.4);
-	float: left;
-}
-
-#status {
-	width: 884px;
-	height: 15px;
-	padding: 8px;
-	display: none;
-	position: absolute;
-	z-index: 2;
-}
-
-#status span {
-	color: #bbbbbb;
-	font-weight: bold;
-	margin-right: 5px;
-}
-
-#status .fps {
-	float: right;
-}
-
-#panels {
-	width: 100%;
-	position: absolute;
-	z-index: 3;
-}
-
-#message {
-	padding: 150px 300px 0 60px;
-	width: 100%;
-	height: 100%;
-	box-sizing: border-box;
-
-	font-family: "Montserrat", Helvetica, Arial, sans-serif;
-	font-size: 20px;
-	text-transform: uppercase;
-	line-height: 1.4;
-}
-
-#message .start-button {
-	display: inline-block;
-	padding: 10px 20px;
-	font-size: 2em;
-	font-family: inherit;
-	border-radius: 2px;
-	margin-top: 20px;
-	background-color: #eee;
-	color: #222;
-	font-size: 1.6em;
-	text-transform: inherit;
-	transition: all .18s linear;
-
-	outline: 0;
-	border: 0;
-	cursor: pointer;
-
-	-webkit-appearance: none;
-	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-
-#message .start-button:hover {
-	background-color: #fff;
-}
-
-#message p {
-	margin-bottom: 20px;
-}
-
-#message a {
-	color: #fff;
-	text-decoration: none;
-}
-
-#message a:hover {
-	text-decoration: underline;
-}
-
-.ui h2 {
-	margin-bottom: 20px;
-	color: #eeeeee;
-}
-
-.ui p em {
-	color: #f5f5f5;
-}
-
-.ui ol {
-	margin: 10px 0;
-	padding-left: 1em;
-}
-
-.ui ol li {
-	margin: 0 0 2px 0;
-	list-style: unset;
-}
-
-.ui a.external {
-	outline: none;
-	font-family: sans-serif;
-	font-size: 1em;
-	font-weight: bold;
-	text-decoration: none;
-	color: #bbbbbb;
-	display: inline;
-	padding: 0;
-}
-
-.ui a.external:hover {
-	color: #ffffff;
-}
-
-
-@media screen and (max-width: 600px) {
-	#message {
-		padding: 60px 40px;
-	}
-}
+#status,.ui{padding:8px}#panels,#status{position:absolute}#message p,.ui h2{margin-bottom:20px}body,html{overflow:hidden;font-family:Helvetica,Arial,sans-serif;color:#fff;font-size:11px;background:#010c12}.no-canvas{color:#999;font-size:24px;text-align:center;margin-top:150px}canvas{border:6px solid #333;cursor:crosshair;z-index:1}#background{border:none;z-index:0}.ui{font-family:Arial,Helvetica,sans-serif;font-size:10px;color:#999;text-align:left;background-color:rgba(0,0,0,.4);float:left}#status{width:884px;height:15px;display:none;z-index:2}#status span{color:#bbb;font-weight:700;margin-right:5px}#status .fps{float:right}#panels{width:100%;z-index:3}#message{padding:150px 300px 0 60px;width:100%;height:100%;box-sizing:border-box;font-family:Montserrat,Helvetica,Arial,sans-serif;font-size:20px;text-transform:uppercase;line-height:1.4}#message .start-button{display:inline-block;padding:10px 20px;font-family:inherit;border-radius:2px;margin-top:20px;background-color:#eee;color:#222;font-size:1.6em;text-transform:inherit;transition:all .18s linear;outline:0;border:0;cursor:pointer;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}#message .start-button:hover{background-color:#fff}#message a{color:#fff;text-decoration:none}#message a:hover{text-decoration:underline}.ui h2{color:#eee}.ui p em{color:#f5f5f5}.ui ol{margin:10px 0;padding-left:1em}.ui ol li{margin:0 0 2px;list-style:outside}.ui a.external{outline:0;font-family:sans-serif;font-size:1em;font-weight:700;text-decoration:none;color:#bbb;display:inline;padding:0}.ui a.external:hover{color:#fff}@media screen and (max-width:600px){#message{padding:60px 40px}}

+ 1 - 18
core/css/reset.css

@@ -1,18 +1 @@
-html{color:#000;background:#222222;}
-a{cursor:pointer;}
-html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
-table{border-collapse:collapse;border-spacing:0;}
-fieldset,img{border:0;}
-address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
-li{list-style:none;}
-caption,th{text-align:left;}
-/* h1,h2,h3,h4,h5,h6{font-size:100%;} */
-q:before,q:after{content:'';}
-abbr,acronym {border:0;font-variant:normal;}
-sup {vertical-align:text-top;}
-sub {vertical-align:text-bottom;}
-input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;outline-style:none;outline-width:0pt;}
-legend{color:#000;}
-a:focus,object,h1,h2,h3,h4,h5,h6{-moz-outline-style: none; border:0px;}
-/*input[type="Submit"]{cursor:pointer;}*/
-strong {font-weight: bold;}
+html,legend{color:#000}html{background:#222}a{cursor:pointer}blockquote,body,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,html,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400}li{list-style:none}caption,th{text-align:left}q:after,q:before{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit;outline-style:none;outline-width:0}a:focus,h1,h2,h3,h4,h5,h6,object{-moz-outline-style:none;border:0}strong{font-weight:700}

+ 1 - 49
core/index.html

@@ -1,49 +1 @@
-<!DOCTYPE html>
-<!-- saved from url=(0026)https://lab.hakim.se/core/ -->
-<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-		
-
-		<meta name="description" content="Use your shield to defend the Core from the evil red organisms!">
-		<meta name="author" content="Hakim El Hattab">
-
-		<meta http-equiv="X-UA-Compatible" content="chrome=1">
-
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-mobile-web-app-status-bar-style" content="black">
-		<meta name="viewport" content="width = 450">
-
-        <title>core</title>
-
-		<link href="css/reset.css" rel="stylesheet" media="screen">
-		<link href="css/main.css" rel="stylesheet" media="screen">
-
-		<link href="css/css" rel="stylesheet">
-
-    </head>
-    <body data-gr-c-s-loaded="true" class="vsc-initialized" style="">
-		<div id="status" class="ui" style="left: -49px; top: -12px; display: block;">Score: <span>5457</span> Time: <span>59.98s</span></div>
-			<div id="panels" style="left: -49px; top: -12px; width: 1000px; height: 650px; display: block;">
-				<div id="message" class="ui">
-					<h2 id="title">Core</h2>
-					<p>
-						Protect the core from incoming red projectiles. Let green ones through.
-						<em>Press &amp; hold SPACE</em> for a temporary shield.
-					</p>
-					<button id="startButton" class="start-button">Start game</button>
-				</div>
-		</div>
-
-		<canvas id="world" width="1000" height="650" style="position: absolute; left: -55px; top: -18px;">
-			<p class="no-canvas">
-				You need a <a href="https://www.google.com/chrome">modern browser</a> to view this.
-			</p>
-		</canvas>
-		<canvas id="background" width="1000" height="650" style="position: absolute; left: -49px; top: -12px;"></canvas>
-
-		</script><script src="js/timbre.js"></script>
-		<script src="js/core-audio.js"></script>
-		<script src="js/core.js"></script>
-
-		<!-- Third party tracking and sharing code below -->
-    
-</body></html>
+<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="description" content="Use your shield to defend the Core from the evil red organisms!"><meta name="author" content="Hakim El Hattab"><meta http-equiv="X-UA-Compatible" content="chrome=1"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="viewport" content="width=450"><title>core</title><link href="css/reset.css" rel="stylesheet" media="screen"><link href="css/main.css" rel="stylesheet" media="screen"><link href="css/css" rel="stylesheet"></head><body data-gr-c-s-loaded="true" class="vsc-initialized" style=""><div id="status" class="ui" style="left:-49px;top:-12px;display:block">Score: <span>5457</span> Time: <span>59.98s</span></div><div id="panels" style="left:-49px;top:-12px;width:1000px;height:650px;display:block"><div id="message" class="ui"><h2 id="title">Core</h2><p> Protect the core from incoming red projectiles. Let green ones through. <em>Press &amp; hold SPACE</em> for a temporary shield.</p> <button id="startButton" class="start-button">Start game</button></div></div><canvas id="world" width="1000" height="650" style="position:absolute;left:-55px;top:-18px"><p class="no-canvas"> You need a <a href="https://www.google.com/chrome">modern browser</a> to view this.</p></canvas><canvas id="background" width="1000" height="650" style="position:absolute;left:-49px;top:-12px"></canvas><script src="js/timbre.js"></script><script src="js/core-audio.js"></script><script src="js/core.js"></script></body></html>

文件差异内容过多而无法显示
+ 0 - 2355
css/main.css


文件差异内容过多而无法显示
+ 0 - 231
games/index.html


二进制
images/apple-touch-icon-next.png


二进制
images/bird.png


二进制
images/computer.mp4


二进制
images/favicon-16x16-next.png


二进制
images/favicon-32x32-next.png


二进制
images/icon-256.png


二进制
images/pipe.png


二进制
images/segment-1.png


二进制
images/transistor.png


文件差异内容过多而无法显示
+ 0 - 307
index.html


文件差异内容过多而无法显示
+ 0 - 2334
lib/font-awesome/css/font-awesome.css


文件差异内容过多而无法显示
+ 0 - 0
lib/font-awesome/css/font-awesome.min.css


+ 6 - 21
lib/pace/README.html

@@ -1,32 +1,17 @@
-<h1 align="center"><a href="https://github.com/HubSpot/pace" target="_blank" rel="noopener">Progress bar</a> for <a href="https://github.com/theme-next" target="_blank" rel="noopener">NexT</a></h1>
-<h1 align="center">Installation</h1>
-<h2>If you want to use the CDN instead of clone this repo, please jump to the Step 3.</h2>
-<h2 align="center">Step 1 &rarr; Go to NexT dir</h2>
-<p>Change dir to <strong>NexT</strong> directory. There must be <code>layout</code>, <code>source</code>, <code>languages</code> and other directories:</p>
-<pre class="highlight"><code class="sh">$ <span class="built_in">cd</span> themes/next
+<h1 align="center"><a href="https://github.com/HubSpot/pace" target="_blank" rel="noopener">Progress bar</a> for <a href="https://github.com/theme-next" target="_blank" rel="noopener">NexT</a></h1><h1 align="center">Installation</h1><h2>If you want to use the CDN instead of clone this repo, please jump to the Step 3.</h2><h2 align="center">Step 1 &rarr; Go to NexT dir</h2><p>Change dir to <strong>NexT</strong> directory. There must be <code>layout</code>, <code>source</code>, <code>languages</code> and other directories:</p><pre class="highlight"><code class="sh">$ <span class="built_in">cd</span> themes/next
 $ ls
 _config.yml  crowdin.yml  docs  gulpfile.js  languages  layout  LICENSE.md  package.json  README.md  scripts  <span class="built_in">source</span>
-</code></pre>
-<h2 align="center">Step 2 &rarr; Get module</h2>
-<p>Install module to <code>source/lib</code> directory:</p>
-<pre class="highlight"><code class="sh">$ git <span class="built_in">clone</span> https://github.com/theme-next/theme-next-pace <span class="built_in">source</span>/lib/pace
-</code></pre>
-<h2 align="center">Step 3 &rarr; Set it up</h2>
-<p>Enable module in <strong>NexT</strong> <code>_config.yml</code> file and select your theme:</p>
-<pre class="highlight"><code class="yml"><span class="attr">pace:</span>
+</code></pre><h2 align="center">Step 2 &rarr; Get module</h2><p>Install module to <code>source/lib</code> directory:</p><pre class="highlight"><code class="sh">$ git <span class="built_in">clone</span> https://github.com/theme-next/theme-next-pace <span class="built_in">source</span>/lib/pace
+</code></pre><h2 align="center">Step 3 &rarr; Set it up</h2><p>Enable module in <strong>NexT</strong> <code>_config.yml</code> file and select your theme:</p><pre class="highlight"><code class="yml"><span class="attr">pace:</span>
   <span class="attr">enable:</span> <span class="literal">true</span>
   <span class="comment"># Themes list:</span>
   <span class="comment"># big-counter | bounce | barber-shop | center-atom | center-circle | center-radar | center-simple</span>
   <span class="comment"># corner-indicator | fill-left | flat-top | flash | loading-bar | mac-osx | material | minimal</span>
   <span class="attr">theme:</span> <span class="string">minimal</span>
-</code></pre>
-<p><strong>And, if you wants to use the CDN, then need to set:</strong> (you also need to find your corresponding theme css link in <a href="https://www.jsdelivr.com/package/npm/pace-js?path=themes" target="_blank" rel="noopener">jsdelivr</a>)</p>
-<pre class="highlight"><code class="yml"><span class="attr">vendors:</span>
+</code></pre><p><strong>And, if you wants to use the CDN, then need to set:</strong> (you also need to find your corresponding theme css link in <a href="https://www.jsdelivr.com/package/npm/pace-js?path=themes" target="_blank" rel="noopener">jsdelivr</a>)</p><pre class="highlight"><code class="yml"><span class="attr">vendors:</span>
   <span class="string">...</span>
   <span class="attr">pace:</span> <span class="string">//cdn.jsdelivr.net/npm/pace-js@1/pace.min.js</span>
   <span class="attr">pace_css:</span> <span class="string">//cdn.jsdelivr.net/npm/pace-js@1/themes/blue/pace-theme-minimal.css</span>
-</code></pre>
-<h1 align="center">Update</h1>
-<pre class="highlight"><code class="sh">$ <span class="built_in">cd</span> themes/next/<span class="built_in">source</span>/lib/pace
+</code></pre><h1 align="center">Update</h1><pre class="highlight"><code class="sh">$ <span class="built_in">cd</span> themes/next/<span class="built_in">source</span>/lib/pace
 $ git pull
-</code></pre>
+</code></pre>

+ 1 - 1
lib/pace/pace-theme-flat-top.min.css

@@ -1 +1 @@
-.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:fixed;top:0;left:0;width:100%;-webkit-transform:translate3d(0,-50px,0);-ms-transform:translate3d(0,-50px,0);transform:translate3d(0,-50px,0);-webkit-transition:-webkit-transform .5s ease-out;-ms-transition:-webkit-transform .5s ease-out;transition:transform .5s ease-out}.pace.pace-active{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.pace .pace-progress{display:block;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:10px;background:#29d;pointer-events:none}
+.pace,.pace .pace-progress{position:fixed;top:0;width:100%}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;-webkit-transform:translate3d(0,-50px,0);-ms-transform:translate3d(0,-50px,0);transform:translate3d(0,-50px,0);-webkit-transition:-webkit-transform .5s ease-out;-ms-transition:-webkit-transform .5s ease-out;transition:transform .5s ease-out}.pace.pace-active{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.pace .pace-progress{display:block;z-index:2000;right:100%;height:10px;background:#29d;pointer-events:none}

文件差异内容过多而无法显示
+ 0 - 0
lib/pace/pace-theme-material.min.css


+ 103 - 0
motion.js

@@ -0,0 +1,103 @@
+'use strict';
+window.$ && window.$.Velocity && (window.Velocity = window.$.Velocity), NexT.motion = {}, NexT.motion.integrator = {
+    queue: [],
+    cursor: -1,
+    init: function () {
+        return this.queue = [], this.cursor = -1, this;
+    },
+    add: function (t) {
+        return this.queue.push(t), this;
+    },
+    next: function () {
+        this.cursor++;
+        var t = this.queue[this.cursor];
+        'function' == typeof t && t(NexT.motion.integrator);
+    },
+    bootstrap: function () {
+        this.next();
+    }
+}, NexT.motion.middleWares = {
+    logo: function (t) {
+        var e = [], o = document.querySelector('.brand'), n = document.querySelector('.custom-logo-image'), i = document.querySelector('.site-title'), r = document.querySelector('.site-subtitle'), c = document.querySelector('.logo-line-before i'), u = document.querySelector('.logo-line-after i');
+        function s(t, e) {
+            return {
+                e: t,
+                p: { translateX: e },
+                o: {
+                    duration: 500,
+                    sequenceQueue: !1
+                }
+            };
+        }
+        function l() {
+            e.push({
+                e: n,
+                p: {
+                    opacity: 1,
+                    top: 0
+                },
+                o: { duration: 200 }
+            });
+        }
+        o && e.push({
+            e: o,
+            p: { opacity: 1 },
+            o: { duration: 200 }
+        }), 'Mist' === CONFIG.scheme && c && u && e.push(s(c, '100%'), s(u, '-100%')), 'Muse' === CONFIG.scheme && n && l(), i && e.push({
+            e: i,
+            p: {
+                opacity: 1,
+                top: 0
+            },
+            o: { duration: 200 }
+        }), r && e.push({
+            e: r,
+            p: {
+                opacity: 1,
+                top: 0
+            },
+            o: { duration: 200 }
+        }), 'Pisces' !== CONFIG.scheme && 'Gemini' !== CONFIG.scheme || !n || l(), 0 < e.length ? (e[e.length - 1].o.complete = function () {
+            t.next();
+        }, Velocity.RunSequence(e)) : t.next(), CONFIG.motion.async && t.next();
+    },
+    menu: function (t) {
+        Velocity(document.querySelectorAll('.menu-item'), 'transition.slideDownIn', {
+            display: null,
+            duration: 200,
+            complete: function () {
+                t.next();
+            }
+        }), CONFIG.motion.async && t.next();
+    },
+    subMenu: function (t) {
+        var e = document.querySelectorAll('.sub-menu .menu-item');
+        0 < e.length && e.forEach(function (t) {
+            t.style.opacity = 1;
+        }), t.next();
+    },
+    postList: function (t) {
+        var e = document.querySelectorAll('.post-block, .pagination, .comments'), o = CONFIG.motion.transition.post_block, n = document.querySelectorAll('.post-header'), i = CONFIG.motion.transition.post_header, r = document.querySelectorAll('.post-body'), c = CONFIG.motion.transition.post_body, u = document.querySelectorAll('.collection-header'), s = CONFIG.motion.transition.coll_header;
+        if (0 < e.length) {
+            var l = window.postMotionOptions || {
+                stagger: 100,
+                drag: !0,
+                complete: function () {
+                    t.next();
+                }
+            };
+            CONFIG.motion.transition.post_block && Velocity(e, 'transition.' + o, l), CONFIG.motion.transition.post_header && Velocity(n, 'transition.' + i, l), CONFIG.motion.transition.post_body && Velocity(r, 'transition.' + c, l), CONFIG.motion.transition.coll_header && Velocity(u, 'transition.' + s, l);
+        }
+        'Pisces' !== CONFIG.scheme && 'Gemini' !== CONFIG.scheme || t.next();
+    },
+    sidebar: function (t) {
+        var e = document.querySelector('.sidebar-inner'), o = CONFIG.motion.transition.sidebar;
+        !o || 'Pisces' !== CONFIG.scheme && 'Gemini' !== CONFIG.scheme || Velocity(e, 'transition.' + o, {
+            display: null,
+            duration: 200,
+            complete: function () {
+                e.style.transform = 'initial';
+            }
+        }), t.next();
+    }
+};

+ 57 - 0
next-boot.js

@@ -0,0 +1,57 @@
+'use strict';
+function _toConsumableArray(e) {
+    if (Array.isArray(e)) {
+        for (var t = 0, i = Array(e.length); t < e.length; t++)
+            i[t] = e[t];
+        return i;
+    }
+    return Array.from(e);
+}
+NexT.boot = {}, NexT.boot.registerEvents = function () {
+    NexT.utils.registerScrollPercent(), NexT.utils.registerCanIUseTag(), document.querySelector('.site-nav-toggle .toggle').addEventListener('click', function () {
+        event.currentTarget.classList.toggle('toggle-close');
+        var e = document.querySelector('.site-nav'), t = e.classList.contains('site-nav-on') ? 'slideUp' : 'slideDown';
+        'function' == typeof Velocity ? Velocity(e, t, {
+            duration: 200,
+            complete: function () {
+                e.classList.toggle('site-nav-on');
+            }
+        }) : e.classList.toggle('site-nav-on');
+    });
+    document.querySelectorAll('.sidebar-nav li').forEach(function (e, s) {
+        e.addEventListener('click', function (e) {
+            var t = e.currentTarget, i = 'sidebar-nav-active', o = 'sidebar-panel-active';
+            if (!t.classList.contains(i)) {
+                var n = document.querySelectorAll('.sidebar-panel'), a = n[s], r = n[1 - s];
+                window.anime({
+                    targets: r,
+                    duration: 200,
+                    easing: 'linear',
+                    opacity: 0,
+                    complete: function () {
+                        r.classList.remove(o), a.style.opacity = 0, a.classList.add(o), window.anime({
+                            targets: a,
+                            duration: 200,
+                            easing: 'linear',
+                            opacity: 1
+                        });
+                    }
+                }), [].concat(_toConsumableArray(t.parentNode.children)).forEach(function (e) {
+                    e.classList.remove(i);
+                }), t.classList.add(i);
+            }
+        });
+    }), window.addEventListener('resize', NexT.utils.initSidebarDimension), window.addEventListener('hashchange', function () {
+        var e = location.hash;
+        if ('' !== e && !e.match(/%\S{2}/)) {
+            var t = document.querySelector('.tabs ul.nav-tabs li a[href="' + e + '"]');
+            t && t.click();
+        }
+    });
+}, NexT.boot.refresh = function () {
+    CONFIG.fancybox && NexT.utils.wrapImageWithFancyBox(), CONFIG.mediumzoom && window.mediumZoom('.post-body :not(a) > img, .post-body > img'), CONFIG.lazyload && window.lozad('.post-body img').observe(), CONFIG.pangu && window.pangu.spacingPage(), CONFIG.exturl && NexT.utils.registerExtURL(), CONFIG.copycode.enable && NexT.utils.registerCopyCode(), NexT.utils.registerTabsTag(), NexT.utils.registerActiveMenuItem(), NexT.utils.registerLangSelect(), NexT.utils.registerSidebarTOC(), NexT.utils.wrapTableWithBox(), NexT.utils.registerVideoIframe();
+}, NexT.boot.motion = function () {
+    CONFIG.motion.enable && NexT.motion.integrator.add(NexT.motion.middleWares.logo).add(NexT.motion.middleWares.menu).add(NexT.motion.middleWares.postList).add(NexT.motion.middleWares.sidebar).bootstrap(), NexT.utils.updateSidebarPosition();
+}, window.addEventListener('DOMContentLoaded', function () {
+    NexT.boot.registerEvents(), NexT.boot.refresh(), NexT.boot.motion();
+});

+ 26 - 0
offlineClient.js

@@ -0,0 +1,26 @@
+'use strict';
+var _createClass = function () {
+    function s(e, a) {
+        for (var n = 0; n < a.length; n++) {
+            var s = a[n];
+            s.enumerable = s.enumerable || !1, s.configurable = !0, 'value' in s && (s.writable = !0), Object.defineProperty(e, s.key, s);
+        }
+    }
+    return function (e, a, n) {
+        return a && s(e.prototype, a), n && s(e, n), e;
+    };
+}();
+function _classCallCheck(e, a) {
+    if (!(e instanceof a))
+        throw new TypeError('Cannot call a class as a function');
+}
+!function () {
+    var e = (_createClass(n, [{key:"_OnBroadcastChannelMessage",value:function(e){this._onMessageCallback?this._onMessageCallback(e):this._queuedMessages.push(e)}},{key:"SetMessageCallback",value:function(e){this._onMessageCallback=e;var a=!0,n=!1,s=void 0;try{for(var t,l=this._queuedMessages[Symbol.iterator]();!(a=(t=l.next()).done);a=!0){var r=t.value;this._onMessageCallback(r)}}catch(e){n=!0,s=e}finally{try{!a&&l.return&&l.return()}finally{if(n)throw s}}this._queuedMessages.length=0}}]), n);
+    function n() {
+        var a = this;
+        _classCallCheck(this, n), this._broadcastChannel = 'undefined' == typeof BroadcastChannel ? null : new BroadcastChannel('offline'), this._queuedMessages = [], this._onMessageCallback = null, this._broadcastChannel && (this._broadcastChannel.onmessage = function (e) {
+            return a._OnBroadcastChannelMessage(e);
+        });
+    }
+    window.OfflineClientInfo = new e();
+}();

文件差异内容过多而无法显示
+ 0 - 371
posts/computer/index.html


文件差异内容过多而无法显示
+ 0 - 342
posts/dinic/index.html


文件差异内容过多而无法显示
+ 0 - 317
posts/fibonacci/index.html


文件差异内容过多而无法显示
+ 0 - 241
posts/matrix-pow/index.html


文件差异内容过多而无法显示
+ 0 - 292
posts/min-span-tree/index.html


文件差异内容过多而无法显示
+ 0 - 397
posts/plan/index.html


文件差异内容过多而无法显示
+ 0 - 245
posts/segment-tree/index.html


文件差异内容过多而无法显示
+ 0 - 294
posts/test/index.html


文件差异内容过多而无法显示
+ 0 - 292
posts/tree-link/index.html


文件差异内容过多而无法显示
+ 0 - 383
posts/union-find/index.html


文件差异内容过多而无法显示
+ 0 - 136
sans/index.html


二进制
sans/media/mus_zz_megalovania.ogg


文件差异内容过多而无法显示
+ 0 - 268
tags/graph/index.html


文件差异内容过多而无法显示
+ 0 - 209
tags/index.html


文件差异内容过多而无法显示
+ 0 - 228
tags/math/index.html


文件差异内容过多而无法显示
+ 0 - 248
tags/other/index.html


文件差异内容过多而无法显示
+ 0 - 208
tags/struct/index.html


+ 52 - 0
trail.js

@@ -0,0 +1,52 @@
+'use strict';
+var canvas, context, particles, SCREEN_WIDTH = window.innerWidth, SCREEN_HEIGHT = window.innerHeight, RADIUS = 60, RADIUS_SCALE = 1, RADIUS_SCALE_MIN = 1, RADIUS_SCALE_MAX = 1.5, QUANTITY = 25, mouseX = 0.5 * SCREEN_WIDTH, mouseY = 0.5 * SCREEN_HEIGHT, mouseIsDown = !1;
+function init() {
+    (canvas = document.getElementById('world')) && canvas.getContext && (context = canvas.getContext('2d'), document.addEventListener('mousemove', documentMouseMoveHandler, !1), document.addEventListener('mousedown', documentMouseDownHandler, !1), document.addEventListener('mouseup', documentMouseUpHandler, !1), document.addEventListener('touchstart', documentTouchStartHandler, !1), document.addEventListener('touchmove', documentTouchMoveHandler, !1), window.addEventListener('resize', windowResizeHandler, !1), createParticles(), windowResizeHandler(), setInterval(loop, 1000 / 60));
+}
+function createParticles() {
+    particles = [];
+    for (var e = 0; e < QUANTITY; e++) {
+        var t = {
+            position: {
+                x: mouseX,
+                y: mouseY
+            },
+            shift: {
+                x: mouseX,
+                y: mouseY
+            },
+            size: 1,
+            angle: 0,
+            speed: 0.01 + 0.04 * Math.random(),
+            targetSize: 1,
+            fillColor: '#' + (4210752 * Math.random() + 11184810 | 0).toString(16),
+            orbit: 0.5 * RADIUS + 0.5 * RADIUS * Math.random()
+        };
+        particles.push(t);
+    }
+}
+function documentMouseMoveHandler(e) {
+    mouseX = e.clientX, mouseY = e.clientY;
+}
+function documentMouseDownHandler(e) {
+    mouseIsDown = !0;
+}
+function documentMouseUpHandler(e) {
+    mouseIsDown = !1;
+}
+function documentTouchStartHandler(e) {
+    1 == e.touches.length && (e.preventDefault(), mouseX = e.touches[0].pageX - 0.5 * (window.innerWidth - SCREEN_WIDTH), mouseY = e.touches[0].pageY - 0.5 * (window.innerHeight - SCREEN_HEIGHT));
+}
+function documentTouchMoveHandler(e) {
+    1 == e.touches.length && (e.preventDefault(), mouseX = e.touches[0].pageX - 0.5 * (window.innerWidth - SCREEN_WIDTH), mouseY = e.touches[0].pageY - 0.5 * (window.innerHeight - SCREEN_HEIGHT));
+}
+function windowResizeHandler() {
+    SCREEN_WIDTH = window.innerWidth, SCREEN_HEIGHT = window.innerHeight, canvas.width = SCREEN_WIDTH, canvas.height = SCREEN_HEIGHT;
+}
+function loop() {
+    for (context.shadowBlur = 3, mouseIsDown ? RADIUS_SCALE += 0.02 * (RADIUS_SCALE_MAX - RADIUS_SCALE) : RADIUS_SCALE -= 0.02 * (RADIUS_SCALE - RADIUS_SCALE_MIN), RADIUS_SCALE = Math.min(RADIUS_SCALE, RADIUS_SCALE_MAX), i = 0, len = particles.length; i < len; i++) {
+        var e = particles[i];
+        e.angle += e.speed, e.shift.x += (mouseX - e.shift.x) * e.speed, e.shift.y += (mouseY - e.shift.y) * e.speed, e.position.x = e.shift.x + Math.cos(i + e.angle) * (e.orbit * RADIUS_SCALE), e.position.y = e.shift.y + Math.sin(i + e.angle) * (e.orbit * RADIUS_SCALE), e.position.x = Math.max(Math.min(e.position.x, SCREEN_WIDTH), 0), e.position.y = Math.max(Math.min(e.position.y, SCREEN_HEIGHT), 0), e.size += 0.05 * (e.targetSize - e.size), Math.round(e.size) == Math.round(e.targetSize) && (e.targetSize = 1 + 7 * Math.random()), context.beginPath(), context.fillStyle = e.fillColor, context.moveTo(e.position.x, e.position.y), context.arc(e.position.x, e.position.y, e.size, 0, 2 * Math.PI, !0), context.fill();
+    }
+}
+init();

+ 235 - 0
utils.js

@@ -0,0 +1,235 @@
+'use strict';
+function _toConsumableArray(e) {
+    if (Array.isArray(e)) {
+        for (var t = 0, n = Array(e.length); t < e.length; t++)
+            n[t] = e[t];
+        return n;
+    }
+    return Array.from(e);
+}
+HTMLElement.prototype.wrap = function (e) {
+    this.parentNode.insertBefore(e, this), this.parentNode.removeChild(this), e.appendChild(this);
+}, NexT.utils = {
+    wrapImageWithFancyBox: function () {
+        document.querySelectorAll('.post-body :not(a) > img, .post-body > img').forEach(function (e) {
+            var t = $(e), n = t.attr('data-src') || t.attr('src'), a = t.wrap('<a class="fancybox fancybox.image" href="' + n + '" itemscope itemtype="http://schema.org/ImageObject" itemprop="url"></a>').parent('a');
+            t.is('.post-gallery img') ? a.attr('data-fancybox', 'gallery').attr('rel', 'gallery') : t.is('.group-picture img') ? a.attr('data-fancybox', 'group').attr('rel', 'group') : a.attr('data-fancybox', 'default').attr('rel', 'default');
+            var r = t.attr('title') || t.attr('alt');
+            r && (a.append('<p class="image-caption">' + r + '</p>'), a.attr('title', r).attr('data-caption', r));
+        }), $.fancybox.defaults.hash = !1, $('.fancybox').fancybox({
+            loop: !0,
+            helpers: { overlay: { locked: !1 } }
+        });
+    },
+    registerExtURL: function () {
+        document.querySelectorAll('span.exturl').forEach(function (e) {
+            var t = document.createElement('a');
+            t.href = decodeURIComponent(atob(e.dataset.url).split('').map(function (e) {
+                return '%' + ('00' + e.charCodeAt(0).toString(16)).slice(-2);
+            }).join('')), t.rel = 'noopener external nofollow noreferrer', t.target = '_blank', t.className = e.className, t.innerHTML = e.innerHTML, e.parentNode.replaceChild(t, e);
+        });
+    },
+    registerCopyCode: function () {
+        document.querySelectorAll('figure.highlight').forEach(function (e) {
+            var t = document.createElement('div');
+            e.wrap(t), t.classList.add('highlight-container'), t.insertAdjacentHTML('beforeend', '<div class="copy-btn"><i class="fa fa-clipboard"></i></div>');
+            var n = e.parentNode.querySelector('.copy-btn');
+            n.addEventListener('click', function (e) {
+                var t = e.currentTarget, n = [].concat(_toConsumableArray(t.parentNode.querySelectorAll('.code .line'))).map(function (e) {
+                        return e.innerText;
+                    }).join('\n'), a = document.createElement('textarea');
+                a.style.top = window.scrollY + 'px', a.style.position = 'absolute', a.style.opacity = '0', a.readOnly = !0, a.value = n, document.body.append(a);
+                var r = document.getSelection(), o = 0 < r.rangeCount && r.getRangeAt(0);
+                a.select(), a.setSelectionRange(0, n.length), a.readOnly = !1;
+                var i = document.execCommand('copy');
+                CONFIG.copycode.show_result && (t.querySelector('i').className = i ? 'fa fa-check' : 'fa fa-times'), a.blur(), t.blur(), o && (r.removeAllRanges(), r.addRange(o)), document.body.removeChild(a);
+            }), n.addEventListener('mouseleave', function (e) {
+                setTimeout(function () {
+                    e.target.querySelector('i').className = 'fa fa-clipboard';
+                }, 300);
+            });
+        });
+    },
+    wrapTableWithBox: function () {
+        document.querySelectorAll('table').forEach(function (e) {
+            var t = document.createElement('div');
+            t.className = 'table-container', e.wrap(t);
+        });
+    },
+    registerVideoIframe: function () {
+        document.querySelectorAll('iframe').forEach(function (t) {
+            if (["www.youtube.com","player.vimeo.com","player.youku.com","player.bilibili.com","www.tudou.com"].some(function (e) {
+                    return t.src.includes(e);
+                }) && !t.parentNode.matches('.video-container')) {
+                var e = document.createElement('div');
+                e.className = 'video-container', t.wrap(e);
+                var n = Number(t.width), a = Number(t.height);
+                n && a && (t.parentNode.style.paddingTop = a / n * 100 + '%');
+            }
+        });
+    },
+    registerScrollPercent: function () {
+        var r = document.querySelector('.back-to-top'), o = document.querySelector('.reading-progress-bar');
+        window.addEventListener('scroll', function () {
+            if (r || o) {
+                var e = document.querySelector('.container').offsetHeight, t = window.innerHeight, n = t < e ? e - t : document.body.scrollHeight - t, a = Math.min(100 * window.scrollY / n, 100);
+                r && (r.classList.toggle('back-to-top-on', 50 < window.scrollY), r.querySelector('span').innerText = Math.round(a) + '%'), o && (o.style.width = a.toFixed(2) + '%');
+            }
+        }), r && r.addEventListener('click', function () {
+            window.anime({
+                targets: document.scrollingElement,
+                duration: 500,
+                easing: 'linear',
+                scrollTop: 0
+            });
+        });
+    },
+    registerTabsTag: function () {
+        document.querySelectorAll('.tabs ul.nav-tabs .tab').forEach(function (e) {
+            e.addEventListener('click', function (e) {
+                e.preventDefault();
+                var t = e.currentTarget;
+                if (!t.classList.contains('active')) {
+                    [].concat(_toConsumableArray(t.parentNode.children)).forEach(function (e) {
+                        e.classList.remove('active');
+                    }), t.classList.add('active');
+                    var n = document.getElementById(t.querySelector('a').getAttribute('href').replace('#', ''));
+                    [].concat(_toConsumableArray(n.parentNode.children)).forEach(function (e) {
+                        e.classList.remove('active');
+                    }), n.classList.add('active'), n.dispatchEvent(new Event('tabs:click', { bubbles: !0 }));
+                }
+            });
+        }), window.dispatchEvent(new Event('tabs:register'));
+    },
+    registerCanIUseTag: function () {
+        window.addEventListener('message', function (e) {
+            var t = e.data;
+            if ('string' == typeof t && t.includes('ciu_embed')) {
+                var n = t.split(':')[1], a = t.split(':')[2];
+                document.querySelector('iframe[data-feature=' + n + ']').style.height = parseInt(a, 10) + 5 + 'px';
+            }
+        }, !1);
+    },
+    registerActiveMenuItem: function () {
+        document.querySelectorAll('.menu-item').forEach(function (e) {
+            var t = e.querySelector('a[href]');
+            if (t) {
+                var n = t.pathname === location.pathname || t.pathname === location.pathname.replace('index.html', ''), a = !CONFIG.root.startsWith(t.pathname) && location.pathname.startsWith(t.pathname);
+                e.classList.toggle('menu-item-active', t.hostname === location.hostname && (n || a));
+            }
+        });
+    },
+    registerLangSelect: function () {
+        var n = document.querySelector('.lang-select');
+        n && (n.value = CONFIG.page.lang, n.addEventListener('change', function () {
+            var e = n.options[n.selectedIndex];
+            document.querySelector('.lang-select-label span').innerText = e.text;
+            var t = e.dataset.href;
+            window.pjax ? window.pjax.loadUrl(t) : window.location.href = t;
+        }));
+    },
+    registerSidebarTOC: function () {
+        var i = document.querySelectorAll('.post-toc li'), c = [].concat(_toConsumableArray(i)).map(function (e) {
+                var t = e.querySelector('a.nav-link');
+                return t.addEventListener('click', function (e) {
+                    e.preventDefault();
+                    var t = document.getElementById(e.currentTarget.getAttribute('href').replace('#', '')).getBoundingClientRect().top + window.scrollY;
+                    window.anime({
+                        targets: document.scrollingElement,
+                        duration: 500,
+                        easing: 'linear',
+                        scrollTop: t + 10
+                    });
+                }), document.getElementById(t.getAttribute('href').replace('#', ''));
+            }), l = document.querySelector('.post-toc-wrap');
+        !function r(o) {
+            o = Math.floor(o + 10000);
+            var t = new IntersectionObserver(function (e, t) {
+                var n = document.documentElement.scrollHeight + 100;
+                if (o < n)
+                    return t.disconnect(), void r(n);
+                var a = function (e) {
+                    var t = 0, n = e[t];
+                    if (0 < n.boundingClientRect.top)
+                        return 0 === (t = c.indexOf(n.target)) ? 0 : t - 1;
+                    for (; t < e.length; t++) {
+                        if (!(e[t].boundingClientRect.top <= 0))
+                            return c.indexOf(n.target);
+                        n = e[t];
+                    }
+                    return c.indexOf(n.target);
+                }(e);
+                !function (e) {
+                    if (!e.classList.contains('active-current')) {
+                        document.querySelectorAll('.post-toc .active').forEach(function (e) {
+                            e.classList.remove('active', 'active-current');
+                        }), e.classList.add('active', 'active-current');
+                        for (var t = e.parentNode; !t.matches('.post-toc');)
+                            t.matches('li') && t.classList.add('active'), t = t.parentNode;
+                        window.anime({
+                            targets: l,
+                            duration: 200,
+                            easing: 'linear',
+                            scrollTop: l.scrollTop - l.offsetHeight / 2 + e.getBoundingClientRect().top - l.getBoundingClientRect().top
+                        });
+                    }
+                }(i[a]);
+            }, {
+                rootMargin: o + 'px 0px -100% 0px',
+                threshold: 0
+            });
+            c.forEach(function (e) {
+                e && t.observe(e);
+            });
+        }(document.documentElement.scrollHeight);
+    },
+    hasMobileUA: function () {
+        var e = navigator.userAgent;
+        return /iPad|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP|IEMobile|Symbian/g.test(e);
+    },
+    isTablet: function () {
+        return window.screen.width < 992 && 767 < window.screen.width && this.hasMobileUA();
+    },
+    isMobile: function () {
+        return window.screen.width < 767 && this.hasMobileUA();
+    },
+    isDesktop: function () {
+        return !this.isTablet() && !this.isMobile();
+    },
+    supportsPDFs: function () {
+        var e = navigator.userAgent, t = e.includes('irefox') && 18 < parseInt(e.split('rv:')[1].split('.')[0], 10), n = void 0 !== navigator.mimeTypes['application/pdf'], a = /iphone|ipad|ipod/i.test(e.toLowerCase());
+        return t || n && !a;
+    },
+    initSidebarDimension: function () {
+        var e = document.querySelector('.sidebar-nav'), t = 'none' !== e.style.display ? e.offsetHeight : 0, n = CONFIG.sidebar.offset || 12, a = CONFIG.back2top.enable && CONFIG.back2top.sidebar ? document.querySelector('.back-to-top').offsetHeight : 0, r = 2 * CONFIG.sidebar.padding + t + a;
+        'Pisces' !== CONFIG.scheme && 'Gemini' !== CONFIG.scheme || (r += 2 * n - 22);
+        var o = document.body.offsetHeight - r + 'px';
+        document.querySelector('.site-overview-wrap').style.maxHeight = o, document.querySelector('.post-toc-wrap').style.maxHeight = o;
+    },
+    updateSidebarPosition: function () {
+        var e = document.querySelector('.sidebar-nav'), t = document.querySelector('.post-toc');
+        if (t ? (e.style.display = '', e.classList.add('motion-element'), document.querySelector('.sidebar-nav-toc').click()) : (e.style.display = 'none', e.classList.remove('motion-element'), document.querySelector('.sidebar-nav-overview').click()), NexT.utils.initSidebarDimension(), this.isDesktop() && 'Pisces' !== CONFIG.scheme && 'Gemini' !== CONFIG.scheme) {
+            var n = CONFIG.page.sidebar;
+            'boolean' != typeof n && (n = 'always' === CONFIG.sidebar.display || 'post' === CONFIG.sidebar.display && t), n && window.dispatchEvent(new Event('sidebar:show'));
+        }
+    },
+    getScript: function (e, n, t) {
+        if (t)
+            n();
+        else {
+            var a = document.createElement('script');
+            a.onload = a.onreadystatechange = function (e, t) {
+                !t && a.readyState && !/loaded|complete/.test(a.readyState) || (a.onload = a.onreadystatechange = null, a = void 0, !t && n && setTimeout(n, 0));
+            }, a.src = e, document.head.appendChild(a);
+        }
+    },
+    loadComments: function (e, n) {
+        if (CONFIG.comments.lazyload && e) {
+            var t = new IntersectionObserver(function (e, t) {
+                e[0].isIntersecting && (n(), t.disconnect());
+            });
+            return t.observe(e), t;
+        }
+        n();
+    }
+};

部分文件因为文件数量过多而无法显示