<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>VVUSU | VVUSU</title><meta name="author" content="vvusu"><meta name="copyright" content="vvusu"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="💰省钱小能手 | 技术资深学者 | 👨💻科技宅"> <meta property="og:type" content="website"> <meta property="og:title" content="VVUSU"> <meta property="og:url" content="http://blog.vvusu.com/README.html"> <meta property="og:site_name" content="VVUSU"> <meta property="og:description" content="💰省钱小能手 | 技术资深学者 | 👨💻科技宅"> <meta property="og:locale" content="en_US"> <meta property="og:image" content="http://blog.vvusu.com/img/default_cover3.webp"> <meta property="article:published_time" content="2023-09-27T08:53:39.777Z"> <meta property="article:modified_time" content="2023-09-14T10:02:31.000Z"> <meta property="article:author" content="vvusu"> <meta property="article:tag" content="科技,技术,学习,工作"> <meta name="twitter:card" content="summary"> <meta name="twitter:image" content="http://blog.vvusu.com/img/default_cover3.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://blog.vvusu.com/README.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//static.cloudflareinsights.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><meta name="google-site-verification" content="google5d6de2274e3c7e7c.html"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script async="async" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script>(adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: 'ca-pub-7021409880699000', enable_page_level_ads: 'true' });</script><script defer="defer" data-pjax="data-pjax" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{"token": "bde1138de50c4f508070984fedad460e"}"></script><script>const GLOBAL_CONFIG = { root: '/', algolia: undefined, localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found"}}, translate: {"defaultEncoding":1,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"}, noticeOutdate: undefined, highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false}, copy: { success: 'Copy successfully', error: 'Copy error', noSupport: 'The browser does not support' }, relativeDate: { homepage: true, post: true }, runtime: 'days', dateSuffix: { just: 'Just', min: 'minutes ago', hour: 'hours ago', day: 'days ago', month: 'months ago' }, copyright: {"limitCount":50,"languages":{"author":"Author: vvusu","link":"Link: ","source":"Source: VVUSU","info":"Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source."}}, lightbox: 'fancybox', Snackbar: undefined, source: { justifiedGallery: { js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js', css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css' } }, isPhotoFigcaption: false, islazyload: false, isAnchor: false, percent: { toc: true, rightside: true, }, autoDarkmode: false }</script><script id="config-diff">var GLOBAL_CONFIG_SITE = { title: 'VVUSU', isPost: false, isHome: false, isHighlightShrink: false, isToc: false, postUpdate: '2023-09-14 18:02:31' }</script><noscript><style type="text/css"> #nav { opacity: 1 } .justified-gallery img { opacity: 1 } #recent-posts time, #post-meta time { display: inline !important } </style></noscript><script>(win=>{ win.saveToLocal = { set: function setWithExpiry(key, value, ttl) { if (ttl === 0) return const now = new Date() const expiryDay = ttl * 86400000 const item = { value: value, expiry: now.getTime() + expiryDay, } localStorage.setItem(key, JSON.stringify(item)) }, get: function getWithExpiry(key) { const itemStr = localStorage.getItem(key) if (!itemStr) { return undefined } const item = JSON.parse(itemStr) const now = new Date() if (now.getTime() > item.expiry) { localStorage.removeItem(key) return undefined } return item.value } } win.getScript = url => new Promise((resolve, reject) => { const script = document.createElement('script') script.src = url script.async = true script.onerror = reject script.onload = script.onreadystatechange = function() { const loadState = this.readyState if (loadState && loadState !== 'loaded' && loadState !== 'complete') return script.onload = script.onreadystatechange = null resolve() } document.head.appendChild(script) }) win.getCSS = (url,id = false) => new Promise((resolve, reject) => { const link = document.createElement('link') link.rel = 'stylesheet' link.href = url if (id) link.id = id link.onerror = reject link.onload = link.onreadystatechange = function() { const loadState = this.readyState if (loadState && loadState !== 'loaded' && loadState !== 'complete') return link.onload = link.onreadystatechange = null resolve() } document.head.appendChild(link) }) win.activateDarkMode = function () { document.documentElement.setAttribute('data-theme', 'dark') if (document.querySelector('meta[name="theme-color"]') !== null) { document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d') } } win.activateLightMode = function () { document.documentElement.setAttribute('data-theme', 'light') if (document.querySelector('meta[name="theme-color"]') !== null) { document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff') } } const t = saveToLocal.get('theme') if (t === 'dark') activateDarkMode() else if (t === 'light') activateLightMode() const asideStatus = saveToLocal.get('aside-status') if (asideStatus !== undefined) { if (asideStatus === 'hide') { document.documentElement.classList.add('hide-aside') } else { document.documentElement.classList.remove('hide-aside') } } const detectApple = () => { if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){ document.documentElement.classList.add('apple') } } detectApple() })(window)</script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="VVUSU" type="application/atom+xml"> </head><body><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/avatar.gif" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">53</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">13</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">0</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movie/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="not-home-page" id="page-header" style="background-image: url('/img/background.png')"><nav id="nav"><span id="blog-info"><a href="/" title="VVUSU"><span class="site-name">VVUSU</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fas fa-search fa-fw"></i><span> Search</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movie/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="page-site-info"><h1 id="site-title">VVUSU</h1></div></header><main class="layout" id="content-inner"><div id="page"><div id="article-container"></div><hr class="custom-hr"/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> Comment</span></div></div><div class="comment-wrap"><div><div id="disqus_thread"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/avatar.gif" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">vvusu</div><div class="author-info__description">💰省钱小能手 | 技术资深学者 | 👨💻科技宅</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">53</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">13</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">0</div></a></div><a id="card-info-btn" target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/vvusu"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/vvusu" rel="external nofollow noreferrer" target="_blank" title="Github"><i class="fab fa-github" style="color: #hdhfbb;"></i></a><a class="social-icon" href="mailto:wedxzl@gmail.com" rel="external nofollow noreferrer" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #000000;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>Announcement</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Post</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/posts/d7d61a0c.html" title="No title"><img src="/img/default_cover3.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="No title"/></a><div class="content"><a class="title" href="/posts/d7d61a0c.html" title="No title">No title</a><time datetime="2023-09-26T02:42:01.279Z" title="Created 2023-09-26 10:42:01">2023-09-26</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/a1dce8bc.html" title="CloudFlare Zero Trust 内网穿透"><img src="/img/default_cover2.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="CloudFlare Zero Trust 内网穿透"/></a><div class="content"><a class="title" href="/posts/a1dce8bc.html" title="CloudFlare Zero Trust 内网穿透">CloudFlare Zero Trust 内网穿透</a><time datetime="2023-09-25T16:00:00.000Z" title="Created 2023-09-26 00:00:00">2023-09-26</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/919647bf.html" title="CloudFlare Zero Trust"><img src="https://cdn.jsdelivr.net/gh/vvusu/oss-img/cover/202309120023038.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="CloudFlare Zero Trust"/></a><div class="content"><a class="title" href="/posts/919647bf.html" title="CloudFlare Zero Trust">CloudFlare Zero Trust</a><time datetime="2023-09-25T16:00:00.000Z" title="Created 2023-09-26 00:00:00">2023-09-26</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/f7da4dfc.html" title="CloudFlare DDNS"><img src="/img/default_cover2.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="CloudFlare DDNS"/></a><div class="content"><a class="title" href="/posts/f7da4dfc.html" title="CloudFlare DDNS">CloudFlare DDNS</a><time datetime="2023-09-19T16:00:00.000Z" title="Created 2023-09-20 00:00:00">2023-09-20</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/8630e38.html" title="CloudFlare WARP 内网穿透"><img src="/img/default_cover2.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="CloudFlare WARP 内网穿透"/></a><div class="content"><a class="title" href="/posts/8630e38.html" title="CloudFlare WARP 内网穿透">CloudFlare WARP 内网穿透</a><time datetime="2023-09-19T16:00:00.000Z" title="Created 2023-09-20 00:00:00">2023-09-20</time></div></div></div></div><div class="card-widget" id="card-newest-comments"><div class="item-headline"><i class="fas fa-comment-dots"></i><span>Newest Comments</span></div><div class="aside-list"><span>loading...</span></div></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>Tags</span></div><div class="card-tag-cloud"><a href="/tags/Python/" style="font-size: 1.15em; color: #999b9e">Python</a> <a href="/tags/%E4%BB%A3%E7%90%86/" style="font-size: 1.2em; color: #999da3">代理</a> <a href="/tags/%E6%80%9D%E8%80%83/" style="font-size: 1.1em; color: #999">思考</a> <a href="/tags/%E5%BC%80%E5%8F%91/" style="font-size: 1.45em; color: #99a7ba">开发</a> <a href="/tags/Linux/" style="font-size: 1.3em; color: #99a1ac">Linux</a> <a href="/tags/Mac/" style="font-size: 1.25em; color: #999fa7">Mac</a> <a href="/tags/%E6%96%B0%E9%97%BB/" style="font-size: 1.1em; color: #999">新闻</a> <a href="/tags/%E5%B7%A5%E5%85%B7/" style="font-size: 1.5em; color: #99a9bf">工具</a> <a href="/tags/%E7%BD%91%E7%9B%98/" style="font-size: 1.15em; color: #999b9e">网盘</a> <a href="/tags/iOS/" style="font-size: 1.2em; color: #999da3">iOS</a> <a href="/tags/%E7%BD%91%E7%BB%9C/" style="font-size: 1.2em; color: #999da3">网络</a> <a href="/tags/Proxmox/" style="font-size: 1.35em; color: #99a3b1">Proxmox</a> <a href="/tags/%E8%BD%AF%E8%B7%AF%E7%94%B1/" style="font-size: 1.4em; color: #99a5b6">软路由</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>Archives</span><a class="card-more-btn" href="/archives/" title="More"> <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/09/"><span class="card-archive-list-date">September 2023</span><span class="card-archive-list-count">5</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/07/"><span class="card-archive-list-date">July 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/06/"><span class="card-archive-list-date">June 2023</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/05/"><span class="card-archive-list-date">May 2023</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/03/"><span class="card-archive-list-date">March 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/02/"><span class="card-archive-list-date">February 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/12/"><span class="card-archive-list-date">December 2022</span><span class="card-archive-list-count">5</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/10/"><span class="card-archive-list-date">October 2022</span><span class="card-archive-list-count">5</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">53</div></div><div class="webinfo-item"><div class="item-name">Run time :</div><div class="item-count" id="runtimeshow" data-publishDate="2015-04-30T16:00:00.000Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">PV :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-10-25T03:46:11.191Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('/img/background.png')"><div id="footer-wrap"><div class="copyright">©2015 - 2023 By vvusu</div><div class="framework-info"><span>Framework </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>Theme </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text">Hi, welcome to my <a target="_blank" rel="noopener external nofollow noreferrer" href="https://butterfly.js.org/">blog</a>!</div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="Switch Between Traditional Chinese And Simplified Chinese">簡</button><button id="darkmode" type="button" title="Switch Between Light And Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="fas fa-cog fa-spin"></i></button><a id="to_comment" href="#post-comment" title="Scroll To Comments"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="Back To Top"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"><script>(() => { const $mermaid = document.querySelectorAll('#article-container .mermaid-wrap') if ($mermaid.length === 0) return const runMermaid = () => { window.loadMermaid = true const theme = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'default' Array.from($mermaid).forEach((item, index) => { const mermaidSrc = item.firstElementChild const mermaidThemeConfig = '%%{init:{ \'theme\':\'' + theme + '\'}}%%\n' const mermaidID = 'mermaid-' + index const mermaidDefinition = mermaidThemeConfig + mermaidSrc.textContent const renderFn = mermaid.render(mermaidID, mermaidDefinition) const renderV10 = () => { renderFn.then(({svg}) => { mermaidSrc.insertAdjacentHTML('afterend', svg) }) } const renderV9 = svg => { mermaidSrc.insertAdjacentHTML('afterend', svg) } typeof renderFn === 'string' ? renderV9(renderFn) : renderV10() }) } const loadMermaid = () => { window.loadMermaid ? runMermaid() : getScript('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(runMermaid) } btf.addModeChange('mermaid', runMermaid) window.pjax ? loadMermaid() : document.addEventListener('DOMContentLoaded', loadMermaid) })()</script><script>function loadDisqus () { const disqus_config = function () { this.page.url = 'http://blog.vvusu.com/README.html' this.page.identifier = '/README.html' this.page.title = '' } const disqusReset = () => { DISQUS.reset({ reload: true, config: disqus_config }) } btf.addModeChange('disqus', disqusReset) if (window.DISQUS) disqusReset() else { (function() { var d = document, s = d.createElement('script'); s.src = 'https://blog-vvusu-com.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); } } if ('Disqus' === 'Disqus' || !true) { if (true) btf.loadComment(document.getElementById('disqus_thread'), loadDisqus) else loadDisqus() } else { function loadOtherComment () { loadDisqus() } } </script></div><script>window.addEventListener('load', () => { const changeContent = (content) => { if (content === '') return content content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[image]') // replace image link content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[link]') // replace url content = content.replace(/<code>.*?<\/code>/gi, '[code]') // replace code content = content.replace(/<[^>]+>/g,"") // remove html tag if (content.length > 150) { content = content.substring(0,150) + '...' } return content } const getComment = () => { fetch('https://disqus.com/api/3.0/forums/listPosts.json?forum=blog-vvusu-com&related=thread&limit=6&api_key=') .then(response => response.json()) .then(data => { const disqusArray = data.response.map(item => { return { 'avatar': item.author.avatar.cache, 'content': changeContent(item.message), 'nick': item.author.name, 'url': item.url, 'date': item.createdAt } }) saveToLocal.set('disqus-newest-comments', JSON.stringify(disqusArray), 10/(60*24)) generateHtml(disqusArray) }).catch(e => { const $dom = document.querySelector('#card-newest-comments .aside-list') $dom.textContent= "Unable to get the data, please make sure the settings are correct." }) } const generateHtml = array => { let result = '' if (array.length) { for (let i = 0; i < array.length; i++) { result += '<div class=\'aside-list-item\'>' if (true) { const name = 'src' result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}'></a>` } result += `<div class='content'> <a class='comment' href='${array[i].url}' title='${array[i].content}'>${array[i].content}</a> <div class='name'><span>${array[i].nick}</span><time> / ${btf.diffDate(array[i].date, true)}</time></div> </div></div>` } } else { result += 'No Comment' } let $dom = document.querySelector('#card-newest-comments .aside-list') $dom.innerHTML= result window.lazyLoadInstance && window.lazyLoadInstance.update() window.pjax && window.pjax.refresh($dom) } const newestCommentInit = () => { if (document.querySelector('#card-newest-comments .aside-list')) { const data = saveToLocal.get('disqus-newest-comments') if (data) { generateHtml(JSON.parse(data)) } else { getComment() } } } newestCommentInit() document.addEventListener('pjax:complete', newestCommentInit) })</script><script defer="defer" id="fluttering_ribbon" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-fluttering-ribbon.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">Search</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> Loading the Database</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="Search for Posts" type="text"/></div></div><hr/><div class="no-result" id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js"></script></div></div></body></html>