2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								layout: default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< small > {{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: "" | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: < span  id = "{{ page.url }}"  class = "visitors" > Loading...< / span > < / small >  
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< h1 > {{ page.title }}< / h1 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< p  class = "view" > by < a  href = "//github.com/{{ page.author | default: " Mabbs "  } } " > {{ page.author | default: site.author }}< / a > < / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  id = "outdate"  style = "display:none;" >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  < hr  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  这是一篇创建于 < span  id = "outime" > < / span >  天前的文章,其中的信息可能已经有所发展或是发生改变。
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < br  / > < br  / > 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  BirthDay = new Date("{{ page.date | date: "%m/%d/%Y" }} 00:00:00");
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  today = new Date();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  timeold = (today.getTime() - BirthDay.getTime());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  secondsold = Math.floor(timeold / 1000);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  e_daysold = timeold / (24 * 60 * 60 * 1000);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  daysold = Math.floor(e_daysold);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (daysold > 90) {
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    document.getElementById("outdate").style.display = "block";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    document.getElementById("outime").innerHTML = daysold;
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / script >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< hr  / >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{% if page.layout != "encrypt" %}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<!-- [if !IE]>  -->  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< b > AI摘要< / b >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:25:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< p  id = "ai-output" > 正在生成中……< / p >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< script >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  async function sha(str) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const encoder = new TextEncoder();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const data = encoder.encode(str);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const hashBuffer = await crypto.subtle.digest("SHA-256", data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const hashHex = hashArray
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      .map((b) => b.toString(16).padStart(2, "0"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      .join(""); // convert bytes to hex string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return hashHex;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:46:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  async function ai_gen(){
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var postContent = "文章标题:" + {{ page.title | jsonify }} + ";文章内容:" + {{ page.content | strip_html | strip_newlines | jsonify }};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var postContentSign = await sha(postContent);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var outputContainer = document.getElementById("ai-output");
							 
						 
					
						
							
								
									
										
										
										
											2024-10-04 07:13:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $.get(BlogAPI + "/is_uploaded?id={{ page.url }}& sign=" + postContentSign, function (data) {
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:46:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if (data == "yes") {
							 
						 
					
						
							
								
									
										
										
										
											2024-10-04 07:13:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $.get(BlogAPI + "/get_summary?id={{ page.url }}& sign=" + postContentSign, function (data2) {
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:46:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          outputContainer.textContent = data2;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } else {
							 
						 
					
						
							
								
									
										
										
										
											2024-10-04 07:13:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $.post(BlogAPI + "/upload_blog?id={{ page.url }}", postContent, function (data) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $.get(BlogAPI + "/get_summary?id={{ page.url }}& sign=" + postContentSign);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          const evSource = new EventSource(BlogAPI + "/summary?id={{ page.url }}");
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:46:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          outputContainer.textContent = "";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          evSource.onmessage = (event) => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if (event.data == "[DONE]") {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              evSource.close();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              return;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              const data = JSON.parse(event.data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              outputContainer.textContent += data.response;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          }
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:46:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ai_gen();
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< / script >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< hr  / >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<!--  <![endif] -->  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{% endif %}
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-29 18:44:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{% include toc.html html=content sanitize=true h_max=3 %}
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{{content}}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{% if page.tags %}
							 
						 
					
						
							
								
									
										
										
										
											2025-03-31 03:17:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< small > tags: {% for tag in page.tags %}< a  href = "/search.html?keyword={{ tag | url_encode }}" > < em > {{ tag }}< / em > < / a > {% unless forloop.last %} - {% endunless %}{% endfor %}< / small >  
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{% endif %}
							 
						 
					
						
							
								
									
										
										
										
											2024-09-30 13:59:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< br  / >  
						 
					
						
							
								
									
										
										
										
											2024-09-30 14:59:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< br  / >  
						 
					
						
							
								
									
										
										
										
											2024-10-04 06:19:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< p  id = "suggest-container" > < / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var blogurl = "{{ page.url }}";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var suggest = $("#suggest-container")[0];
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								suggest.innerHTML = "Loading...";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$.get(BlogAPI + "/suggest?id=" + blogurl + "& update=" + lastUpdated.valueOf(), function (data) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if (data.length) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        getSearchJSON(function (search) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            suggest.innerHTML = '< b > 推荐文章< / b > < hr  style = "margin: 0 0 5px" / > ';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            const searchMap = new Map(search.map(item => [item.url, item]));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            const merged = data.map(suggestObj => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                const searchObj = searchMap.get(suggestObj.id);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return searchObj ? { ...searchObj } : null;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            merged.forEach(element => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if (element) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    suggest.innerHTML += "< a  href = " + element.url + " > " + element.title + "< / a >  - " + element.date + "< br  / > ";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        });
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        suggest.innerHTML = "暂无推荐文章……";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								});
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / script >  
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< div  class = "pagination" >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  {% if page.previous.url %}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < span  class = "prev" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < a  href = "{{ site.baseurl }}{{ page.previous.url }}" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      上一篇:{{ page.previous.title }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / a > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  {% endif %}
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  < br  / > 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  {% if page.next.url %}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < span  class = "next" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < a  href = "{{ site.baseurl }}{{ page.next.url }}" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      下一篇:{{ page.next.title }}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / a > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  < / span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  {% endif %}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / div >  
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<!-- [if !IE]>  -->  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< link  rel = "stylesheet"  href = "/css/gitalk.css" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script  src = "/js/gitalk.min.js" > < / script >  
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  id = "gitalk-container" > < / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (window.location.host != "mabbs.github.io") {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var gitalk = new Gitalk({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      clientID: '098934a2556425f19d6e',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      clientSecret: '0bd44eed8425e5437ce43c4ba9b2791fbc04581d',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      repo: 'mabbs.github.io',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      owner: 'Mabbs',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      admin: ['Mabbs'],
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      id: '{{ page.id }}',      // Ensure uniqueness and length less than 50
							 
						 
					
						
							
								
									
										
										
										
											2024-11-20 06:32:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      distractionFreeMode: false,  // Facebook-like distraction free mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var gitalk = new Gitalk({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      clientID: '36557aec4c3cb04f7ac6',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      repo: 'mabbs.github.io',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      owner: 'Mabbs',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      admin: ['Mabbs'],
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      id: '{{ page.id }}',      // Ensure uniqueness and length less than 50
							 
						 
					
						
							
								
									
										
										
										
											2024-11-20 06:32:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      distractionFreeMode: false,  // Facebook-like distraction free mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  gitalk.render('gitalk-container')
							 
						 
					
						
							
								
									
										
										
										
											2022-01-04 20:42:55 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / script >  
						 
					
						
							
								
									
										
										
										
											2024-07-02 08:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<!--  <![endif] -->