<! DOCTYPE html> <html lang= "zh-CN" 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, user-scalable=no" ><title> Dongkcs - study hard and make progress every day </title><meta name= "author" content= "dongkcs" ><meta name= "copyright" content= "dongkcs" ><meta name= "format-detection" content= "telephone=no" ><meta name= "theme-color" content= "#f7f9fe" ><meta name= "mobile-web-app-capable" content= "yes" ><meta name= "apple-touch-fullscreen" content= "yes" ><meta name= "apple-mobile-web-app-title" content= "dongkcs" ><meta name= "application-name" content= "dongkcs" ><meta name= "apple-mobile-web-app-capable" content= "yes" ><meta name= "apple-mobile-web-app-status-bar-style" content= "#f7f9fe" ><meta property= "og:type" content= "website" ><meta property= "og:title" content= "dongkcs" ><meta property= "og:url" content= " https://dongkcs.gitee.io/index.html " ><meta property= "og:site_name" content= "dongkcs" ><meta property= "og:description" ><meta property= "og:locale" content= "zh-CN" ><meta property= "og:image" content= " https://bu.dusays.com/2023/06/19/648fd5aaad03b.png " ><meta property= "article:author" content= "dongkcs" ><meta property= "article:tag" ><meta name= "twitter:card" content= "summary" ><meta name= "twitter:image" content= " https://bu.dusays.com/2023/06/19/648fd5aaad03b.png " ><meta name= "description" ><link rel= "shortcut icon" href= " https://bu.dusays.com/2023/06/19/648fd5aaad03b.png " ><link rel= "canonical" href= " https://dongkcs.gitee.io/ " ><link rel= "preconnect" href= "//cdn.cbd.int" /><meta name= "google-site-verification" content= "xxx" /><meta name= "baidu-site-verification" content= "code-xxx" /><meta name= "msvalidate.01" content= "xxx" /><link rel= "stylesheet" href= "/css/index.css" ><link rel= "stylesheet" href= " https://cdn.cbd.int/node-snackbar @0.1.16/dist/snackbar.min.css" media= "print" onload= "this.media='all'" ><link rel= "stylesheet" href= " https://cdn.cbd.int/ @fancyapps/ ui@5.0.20 /dist/fancybox/fancybox.css" media= "print" onload= "this.media='all'" ><link rel= "stylesheet" href= " https://npm.elemecdn.com/anzhiyu-theme-static @1.0.0/swiper/swiper.min.css" media= "print" onload= "this.media='all'" ><script> const GLOBAL_CONFIG = {
linkPageTop : { " enable " : true , " title " : " Unlimited progress with hundreds of bloggers " , " addFriendPlaceholder " : " Nickname (please do not include words such as blog): \n Website address (blog address is required, please do not submit personal homepage): \n Head photo url (please provide as clear a picture as possible, and I will upload it to my own map bed): \n Description: \n Site screenshot (optional): \n " },
peoplecanvas : undefined ,
postHeadAiDescription : { " enable " : true , " gptName " : " AnZhiYu " , " mode " : " tianli " , " switchBtn " : true , " btnLink " : " https://afdian.net/item/f18c2e08db4411eda2f25254001e7c00 " , " randomNum " : three , " basicWordCount " : one thousand , " key " : " 0ADFOCsOziVz40dXtUZ1 " , " Referer " : " https://dongkcs.gitee.io/ " },
diytitle : { " enable " : true , " leaveTitle " : " w(゚ Д Don't go! Look again! " , " backTitle " : " Welcome to come! " },
LA51 : { " enable " : true , " ck " : " JjsxPsmXo2seFVE1 " , " LingQueMonitorID " : " K7fskVRf1akE5dyW " },
greetingBox : { " enable " : true , " default " : " Good evening 👋 " , " list " :[{ " greeting " : " good night 😴 " , " startTime " : zero , " endTime " : five },{ " greeting " : " Good morning Duck 👋, Wish you a good day! " , " startTime " : six , " endTime " : nine },{ " greeting " : " Good morning 👋, In good condition, encourage " , " startTime " : ten , " endTime " : ten },{ " greeting " : " It's more than 11 o'clock. I will have dinner after I insist " , " startTime " : eleven , " endTime " : eleven },{ " greeting " : " good afternoon 👋, baby " , " startTime " : twelve , " endTime " : fourteen },{ " greeting " : " 🌈 A full day of hard work! " , " startTime " : fourteen , " endTime " : eighteen },{ " greeting " : " At 19:00, reward a big meal 🍔。 " , " startTime " : nineteen , " endTime " : nineteen },{ " greeting " : " Good evening 👋, Relax at your own time 😌~ " , " startTime " : twenty , " endTime " : twenty-four }]},
twikooEnvId : '' ,
commentBarrageConfig : undefined ,
root : ' / ' ,
preloader : { " source " : three },
friends_vue_info : { " apiurl " : " https://hexo-circle-of-friends-red-five.vercel.app/ " },
navMusic : true ,
mainTone : { " mode " : " api " , " api " : " https://img2color-go.vercel.app/api?img= " , " cover_change " : true },
authorStatus : { " skills " :[ " 🤖 Digital technology enthusiasts " , " 🔍 Sharing and helpful " , " 🏠 Smart home expert " , " 🔨 Design and development " , " 🤝 Specialized in interaction and design " , " 🏃 Down-to-earth action " , " 🧱 Team Team Engine " , " 💢 Strong men don't talk hard " ]},
algolia : undefined ,
localSearch : { " path " : " /search.xml " , " preload " : true , " languages " :{ " hits_empty " : " Cannot find your query content: ${query} " }},
translate : { " defaultEncoding " : two , " translateDelay " : zero , " msgToTraditionalChinese " : " Complex " , " msgToSimplifiedChinese " : " simple " , " rightMenuMsgToTraditionalChinese " : " Convert to Traditional " , " rightMenuMsgToSimplifiedChinese " : " Convert to Simplified " },
noticeOutdate : { " limitDay " : three hundred and sixty-five , " position " : " top " , " messagePrev " : " It has been " , " messageNext " : " days since the last update, the content of the article may be outdated. " },
highlight : { " plugin " : " highlighjs " , " highlightCopy " : true , " highlightLang " : true , " highlightHeightLimit " : three hundred and thirty },
copy : {
success : ' Copy succeeded ' ,
error : ' Copy error ' ,
noSupport : ' Browser does not support '
},
relativeDate : {
homepage : false ,
simplehomepage : true ,
post : false
},
runtime : ' day ' ,
date_suffix : {
just : ' just ' ,
min : ' Minutes ago ' ,
hour : ' Hours ago ' ,
day : ' Days ago ' ,
month : ' Months ago '
},
copyright : { " copy " : true , " copyrightEbable " : false , " limitCount " : fifty , " languages " :{ " author " : " Author: dongkcs " , " link " : " Link: " , " source " : " Source: dongkcs " , " info " : " The copyright belongs to the author. For commercial reproduction, please contact the author for authorization, and for non-commercial reproduction, please indicate the source. " , " copySuccess " : " Copying succeeded. Please mark the address of this article for copying and reprinting " }},
lightbox : ' fancybox ' ,
Snackbar : { " chs_to_cht " : " You have switched to Traditional Chinese " , " cht_to_chs " : " You have switched to Simplified " , " day_to_night " : " You have switched to dark mode " , " night_to_day " : " You have switched to light mode " , " bgLight " : " #425AEF " , " bgDark " : " #1f1f1f " , " position " : " top-center " },
source : {
justifiedGallery : {
js : ' https://cdn.cbd.int/flickr-justified-gallery @2.1.2/dist/fjGallery.min.js ' ,
css : ' https://cdn.cbd.int/flickr-justified-gallery @2.1.2/dist/fjGallery.css '
}
},
isPhotoFigcaption : false ,
islazyload : true ,
isAnchor : false ,
shortcutKey : { " enable " : true , " delay " : one hundred , " shiftDelay " : two hundred },
autoDarkmode : true
} </script><script id= "config-diff" > var GLOBAL_CONFIG_SITE = {
configTitle : ' dongkcs ' ,
title : ' dongkcs ' ,
postAI : '' ,
pageFillDescription : '' ,
isPost : false ,
isHome : true ,
isHighlightShrink : false ,
isToc : false ,
postUpdate : ' 2023-10-04 15:50:00 ' ,
postMainColor : '' ,
} </script><noscript><style type= "text/css" >
#nav {
opacity : one
}
.justified-gallery img {
opacity : one
}
#recent-posts time ,
#post-meta time {
display : inline ! important
}
</style></noscript><script> ( win => {
win . saveToLocal = {
set : ( key , value , ttl ) => {
if ( ttl === zero ) return
const now = Date . now ()
const expiry = now + ttl * eighty-six million and four hundred thousand
const item = {
value ,
expiry
}
localStorage . setItem ( key , JSON . stringify ( item ))
},
get : key => {
const itemStr = localStorage . getItem ( key )
if ( ! itemStr ) {
return undefined
}
const item = JSON . parse ( itemStr )
const now = Date . now ()
if ( now > item . expiry ) {
localStorage . removeItem ( key )
return undefined
}
return item . value
}
}
win . getScript = ( url , attr = {}) => 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 ()
}
Object . keys ( attr ). forEach ( key => {
script . setAttribute ( key , attr [ key ])
})
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 = () => {
document . documentElement . setAttribute ( ' data-theme ' , ' dark ' )
if ( document . querySelector ( ' meta[name="theme-color"] ' ) !== null ) {
document . querySelector ( ' meta[name="theme-color"] ' ). setAttribute ( ' content ' , ' #18171d ' )
}
}
win . activateLightMode = () => {
document . documentElement . setAttribute ( ' data-theme ' , ' light ' )
if ( document . querySelector ( ' meta[name="theme-color"] ' ) !== null ) {
document . querySelector ( ' meta[name="theme-color"] ' ). setAttribute ( ' content ' , ' #f7f9fe ' )
}
}
const t = saveToLocal . get ( ' theme ' )
const isDarkMode = window . matchMedia ( ' (prefers-color-scheme: dark) ' ). matches
const isLightMode = window . matchMedia ( ' (prefers-color-scheme: light) ' ). matches
const isNotSpecified = window . matchMedia ( ' (prefers-color-scheme: no-preference) ' ). matches
const hasNoSupport = ! isDarkMode && ! isLightMode && ! isNotSpecified
if ( t === undefined ) {
if ( isLightMode ) activateLightMode ()
else if ( isDarkMode ) activateDarkMode ()
else if ( isNotSpecified || hasNoSupport ) {
const now = new Date ()
const hour = now . getHours ()
const isNight = hour <= six || hour >= eighteen
isNight ? activateDarkMode () : activateLightMode ()
}
window . matchMedia ( ' (prefers-color-scheme: dark) ' ). addListener ( e => {
if ( saveToLocal . get ( ' theme ' ) === undefined ) {
e . matches ? activateDarkMode () : activateLightMode ()
}
})
} else if ( t === ' light ' ) activateLightMode ()
else activateDarkMode ()
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> <!-- hexo injector head_end start --> <link rel= "stylesheet" href= " https://cdn.cbd.int/hexo-butterfly-clock-anzhiyu/lib/clock.min.css " /> <!-- hexo injector head_end end --> <meta name= "generator" content= "Hexo 6.3.0" ></head><body data-type= "anzhiyu" ><div id= "web_bg" ></div><div id= "an_music_bg" ></div><div id= "loading-box" onclick= "document.getElementById("loading-box").classList.add("loaded")" ><div class= "loading-bg" ><img class= "loading-img nolazyload" alt= "Load avatar" src= " https://npm.elemecdn.com/anzhiyu-blog-static @1.0.4/img/avatar.jpg" /><div class= "loading-image-dot" ></div></div></div><script> const preloader = {
endLoading : () => {
document . getElementById ( ' loading-box ' ). classList . add ( " loaded " );
},
initLoading : () => {
document . getElementById ( ' loading-box ' ). classList . remove ( " loaded " )
}
}
window . addEventListener ( ' load ' ,() => { preloader . endLoading () })
setTimeout ( function (){ preloader . endLoading ();}, ten thousand )
if ( true ) {
document . addEventListener ( ' pjax:send ' , () => { preloader . initLoading () })
document . addEventListener ( ' pjax:complete ' , () => { preloader . endLoading () })
} </script><link rel= "stylesheet" href= " https://cdn.cbd.int/anzhiyu-theme-static @1.1.10/progress_bar/progress_bar.css" /><script async= "async" src= " https://cdn.cbd.int/pace-js @1.2.4/pace.min.js" data-pace-options= "{ "restartOnRequestAfter":false,"eventLag":false}" ></script><div class= "page" id= "body-wrap" ><header class= "not-top-img" id= "page-header" ><nav id= "nav" ><div id= "nav-group" ><span id= "blog_name" ><div class= "back-home-button" ><i class= "back-home-button-icon heofont icon-apps-fill" ></i><div class= "back-menu-list-groups" ><div class= "back-menu-list-group" ><div class= "back-menu-list-title" > Webpage </div><div class= "back-menu-list" ><a class= "back-menu-item" target= "_blank" rel= "noopener" href= " https://x.x.com/ " title= Blog ><img class= "back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= "/img/favicon.ico" alt= Blog /><span class= "back-menu-item-text" > Blog </span></a></div></div><div class= "back-menu-list-group" ><div class= "back-menu-list-title" > project </div><div class= "back-menu-list" ><a class= "back-menu-item" target= "_blank" rel= "noopener" href= " https://x.x.com/ " title= Chart bed ><img class= "back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://x.x.com/favicon.ico " alt= Chart bed /><span class= "back-menu-item-text" > Graphic bed </span></a></div></div></div></div><a id= "site-name" href= "/" accesskey= "h" ><div class= "title" > dongkcs </div><i class= "anzhiyufont anzhiyu-icon-house-chimney" ></i></a></span><div class= "mask-name-container" ><div id= "name-container" ><a id= "page-name" href= "javascript:anzhiyu.scrollToDest(0, 500)" > PAGE_NAME </a></div></div><div id= "menus" ><div class= "menus_items" ><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> article </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/archives/" ><i class= "anzhiyufont anzhiyu-icon-box-archive faa-tada" style= "font-size: 0.9em;" ></i><span> Tunnel </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/categories/" ><i class= "anzhiyufont anzhiyu-icon-shapes faa-tada" style= "font-size: 0.9em;" ></i><span> classification </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/tags/" ><i class= "anzhiyufont anzhiyu-icon-tags faa-tada" style= "font-size: 0.9em;" ></i><span> label </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> Friendly chain </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/link/" ><i class= "anzhiyufont anzhiyu-icon-link faa-tada" style= "font-size: 0.9em;" ></i><span> Friend account </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/fcircle/" ><i class= "anzhiyufont anzhiyu-icon-artstation faa-tada" style= "font-size: 0.9em;" ></i><span> Circle of friends </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/comments/" ><i class= "anzhiyufont anzhiyu-icon-envelope faa-tada" style= "font-size: 0.9em;" ></i><span> Message Board </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> my </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/music/" ><i class= "anzhiyufont anzhiyu-icon-music faa-tada" style= "font-size: 0.9em;" ></i><span> Music Hall </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/bangumis/" ><i class= "anzhiyufont anzhiyu-icon-bilibili faa-tada" style= "font-size: 0.9em;" ></i><span> Chasing pages </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/album/" ><i class= "anzhiyufont anzhiyu-icon-images faa-tada" style= "font-size: 0.9em;" ></i><span> Album collection </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/air-conditioner/" ><i class= "anzhiyufont anzhiyu-icon-fan faa-tada" style= "font-size: 0.9em;" ></i><span> Small air conditioner </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> about </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/about/" ><i class= "anzhiyufont anzhiyu-icon-paper-plane faa-tada" style= "font-size: 0.9em;" ></i><span> About myself </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/essay/" ><i class= "anzhiyufont anzhiyu-icon-lightbulb faa-tada" style= "font-size: 0.9em;" ></i><span> gossip </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "javascript:toRandomPost()" ><i class= "anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style= "font-size: 0.9em;" ></i><span> Look around </span></a></li></ul></div></div></div><div id= "nav-right" ><div class= "nav-button only-home" id= "travellings_button" title= "Go to a project website at random" ><a class= "site-page" onclick= "anzhiyu.totraveling()" title= "Go to a project website at random" href= "javascript:void(0);" rel= "external nofollow" data-pjax-state= "external" ><i class= "heofont icon-train-line" ></i></a></div><div class= "nav-button" id= "randomPost_button" ><a class= "site-page" onclick= "toRandomPost()" title= "Go to an article at random" href= "javascript:void(0);" ><i class= "heofont icon-signal-tower-fill" ></i></a></div><div class= "nav-button" id= "search-button" ><a class= "site-page social-icon search" href= "javascript:void(0);" title= "Search 🔍 " accesskey= "s" ><i class= "heofont icon-search-2-line" ></i><span> search </span></a></div><input id= "center-console" type= "checkbox" /><label class= "widget" for= "center-console" title= "Center console" onclick= "anzhiyu.switchConsole();" ><i class= "left" ></i><i class= "widget center" ></i><i class= "widget right" ></i></label><div id= "console" ><div class= "console-card-group-reward" ><ul class= "reward-all console-card" ><li class= "reward-item" ><a href= " https://npm.elemecdn.com/anzhiyu-blog @1.1.6/img/post/common/qrcode-weichat.png" target= "_blank" ><img class= "post-qr-code-img" alt= "WeChat" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @1.1.6/img/post/common/qrcode-weichat.png" /></a><div class= "post-qr-code-desc" > WeChat </div></li><li class= "reward-item" ><a href= " https://npm.elemecdn.com/anzhiyu-blog @1.1.6/img/post/common/qrcode-alipay.png" target= "_blank" ><img class= "post-qr-code-img" alt= "Alipay" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @1.1.6/img/post/common/qrcode-alipay.png" /></a><div class= "post-qr-code-desc" > Alipay </div></li></ul></div><div class= "console-card-group" ><div class= "console-card-group-left" ><div class= "console-card" id= "card-newest-comments" ><div class= "card-content" ><div class= "author-content-item-tips" > interaction </div><span class= "author-content-item-title" > Latest comments </span></div><div class= "aside-list" ><span> Loading </span></div></div></div><div class= "console-card-group-right" ><div class= "console-card tags" ><div class= "card-content" ><div class= "author-content-item-tips" > Points of interest </div><span class= "author-content-item-title" > Look for areas of interest </span><div class= "card-tags" ><div class= "item-headline" ></div><div class= "card-tag-cloud" ><a href= "/tags/Background/" style= "font-size: 1.05rem;" > Background <sup> one </sup></a><a href= "/tags/Butterfly/" style= "font-size: 1.05rem;" > Butterfly <sup> one </sup></a><a href= "/tags/ES/" style= "font-size: 1.05rem;" > ES <sup> two </sup></a><a href= "/tags/ES%E6%8C%87%E5%8D%97/" style= "font-size: 1.05rem;" > ES Guide <sup> two </sup></a><a href= "/tags/GitHub/" style= "font-size: 1.05rem;" > GitHub <sup> one </sup></a><a href= "/tags/Gridea/" style= "font-size: 1.05rem;" > Gridea <sup> one </sup></a><a href= "/tags/Hexo/" style= "font-size: 1.05rem;" > Hexo <sup> one </sup></a><a href= "/tags/Idea/" style= "font-size: 1.05rem;" > Idea <sup> one </sup></a><a href= "/tags/ctf/" style= "font-size: 1.05rem;" > ctf <sup> two </sup></a><a href= "/tags/java/" style= "font-size: 1.05rem;" > java <sup> one </sup></a><a href= "/tags/maven/" style= "font-size: 1.05rem;" > maven <sup> one </sup></a><a href= "/tags/%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" style= "font-size: 1.05rem;" > Backup Tools <sup> three </sup></a></div></div><hr/></div></div><div class= "console-card history" ><div class= "item-headline" ><i class= "anzhiyufont anzhiyu-icon-box-archiv" ></i><span> article </span></div><div class= "card-archives" ><div class= "item-headline" ><i class= "anzhiyufont anzhiyu-icon-archive" ></i><span> file </span></div><ul class= "card-archive-list" ><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2023/10/" ><span class= "card-archive-list-date" > October 2023 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > five </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2021/07/" ><span class= "card-archive-list-date" > July 2021 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2021/06/" ><span class= "card-archive-list-date" > June 2021 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > four </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2020/06/" ><span class= "card-archive-list-date" > June 2020 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2019/06/" ><span class= "card-archive-list-date" > June 2019 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2018/06/" ><span class= "card-archive-list-date" > June 2018 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li></ul></div><hr/></div></div></div><div class= "button-group" ><div class= "console-btn-item" ><a class= "darkmode_switchbutton" title= "Display mode switching" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-moon" ></i></a></div><div class= "console-btn-item" id= "consoleHideAside" onclick= "anzhiyu.hideAsideBtn()" title= Sidebar Display Control ><a class= "asideSwitch" ><i class= "anzhiyufont anzhiyu-icon-arrows-left-right" ></i></a></div><div class= "console-btn-item on" id= "consoleCommentBarrage" onclick= "anzhiyu.switchCommentBarrage()" title= "Heat rating switch" ><a class= "commentBarrage" ><i class= "anzhiyufont anzhiyu-icon-message" ></i></a></div><div class= "console-btn-item" id= "consoleMusic" onclick= "anzhiyu.musicToggle()" title= Music switch ><a class= "music-switch" ><i class= "anzhiyufont anzhiyu-icon-music" ></i></a></div><div class= "console-btn-item" id= "consoleKeyboard" onclick= "anzhiyu.keyboardToggle()" title= "Shortcut key switch" ><a class= "keyboard-switch" ><i class= "anzhiyufont anzhiyu-icon-keyboard" ></i></a></div></div><div class= "console-mask" onclick= "anzhiyu.hideConsole()" href= "javascript:void(0);" ></div></div><div class= "nav-button" id= "nav-totop" ><a class= "totopbtn" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-arrow-up" ></i><span id= "percent" onclick= "anzhiyu.scrollToDest(0,500)" > zero </span></a></div><div id= "toggle-menu" ><a class= "site-page" href= "javascript:void(0);" title= Switch ><i class= "anzhiyufont anzhiyu-icon-bars" ></i></a></div></div></div></nav></header><main id= "blog-container" ><div class= "bbTimeList container" id= "bbTimeList" ><i class= "anzhiyufont anzhiyu-icon-jike bber-logo fontbold" onclick= "pjax.loadUrl("/essay/")" title= "Instant essay" aria-hidden= "true" ></i><div class= "swiper-container swiper-no-swiping essay_bar_swiper_container" id= "bbtalk" tabindex= "-1" ><div class= "swiper-wrapper" id= "bber-talk" onclick= "pjax.loadUrl("/essay/")" ><div class= "li-style swiper-slide" > Music supports parameter setting and custom song list </div><div class= "li-style swiper-slide" > The reward on the page imitates the charging function of station b, and uses svg drawing ➕ Some animation parameters are moved, which should not be warned by station b 😜, In addition, the article also supports the same spring, autumn and winter banner of the top random b station. </div><div class= "li-style swiper-slide" > An important reason why the state cannot be modified directly in React is that the prueComponent will make a shallow comparison during performance optimization. It will be considered that an object is used and cannot be batch updated in the queue </div><div class= "li-style swiper-slide" > Yes, I can go home soon! I miss the delicious food at home 😋! I don't want to pinch my sister's face </div><div class= "li-style swiper-slide" > The animation of global music has also been handled, nice! </div><div class= "li-style swiper-slide" > The footer and the top of the home page have been changed to the local place to facilitate subsequent changes. The music has also been changed to the capsule style. In fact, we still want to make the capsule draggable and can't click to change the position of the lyrics, but we gave up after a long time without making it right </div><div class= "li-style swiper-slide" > The new version of Friends Circle Boat is finally finished, yeah ✌️ </div><div class= "li-style swiper-slide" > Finally got the album, yeah ✌️, The waterfall flow is executed once when the sliding scroll bar is 100 up and down in a viewport range. Stopping listening at the bottom makes the performance much higher, and the layout will no longer be chaotic 🤪 Has </div><div class= "li-style swiper-slide" > search 🔍 Support thumbnail display (get the first picture of the article content by default) </div><div class= "li-style swiper-slide" > Meet Rainbow 🌈 Eating the rainbow [picture] </div></div></div><i class= "bber-gotobb anzhiyufont anzhiyu-icon-circle-arrow-right" onclick= "pjax.loadUrl("/essay/")" title= View Full Text ></i></div><script src= " https://npm.elemecdn.com/anzhiyu-theme-static @1.0.0/swiper/swiper.min.js" ></script><div id= "home_top" ><div class= "swiper_container_card" style= "height: auto;width: 100%" ><div id= "bannerGroup" ><div id= "random-banner" ><div class= "banners-title" ><div class= "banners-title-big" > study hard </div><div class= "banners-title-big" > make progress every day. </div><div class= "banners-title-small" > dongkcs.com </div></div><div id= "skills-tags-group-all" ><div class= "tags-group-wrapper" ><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Java" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1184e9.jpg " size= "60px" alt= "Java" ></div><div class= "tags-group-icon" style= "background: #57b6e6" ><img class= "no-lightbox" title= "Docker" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b0f0abe.png " size= "60px" alt= "Docker" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #4082c3" ><img class= "no-lightbox" title= "Photoshop" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c240e.png " size= "60px" alt= "Photoshop" ></div><div class= "tags-group-icon" style= "background: #333" ><img class= "no-lightbox" title= "Node" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.1.1/img/svg/node-logo.svg" size= "60px" alt= "Node" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #2e3a41" ><img class= "no-lightbox" title= "Webpack" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b68026c.png " size= "60px" alt= "Webpack" ></div><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Pinia" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.0.8/img/svg/pinia-logo.svg" size= "60px" alt= "Pinia" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Python" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1230f7.png " size= "60px" alt= "Python" ></div><div class= "tags-group-icon" style= "background: #937df7" ><img class= "no-lightbox" title= "Vite" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.0.8/img/svg/vite-logo.svg" size= "60px" alt= "Vite" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #4499e4" ><img class= "no-lightbox" title= "Flutter" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1055c2.png " size= "60px" alt= "Flutter" ></div><div class= "tags-group-icon" style= "background: #b8f0ae" ><img class= "no-lightbox" title= "Vue" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b6788bd.png " size= "60px" alt= "Vue" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #222" ><img class= "no-lightbox" title= "React" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= "data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiI HJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size= "60px" alt= "React" ></div><div class= "tags-group-icon" style= "background: #2c51db" ><img class= "no-lightbox" title= "CSS3" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c251e.png " size= "60px" alt= "CSS3" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #f7cb4f" ><img class= "no-lightbox" title= "JS" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b121f02.png " size= "60px" alt= "JS" ></div><div class= "tags-group-icon" style= "background: #e9572b" ><img class= "no-lightbox" title= "HTML" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c241c.png " size= "60px" alt= "HTML" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #df5b40" ><img class= "no-lightbox" title= "Git" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b10ccdd.webp " size= "60px" alt= "Git" ></div><div class= "tags-group-icon" style= "background: #e65164" ><img class= "no-lightbox" title= "Apifox" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/11/19/6378d6458c6b6.png " size= "60px" alt= "Apifox" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Java" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1184e9.jpg " size= "60px" alt= "Java" ></div><div class= "tags-group-icon" style= "background: #57b6e6" ><img class= "no-lightbox" title= "Docker" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b0f0abe.png " size= "60px" alt= "Docker" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #4082c3" ><img class= "no-lightbox" title= "Photoshop" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c240e.png " size= "60px" alt= "Photoshop" ></div><div class= "tags-group-icon" style= "background: #333" ><img class= "no-lightbox" title= "Node" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.1.1/img/svg/node-logo.svg" size= "60px" alt= "Node" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #2e3a41" ><img class= "no-lightbox" title= "Webpack" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b68026c.png " size= "60px" alt= "Webpack" ></div><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Pinia" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.0.8/img/svg/pinia-logo.svg" size= "60px" alt= "Pinia" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #fff" ><img class= "no-lightbox" title= "Python" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1230f7.png " size= "60px" alt= "Python" ></div><div class= "tags-group-icon" style= "background: #937df7" ><img class= "no-lightbox" title= "Vite" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://npm.elemecdn.com/anzhiyu-blog @2.0.8/img/svg/vite-logo.svg" size= "60px" alt= "Vite" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #4499e4" ><img class= "no-lightbox" title= "Flutter" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b1055c2.png " size= "60px" alt= "Flutter" ></div><div class= "tags-group-icon" style= "background: #b8f0ae" ><img class= "no-lightbox" title= "Vue" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b6788bd.png " size= "60px" alt= "Vue" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #222" ><img class= "no-lightbox" title= "React" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= "data:image/svg+xml; base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3NCAyMyAyMC40NjM0OCI+CiAgPHRpdGxlPlJlYWN0IExvZ288L3RpdGxlPgogIDxjaXJjbGUgY3g9IjAiIGN5PSIwIiByPSIyLjA1IiBmaWxsPSIjNjFkYWZiIi8+CiAgPGcgc3Ryb2tlPSIjNjFkYWZiIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIi8+CiAgICA8ZWxsaXBzZSByeD0iMTEiI HJ5PSI0LjIiIHRyYW5zZm9ybT0icm90YXRlKDYwKSIvPgogICAgPGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+CiAgPC9nPgo8L3N2Zz4K" size= "60px" alt= "React" ></div><div class= "tags-group-icon" style= "background: #2c51db" ><img class= "no-lightbox" title= "CSS3" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c251e.png " size= "60px" alt= "CSS3" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #f7cb4f" ><img class= "no-lightbox" title= "JS" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b121f02.png " size= "60px" alt= "JS" ></div><div class= "tags-group-icon" style= "background: #e9572b" ><img class= "no-lightbox" title= "HTML" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/12/15/639aa3a5c241c.png " size= "60px" alt= "HTML" ></div></div><div class= "tags-group-icon-pair" ><div class= "tags-group-icon" style= "background: #df5b40" ><img class= "no-lightbox" title= "Git" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/04/09/643293b10ccdd.webp " size= "60px" alt= "Git" ></div><div class= "tags-group-icon" style= "background: #e65164" ><img class= "no-lightbox" title= "Apifox" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2022/11/19/6378d6458c6b6.png " size= "60px" alt= "Apifox" ></div></div></div></div><a id= "random-hover" href= "javascript:toRandomPost()" ><i class= "anzhiyufont anzhiyu-icon-paper-plane" ></i><div class= "bannerText" > Look around <i class= "anzhiyufont anzhiyu-icon-arrow-right" ></i></div></a></div><div class= "categoryGroup" ><div class= "categoryItem" style= "box-shadow:var(--anzhiyu-shadow-blue)" ><a class= "categoryButton blue" onclick= "Pjax.loadUrl ("/categories/front-end development/");" href= "javascript:void(0);" ><span class= "categoryButtonText" > front end </span><i class= "anzhiyufont anzhiyu-icon-dove" ></i></a></div><div class= "categoryItem" style= "box-shadow:var(--anzhiyu-shadow-red)" ><a class= "categoryButton red" onclick= "Pjax.loadUrl ("/categories/college/");" href= "javascript:void(0);" ><span class= "categoryButtonText" > university </span><i class= "anzhiyufont anzhiyu-icon-fire" ></i></a></div><div class= "categoryItem" style= "box-shadow:var(--anzhiyu-shadow-green)" ><a class= "categoryButton green" onclick= "Pjax.loadUrl ("/categories/daily life/");" href= "javascript:void(0);" ><span class= "categoryButtonText" > life </span><i class= "anzhiyufont anzhiyu-icon-book" ></i></a></div></div></div><div class= "topGroup" ><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/51251.html")" ><div class= "post_cover left_radius" ><a href= "posts/51251.html" title= "Getting Started with Elastic Stack" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/es.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/51251.html" title= "Getting Started with Elastic Stack" > Introduction to Elastic Stack </a></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/17580.html")" ><div class= "post_cover left_radius" ><a href= "posts/17580.html" title= "Elastic Stack Common Errors" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/es.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/17580.html" title= "Elastic Stack Common Errors" > Elastic Stack Common Errors </a></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/23156.html")" ><div class= "post_cover left_radius" ><a href= "posts/23156.html" title= "Elasticsearch + Logstash + Beats + Kibana" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/es.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/23156.html" title= "Elasticsearch + Logstash + Beats + Kibana" > Elasticsearch + Logstash + Beats + Kibana </a></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/33751.html")" ><div class= "post_cover left_radius" ><a href= "posts/33751.html" title= "Hello Gridea" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/hello.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/33751.html" title= "Hello Gridea" > Hello Gridea </a></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/c8972b63.html")" ><div class= "post_cover left_radius" ><a href= "posts/c8972b63.html" title= "Hexo Blog Building Super Guide" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/20200715201402.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/c8972b63.html" title= "Hexo Blog Building Super Guide" > Hexo Blog Building Super Guide </a></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl("/posts/7836a7bf.html")" ><div class= "post_cover left_radius" ><a href= "posts/7836a7bf.html" title= "Your secrets" ><span class= "recent-post-top-text" > Recommendation </span><img class= "post_bg" onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/ctf.png " ></a></div><div class= "recent-post-info" ><a class= "article-title" href= "posts/7836a7bf.html" title= "Your secrets" > Your secrets </a></div></div><a class= "todayCard" id= "todayCard" target= "_blank" rel= "noopener" href= " https://x.x.com/ " style= "z-index: 1;" ><div class= "todayCard-info" ><div class= "todayCard-tips" > Sticky Posts </div><div class= "todayCard-title" > It's never too late to learn. </div></div><img class= "todayCard-cover" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/03/06/640586a5ca915.webp " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= Cover ><div class= "banner-button-group" ><div class= "banner-button" onclick= "event.stopPropagation();event.preventDefault();anzhiyu.hideTodayCard();" ><i class= "anzhiyufont anzhiyu-icon-arrow-circle-right" ></i><span class= "banner-button-text" > More recommendations </span></div></div></a></div><link rel= "stylesheet" ></div></div><div class= "layout" id= "content-inner" ><div class= "recent-posts" id= "recent-posts" ><div id= "categoryBar" ><div class= "category-bar" id= "category-bar" ><div id= "catalog-bar" ><div id= "catalog-list" ><div class= "catalog-list-item" id= Home ><a href= "/" > home page </a></div>
<div class= "catalog-list-item" id= "/categories/ES/" >
<a href= "/categories/ES/" >
ES </a>
</div>
<div class= "catalog-list-item" id= "/categories/beautification/" >
<a href= "/categories/beautification/" >
beautify </a>
</div>
<div class= "catalog-list-item" id= "/categories/misc/" >
<a href= "/categories/misc/" >
misc </a>
</div>
<div class= "catalog-list-item" id= "/categories/Idea/" >
<a href= "/categories/Idea/" >
Idea </a>
</div>
<div class= "catalog-list-item" id= "/categories/Butterfly/" >
<a href= "/categories/Butterfly/" >
Butterfly </a>
</div>
<div class= "catalog-list-item" id= "/categories/wallpapers/" >
<a href= "/categories/wallpapers/" >
wallpaper </a>
</div>
<div class= "catalog-list-item" id= "/categories/Git/" >
<a href= "/categories/Git/" >
Git </a>
</div>
</div><div class= "category-bar-next" id= "category-bar-next" onclick= "anzhiyu.scrollCategoryBarToRight()" ><i class= "anzhiyufont anzhiyu-icon-angle-double-right" ></i></div><a class= "catalog-more" href= "/categories/" > more </a></div></div></div><div class= "recent-post-item lastestpost-item" onclick= "pjax.loadUrl('/posts/c8972b63.html')" ><div class= "post_cover left" ><a href= "/posts/c8972b63.html" title= "Hexo Blog Building Super Guide" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/20200715201402.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Hexo Blog Building Super Guide" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><span class= "newPost" > newest </span><a class= "unvisited-post" href= "/posts/c8972b63.html" title= "Hexo Blog Building Super Guide" > Unread </a></div><a class= "article-title" href= "/posts/c8972b63.html" title= "Hexo Blog Building Super Guide" > Hexo Blog Building Super Guide </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2023-10-04T15:49:24.611Z" title= "Published on 2023-10-04 15:49:24" > 2023-10-04 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/Hexo/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> Hexo </span></a><a class= "article-meta__tags" href= "/tags/Butterfly/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> Butterfly </span></a></span></div><div class= "content" > Foreword: unknowingly, my blog has been running in the wind and rain for more than a year. Looking back on the experience of blog maintenance and magic transformation in this year, I think it is necessary to record the process of blog building in detail to prevent me from accidentally breaking the blog
Environment deployment installation Node.js1. Enter the official website and select the corresponding system download: official website: https://nodejs.org/en/download/2. Select the installation path and complete the installation 3. Check to open cmd or powershell, and enter: 12node -vnpm -v Display the version number, that is, the installation is correct **
Npm is the package management tool of Node.js
** Install Git1. Go to the official website to download the official website: https://git-scm.com/downloads2. Install and select the path to complete the installation. 3. Check and open git bash. Enter: 1 Insert code slice here
Register Github account 1. Github official website https://github.com , register an account 2. The name of the new project is your nickname. github.io, for example: NAME3. Code base setting After creation, save <& gt; SSH in code, namely: 1git@github.com :XXXXXXXXX/XXXXXXXXX.github.io.git Click Setti on the right </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/7836a7bf.html')" ><div class= "post_cover left" ><a href= "/posts/7836a7bf.html" title= "Your secrets" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/ctf.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Your secrets" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > misc </div><a class= "unvisited-post" href= "/posts/7836a7bf.html" title= "Your secrets" > Unread </a></div><a class= "article-title" href= "/posts/7836a7bf.html" title= "Your secrets" > Your secrets </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2023-10-04T15:49:24.611Z" title= "Published on 2023-10-04 15:49:24" > 2023-10-04 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/ctf/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> ctf </span></a></span></div><div class= "content" >
f4cc23558ba95030556638b09840cfb7c4f2810e30f55d5b3421b66777acdd95bbd82ae72c169a2aaab3cf96469ba17e5f6da2569ba982b57dfae4edbd85f4742643eddf5a2250bc26eea71bba2f912de8db026611fdc38b159d7ff170217d31964a289c7c856c42d3fad37e013d9b3a2a8226be0c50c9f2d968ea4335a469cf8ea782f8887134c7c7cd51b7692f37691fe6d1667d11def598bef2475d26df8c4355d56d48f3b22df048eb88fc131 ff80b90bff60a307612764722a08f8f189cb01c71ebe82a0c9fb71ec14ca695edac149cb93f8d401c171a98593663d07d31d7dc19104b65efc22e9e6d843a8af05217a440ff91e17a368 ... </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/3af7b7cb.html')" ><div class= "post_cover left" ><a href= "/posts/3af7b7cb.html" title= "Wangding Cup 2018 Comment" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/ctf.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Wangding Cup 2018 Comment" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><a class= "unvisited-post" href= "/posts/3af7b7cb.html" title= "Wangding Cup 2018 Comment" > Unread </a></div><a class= "article-title" href= "/posts/3af7b7cb.html" title= "Wangding Cup 2018 Comment" > Wangding Cup 2018 Comment </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2023-10-04T15:49:24.611Z" title= "Published on 2023-10-04 15:49:24" > 2023-10-04 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/ctf/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> ctf </span></a></span></div><div class= "content" > Wangding Cup 2018 Comment bursts the password, which is zhangwei666. After logging in, you can post F12. You will see the prompt on the console that it is source code leakage, and then download the source code with the githacker of Wang Yihang. After downloading, you will find that the source code is incomplete and recover it; Check the operation record of git git log –reflog 123456789101112131415161718commit e5b2a2443c2b6d395d06960123142bc91123148c (refs/stash)Merge: bfbdf21 5556e3aAuthor: root < root@localhost.localdomain > Date: Sat Aug 11 22:51:17 2018 +0800 WIP on master: bfbdf21 add write_do.phpcommit 5556e3ad3f21a0cf5938e26985a04ce3aa73faafAuthor: root < root@localhost.localdomain > Date: Sat Aug 11 22:51:17 2018 +0 ... </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/undefined.html')" ><div class= "post_cover left" ><a href= "/posts/undefined.html" title= "Hello World" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/06/19/648feab74bbe8.jpg " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Hello World" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><a class= "unvisited-post" href= "/posts/undefined.html" title= "Hello World" > Unread </a></div><a class= "article-title" href= "/posts/undefined.html" title= "Hello World" > Hello World </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2023-10-04T15:49:24.611Z" title= "Published on 2023-10-04 15:49:24" > 2023-10-04 </time></span></div><div class= "content" > Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new " My New Post "
More info: Writing Run server1$ hexo server
More info: Server Generate static files1$ hexo generate
More info: Generating Deploy to remote sites1$ hexo deploy
More info: Deployment </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/8c9c12b0.html')" ><div class= "post_cover left" ><a href= "/posts/8c9c12b0.html" title= Modify drop-down menu style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/hexo.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= Modify drop-down menu style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > Butterfly </div><a class= "unvisited-post" href= "/posts/8c9c12b0.html" title= Modify drop-down menu > Unread </a></div><a class= "article-title" href= "/posts/8c9c12b0.html" title= Modify drop-down menu > Modify drop-down menu </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2023-10-04T15:49:24.611Z" title= "Published on 2023-10-04 15:49:24" > 2023-10-04 </time></span></div><div class= "content" > Change the modification method in index.pug under the header! = partial(‘includes / header / Nav ', {}, {cache: true}) The cache should be set to false 1234header#page-header(class=isHomeClass style=bg_img)+ != partial( ' includes/header/nav ' , {&# 125; , { cache: false } )- != partial( ' includes/header/nav ' , {&# 125; , { cache: true } ) </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/2388.html')" ><div class= "post_cover left" ><a href= "/posts/2388.html" title= "Reading" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/read.jpg " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Reading" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><a class= "unvisited-post" href= "/posts/2388.html" title= "Reading" > Unread </a></div><a class= "article-title" href= "/posts/2388.html" title= "Reading" > read </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2021-07-23T17:36:19.000Z" title= "Published on 2021-07-23 17:36:19" > 2021-07-23 </time></span></div><div class= "content" > Twenty Four Histories </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/400.html')" ><div class= "post_cover left" ><a href= "/posts/400.html" title= "How to back up websites to github" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/github.jpg " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "How to back up websites to github" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > Git </div><a class= "unvisited-post" href= "/posts/400.html" title= "How to back up websites to github" > Unread </a></div><a class= "article-title" href= "/posts/400.html" title= "How to back up websites to github" > How to back up a website to github </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2021-06-07T09:15:20.000Z" title= "Published on 2021-06-07 09:15:20" > 2021-06-07 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/ES%E6%8C%87%E5%8D%97/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> ES Guide </span></a><a class= "article-meta__tags" href= "/tags/%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> Backup Tools </span></a><a class= "article-meta__tags" href= "/tags/GitHub/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> GitHub </span></a></span></div><div class= "content" > Foreword: other methods are used, such as the pagoda panel. The little partner can do Baidu himself. This blog only talks about how to use the command to back up the website to github 1、 To apply for github warehouse, it is better to set private II and local git configuration Note: This article has already configured the default configuration of git by default, such as ssh public key 123456cd/www/wwwroot/website directory # initialize warehouse git init # associate to remote Github warehouse git remote add origin git@github.com : * * * (the warehouse address of github) git pull origin master 3、 Backup script sudo vim~ / BackupWebsite.sh Write 12345678#!/ Bin/bash # Path of website directory to be backed up=/www/wwwrootcd $paths # Synchronize website files and database files to Githubgit add - Agit commit - m " backupsite " git push -u origin master 4、 Set the scheduled task 12echo " 30 01 * * * bash ~/gitback.sh > ~/backupWebsite. ... </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/23156.html')" ><div class= "post_cover left" ><a href= "/posts/23156.html" title= "Elasticsearch + Logstash + Beats + Kibana" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/es.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Elasticsearch + Logstash + Beats + Kibana" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > ES </div><a class= "unvisited-post" href= "/posts/23156.html" title= "Elasticsearch + Logstash + Beats + Kibana" > Unread </a></div><a class= "article-title" href= "/posts/23156.html" title= "Elasticsearch + Logstash + Beats + Kibana" > Elasticsearch + Logstash + Beats + Kibana </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2021-06-07T09:14:34.000Z" title= "Published on 2021-06-07 09:14:34" > 2021-06-07 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/ES/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> ES </span></a></span></div><div class= "content" > Comprehensive exercise The following is a comprehensive exercise to integrate the learned Elastic search+Logstash+Beats+Kibana, so that students can have a deeper understanding of the use of Elastic Stack. 1.1 Process description
The APP production log is used to record user operations [INFO] 2020-05-27 16:49:48 [cn. itcast. dashboard. Main] - DAU | 9270 | Get coupons | 2020-05-27 12:01:16 [INFO] 2020-05-27 16:49:52 [cn. itcast. dashboard. Main] - DAU | 2848 | Add to Collection | 2020-05-27 09:06:18
Read the content in the log file through Filebeat and send the content to Logstash because the content needs to be processed After receiving the content, Logstash performs processing, such as splitting, and then sends the content to Elasticsearch Kibana will read the data in Elasticsearch, design the Dashboard in Kibana, and finally display
Note: The log format, chart, and dashboard are customized </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/17580.html')" ><div class= "post_cover left" ><a href= "/posts/17580.html" title= "Elastic Stack Common Errors" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/es.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Elastic Stack Common Errors" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > ES </div><a class= "unvisited-post" href= "/posts/17580.html" title= "Elastic Stack Common Errors" > Unread </a></div><a class= "article-title" href= "/posts/17580.html" title= "Elastic Stack Common Errors" > Elastic Stack Common Errors </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2021-06-07T09:13:50.000Z" title= "Published on 2021-06-07 09:13:50" > 2021-06-07 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/ES%E6%8C%87%E5%8D%97/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> ES Guide </span></a><a class= "article-meta__tags" href= "/tags/%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> Backup Tools </span></a></span></div><div class= "content" > The elasticsearch cluster could not be started. The following prompt failed to send join request to master appears. The reason is that the replicated elasticsearch folder contains the node data of example 1 in the data file. You need to empty the file under the data file of example 2. Delete all files under the es cluster data database folder </div></div></div><div class= "recent-post-item" onclick= "pjax.loadUrl('/posts/33751.html')" ><div class= "post_cover left" ><a href= "/posts/33751.html" title= "Hello Gridea" style= "display: flex;height: 100%;" ><img class= "post_bg" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://dongkcs.gitee.io/gallery/CDN/img/hello.png " onerror= "this.onerror=null;this.src='/img/404.jpg'" alt= "Hello Gridea" style= "pointer-events: none" ></a></div><div class= "recent-post-info" ><div class= "recent-post-info-top" ><div class= "recent-post-info-top-tips" ><div class= "article-categories-original" > beautify </div><a class= "unvisited-post" href= "/posts/33751.html" title= "Hello Gridea" > Unread </a></div><a class= "article-title" href= "/posts/33751.html" title= "Hello Gridea" > Hello Gridea </a></div><div class= "article-meta-wrap" ><span class= "post-meta-date" ><i class= "anzhiyufont anzhiyu-icon-calendar-days" style= "font-size: 15px; display:none" ></i><span class= "article-meta-label" > Published on </span><time datetime= "2021-06-03T17:30:35.000Z" title= "Published on 2021-06-03 17:30:35" > 2021-06-03 </time></span><span class= "article-meta tags" ><a class= "article-meta__tags" href= "/tags/Gridea/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> Gridea </span></a><a class= "article-meta__tags" href= "/tags/java/" event.cancelbubble onclick= "window.event.cancelBubble=true;" ><span> <i class= "anzhiyufont anzhiyu-icon-hashtag" ></i> java </span></a></span></div><div class= "content" >
👏 Welcome to Gridea! ✍️ Gridea is a static blog writing client. You can use it to record your life, mood, knowledge, notes, creativity... GithubGrid homepage example website characteristic 👇📝 You can use the coolest Markdown syntax for rapid creation 🌉 You can attach a beautiful cover picture to the article and insert pictures anywhere in the article 🏷️ You can tag and group articles 📋 You can customize menus and even create external link menus 💻 You can use this client on Windows, MacOS or Linux devices 🌎 You can use 𝖦𝗂𝗍𝗁𝗎𝖻𝖯𝖺𝗀𝖾𝗌𝗌 or Coding Pages to show to the world, which will support more platforms in the future 💬 You can make simple configuration and access to the Gitalk or DisqusJS comment system 🇬🇧 You can use simplified Chinese or English 🌁 You can freely use the default theme in the application or any third-party theme, with powerful theme customization ability 🖥 You can customize the source folder and use OneDrive, Baidu online disk, iCloud, Dropbox, etc. to synchronize multiple devices 🌱 Of course, Gridea is still young, and there are many </div></div></div><nav id= "pagination" ><div class= "pagination" ><span class= "page-number current" > one </span><a class= "page-number" href= "/page/2/#content-inner" > two </a><a class= "extend next" rel= "next" href= "/page/2/#content-inner" ><div class= "pagination_tips_next" > next page </div><i style= "font-weight: inherit; font-size: 1rem;" class= "anzhiyufont anzhiyu-icon-chevron-right fa-fw" ></i></a><div class= "toPageGroup" ><input id= "toPageText" oninput= "value=value.replace(/[^0-9]/g,'')" maxlength= "3" onkeyup= "this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')" aria-label= "toPage" ><a id= "toPageButton" onclick= "anzhiyu.toPage()" ><i class= "anzhiyufont anzhiyu-icon-angles-right" style= "font-weight: inherit; font-size: 1rem;" ></i></a></div></div></nav></div><div class= "aside-content" id= "aside-content" ><div class= "card-widget card-info" ><div class= "card-content" ><div class= "author-info__sayhi" id= "author-info__sayhi" onclick= "anzhiyu.changeSayHelloText()" ></div><div class= "author-info-avatar" ><img class= "avatar-img" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/06/19/648fd5aaad03b.png " onerror= "this.onerror=null;this.src='/img/friend_404.gif'" alt= "avatar" /><div class= "author-status" ><img class= "g-status" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/08/24/64e6ce9c507bb.png " ait= "status" /></div></div><div class= "author-info__description" ><div style= "line-height:1.38;margin:0.6rem 0;text-align:justify;color:rgba(255, 255, 255, 0.8);" > It's about <b style= "color:#fff" > Product, design and development </b> Relevant questions and opinions, as well as <b style= "color:#fff" > Article translation </b> and <b style= "color:#fff" > share </b> 。 </div><div style= "line-height:1.38;margin:0.6rem 0;text-align:justify;color:rgba(255, 255, 255, 0.8);" > I believe you can find something useful here <b style= "color:#fff" > knowledge </b> and <b style= "color:#fff" > course </b> 。 </div></div><div class= "author-info__bottom-group" ><a class= "author-info__bottom-group-left" href= "/" ><h1 class= "author-info__name" > dongkcs </h1><div class= "author-info__desc" > study hard and make progress every day </div></a><div class= "card-info-social-icons is-center" ><a class= "social-icon faa-parent animated-hover" href= " https://github.com/x-x " target= "_blank" title= "Github" ><i class= "anzhiyufont anzhiyu-icon-github" ></i></a><a class= "social-icon faa-parent animated-hover" href= " https://space.bilibili.com/x " target= "_blank" title= "BiliBili" ><i class= "anzhiyufont anzhiyu-icon-bilibili" ></i></a></div></div></div></div><div class= "card-widget anzhiyu-right-widget" id= "card-wechat" onclick= "null" ><div id= "flip-wrapper" ><div id= "flip-content" ><div class= "face" style= "background: url( https://bu.dusays.com/2023/01/13/63c02edf44033.png ) center center / 100% no-repeat" ></div><div class= "back face" style= "background: url( https://bu.dusays.com/2023/05/13/x.png ) center center / 100% no-repeat" ></div></div></div></div><div class= "sticky_layout" ><div class= "card-widget" ><div class= "card-tags" ><div class= "item-headline" ></div><div class= "card-tag-cloud" ><a href= "/tags/Background/" style= "font-size: 1.05rem;" > Background <sup> one </sup></a><a href= "/tags/Butterfly/" style= "font-size: 1.05rem;" > Butterfly <sup> one </sup></a><a href= "/tags/ES/" style= "font-size: 1.05rem;" > ES <sup> two </sup></a><a href= "/tags/ES%E6%8C%87%E5%8D%97/" style= "font-size: 1.05rem;" > ES Guide <sup> two </sup></a><a href= "/tags/GitHub/" style= "font-size: 1.05rem;" > GitHub <sup> one </sup></a><a href= "/tags/Gridea/" style= "font-size: 1.05rem;" > Gridea <sup> one </sup></a><a href= "/tags/Hexo/" style= "font-size: 1.05rem;" > Hexo <sup> one </sup></a><a href= "/tags/Idea/" style= "font-size: 1.05rem;" > Idea <sup> one </sup></a><a href= "/tags/ctf/" style= "font-size: 1.05rem;" > ctf <sup> two </sup></a><a href= "/tags/java/" style= "font-size: 1.05rem;" > java <sup> one </sup></a><a href= "/tags/maven/" style= "font-size: 1.05rem;" > maven <sup> one </sup></a><a href= "/tags/%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" style= "font-size: 1.05rem;" > Backup Tools <sup> three </sup></a></div></div><hr/><div class= "card-archives" ><div class= "item-headline" ><i class= "anzhiyufont anzhiyu-icon-archive" ></i><span> file </span></div><ul class= "card-archive-list" ><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2023/10/" ><span class= "card-archive-list-date" > October 2023 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > five </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2021/07/" ><span class= "card-archive-list-date" > July 2021 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2021/06/" ><span class= "card-archive-list-date" > June 2021 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > four </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2020/06/" ><span class= "card-archive-list-date" > June 2020 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2019/06/" ><span class= "card-archive-list-date" > June 2019 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li><li class= "card-archive-list-item" ><a class= "card-archive-list-link" href= "/archives/2018/06/" ><span class= "card-archive-list-date" > June 2018 </span><div class= "card-archive-list-count-group" ><span class= "card-archive-list-count" > one </span><span> piece </span></div></a></li></ul></div><hr/><div class= "card-webinfo" ><div class= "item-headline" ><i class= "anzhiyufont anzhiyu-icon-chart-line" ></i><span> Website information </span></div><div class= "webinfo" ><div class= "webinfo-item" ><div class= "webinfo-item-title" ><i class= "anzhiyufont anzhiyu-icon-file-lines" ></i><div class= "item-name" > Total number of articles: </div></div><div class= "item-count" > thirteen </div></div><div class= "webinfo-item" ><div class= "webinfo-item-title" ><i class= "anzhiyufont anzhiyu-icon-stopwatch" ></i><div class= "item-name" > Days of station establishment: </div></div><div class= "item-count" id= "runtimeshow" data-publishDate= "2021-04-01T00:00:00.000Z" ><i class= "anzhiyufont anzhiyu-icon-spinner anzhiyu-spin" ></i></div></div><div class= "webinfo-item" ><div class= "webinfo-item-title" ><i class= "anzhiyufont anzhiyu-icon-font" ></i><div class= "item-name" > Number of characters in the whole station: </div></div><div class= "item-count" > 4.7k </div></div></div></div></div></div></div></div></main><footer id= "footer" ><div id= "footer-wrap" ><div id= "footer_deal" ><a class= "deal_link" href= "mailto: anzhiyu-c@qq.com " title= "email" ><i class= "anzhiyufont anzhiyu-icon-envelope" ></i></a><a class= "deal_link" target= "_blank" rel= "noopener" href= " https://weibo.com/u/6378063631 " title= "Weibo" ><i class= "anzhiyufont anzhiyu-icon-weibo" ></i></a><a class= "deal_link" target= "_blank" rel= "noopener" href= " https://www.facebook.com/profile.php?id=100092208016287& ; sk=about" title= "facebook" ><i class= "anzhiyufont anzhiyu-icon-facebook1" ></i></a><a class= "deal_link" href= "/atom.xml" title= "RSS" ><i class= "anzhiyufont anzhiyu-icon-rss" ></i></a><img class= "footer_mini_logo" title= Back to top alt= Back to top onclick= "anzhiyu.scrollToDest(0, 500)" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://bu.dusays.com/2023/06/19/648fd5aaad03b.png " size= "50px" /><a class= "deal_link" target= "_blank" rel= "noopener" href= " https://github.com/anzhiyu-c " title= "Github" ><i class= "anzhiyufont anzhiyu-icon-github" ></i></a><a class= "deal_link" target= "_blank" rel= "noopener" href= " https://space.bilibili.com/372204786 " title= "Bilibili" ><i class= "anzhiyufont anzhiyu-icon-bilibili" ></i></a><a class= "deal_link" target= "_blank" rel= "noopener" href= " https://v.douyin.com/DwCpMEy/ " title= Treble ><i class= "anzhiyufont anzhiyu-icon-tiktok" ></i></a><a class= "deal_link" href= "/copyright" title= "CC" ><i class= "anzhiyufont anzhiyu-icon-copyright-line" ></i></a></div></div><div id= "footer-bar" ><div class= "footer-bar-links" ><div class= "footer-bar-left" ><div id= "footer-bar-tips" ><div class= "copyright" > © 2020 - 2023 By <a class= "footer-bar-link" href= "/" title= "dongkcs" target= "_blank" > dongkcs </a></div></div><div id= "footer-type-tips" ></div></div><div class= "footer-bar-right" ><a class= "footer-bar-link" target= "_blank" rel= "noopener" href= " https://github.com/x/x " title= Theme > theme </a><a class= "footer-bar-link cc" href= "/copyright" title= "Cc protocol" ><i class= "anzhiyufont anzhiyu-icon-copyright-line" ></i><i class= "anzhiyufont anzhiyu-icon-creative-commons-by-line" ></i><i class= "anzhiyufont anzhiyu-icon-creative-commons-nc-line" ></i><i class= "anzhiyufont anzhiyu-icon-creative-commons-nd-line" ></i></a></div></div></div></footer><script defer > var hasShownPopup = sessionStorage . getItem ( ' sessionNegotiatePopupShown ' );
if ( ! hasShownPopup ) {
setTimeout (() => {
anzhiyuPopupManager && anzhiyuPopupManager . enqueuePopup ( ' Protocol Reminder Assistant ' , ' Check our efforts for your privacy ' , ' /privacy ' , four thousand );
sessionStorage . setItem ( ' sessionNegotiatePopupShown ' , ' true ' );
}, one thousand );
}
</script></div><div id= "sidebar" ><div id= "menu-mask" ></div><div id= "sidebar-menus" ><div class= "sidebar-site-data site-data is-center" ><a href= "/archives/" title= "archive" ><div class= "headline" > article </div><div class= "length-num" > thirteen </div></a><a href= "/tags/" title= "tag" ><div class= "headline" > label </div><div class= "length-num" > twelve </div></a><a href= "/categories/" title= "category" ><div class= "headline" > classification </div><div class= "length-num" > seven </div></a></div><span class= "sidebar-menu-item-title" > function </span><div class= "sidebar-menu-item" ><a class= "darkmode_switchbutton menu-child" href= "javascript:void(0);" title= Display Mode ><i class= "anzhiyufont anzhiyu-icon-circle-half-stroke" ></i><span> display mode </span></a></div><div class= "back-menu-list-groups" ><div class= "back-menu-list-group" ><div class= "back-menu-list-title" > Webpage </div><div class= "back-menu-list" ><a class= "back-menu-item" target= "_blank" rel= "noopener" href= " https://x.x.com/ " title= Blog ><img class= "back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= "/img/favicon.ico" alt= Blog /><span class= "back-menu-item-text" > Blog </span></a></div></div><div class= "back-menu-list-group" ><div class= "back-menu-list-title" > project </div><div class= "back-menu-list" ><a class= "back-menu-item" target= "_blank" rel= "noopener" href= " https://x.x.com/ " title= Chart bed ><img class= "back-menu-item-icon" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror= "this.onerror=null,this.src="/img/404.jpg"" data-lazy-src= " https://x.x.com/favicon.ico " alt= Chart bed /><span class= "back-menu-item-text" > Graphic bed </span></a></div></div></div><div class= "menus_items" ><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> article </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/archives/" ><i class= "anzhiyufont anzhiyu-icon-box-archive faa-tada" style= "font-size: 0.9em;" ></i><span> Tunnel </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/categories/" ><i class= "anzhiyufont anzhiyu-icon-shapes faa-tada" style= "font-size: 0.9em;" ></i><span> classification </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/tags/" ><i class= "anzhiyufont anzhiyu-icon-tags faa-tada" style= "font-size: 0.9em;" ></i><span> label </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> Friendly chain </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/link/" ><i class= "anzhiyufont anzhiyu-icon-link faa-tada" style= "font-size: 0.9em;" ></i><span> Friend account </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/fcircle/" ><i class= "anzhiyufont anzhiyu-icon-artstation faa-tada" style= "font-size: 0.9em;" ></i><span> Circle of friends </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/comments/" ><i class= "anzhiyufont anzhiyu-icon-envelope faa-tada" style= "font-size: 0.9em;" ></i><span> Message Board </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> my </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/music/" ><i class= "anzhiyufont anzhiyu-icon-music faa-tada" style= "font-size: 0.9em;" ></i><span> Music Hall </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/bangumis/" ><i class= "anzhiyufont anzhiyu-icon-bilibili faa-tada" style= "font-size: 0.9em;" ></i><span> Chasing pages </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/album/" ><i class= "anzhiyufont anzhiyu-icon-images faa-tada" style= "font-size: 0.9em;" ></i><span> Album collection </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/air-conditioner/" ><i class= "anzhiyufont anzhiyu-icon-fan faa-tada" style= "font-size: 0.9em;" ></i><span> Small air conditioner </span></a></li></ul></div><div class= "menus_item" ><a class= "site-page" href= "javascript:void(0);" ><span> about </span></a><ul class= "menus_item_child" ><li><a class= "site-page child faa-parent animated-hover" href= "/about/" ><i class= "anzhiyufont anzhiyu-icon-paper-plane faa-tada" style= "font-size: 0.9em;" ></i><span> About myself </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "/essay/" ><i class= "anzhiyufont anzhiyu-icon-lightbulb faa-tada" style= "font-size: 0.9em;" ></i><span> gossip </span></a></li><li><a class= "site-page child faa-parent animated-hover" href= "javascript:toRandomPost()" ><i class= "anzhiyufont anzhiyu-icon-shoe-prints1 faa-tada" style= "font-size: 0.9em;" ></i><span> Look around </span></a></li></ul></div></div><span class= "sidebar-menu-item-title" > label </span><div class= "card-tags" ><div class= "item-headline" ></div><div class= "card-tag-cloud" ><a href= "/tags/Background/" style= "font-size: 0.88rem;" > Background <sup> one </sup></a><a href= "/tags/Butterfly/" style= "font-size: 0.88rem;" > Butterfly <sup> one </sup></a><a href= "/tags/ES/" style= "font-size: 0.88rem;" > ES <sup> two </sup></a><a href= "/tags/ES%E6%8C%87%E5%8D%97/" style= "font-size: 0.88rem;" > ES Guide <sup> two </sup></a><a href= "/tags/GitHub/" style= "font-size: 0.88rem;" > GitHub <sup> one </sup></a><a href= "/tags/Gridea/" style= "font-size: 0.88rem;" > Gridea <sup> one </sup></a><a href= "/tags/Hexo/" style= "font-size: 0.88rem;" > Hexo <sup> one </sup></a><a href= "/tags/Idea/" style= "font-size: 0.88rem;" > Idea <sup> one </sup></a><a href= "/tags/ctf/" style= "font-size: 0.88rem;" > ctf <sup> two </sup></a><a href= "/tags/java/" style= "font-size: 0.88rem;" > java <sup> one </sup></a><a href= "/tags/maven/" style= "font-size: 0.88rem;" > maven <sup> one </sup></a><a href= "/tags/%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7/" style= "font-size: 0.88rem;" > Backup Tools <sup> three </sup></a></div></div><hr/></div></div><div id= "keyboard-tips" ><div class= "keyboardTitle" > Blog Shortcuts </div><div class= "keybordList" ><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift K </div></div><div class= "keyContent" ><div class= "content" > Turn off shortcut key function </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift A </div></div><div class= "keyContent" ><div class= "content" > Opening/closing the centre console </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift M </div></div><div class= "keyContent" ><div class= "content" > Play/pause music </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift D </div></div><div class= "keyContent" ><div class= "content" > Dark/light display mode </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift S </div></div><div class= "keyContent" ><div class= "content" > On site search </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift R </div></div><div class= "keyContent" ><div class= "content" > Random access </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift H </div></div><div class= "keyContent" ><div class= "content" > Back to Home </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift F </div></div><div class= "keyContent" ><div class= "content" > Youlian Fish Pond </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift L </div></div><div class= "keyContent" ><div class= "content" > Friendly link page </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift P </div></div><div class= "keyContent" ><div class= "content" > About this site </div></div></div><div class= "keybordItem" ><div class= "keyGroup" ><div class= "key" > shift I </div></div><div class= "keyContent" ><div class= "content" > Original/local right-click menu </div></div></div></div></div><div id= "rightside" ><div id= "rightside-config-hide" ><button id= "translateLink" type= "button" title= "Simple and complex conversion" > Complex </button><button id= "darkmode" type= "button" title= Light and dark mode conversion ><i class= "anzhiyufont anzhiyu-icon-circle-half-stroke" ></i></button><button id= "hide-aside-btn" type= "button" title= "Switch between single and double columns" ><i class= "anzhiyufont anzhiyu-icon-arrows-left-right" ></i></button></div><div id= "rightside-config-show" ><button id= "rightside-config" type= "button" title= Settings ><i class= "anzhiyufont anzhiyu-icon-gear" ></i></button><button id= "go-up" type= "button" title= Back to top ><i class= "anzhiyufont anzhiyu-icon-arrow-up" ></i></button></div></div><div id= "nav-music" ><a id= "nav-music-hoverTips" onclick= "anzhiyu.musicToggle()" accesskey= "m" > Play music </a><div id= "console-music-bg" ></div><meting-js id= "8152976493" server= "netease" type= "playlist" mutex= "true" preload= "none" theme= "var(--anzhiyu-main)" data-lrctype= "0" order= "random" ></meting-js></div><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= "anzhiyufont anzhiyu-icon-xmark" ></i></button></nav><div class= "is-center" id= "loading-database" ><i class= "anzhiyufont anzhiyu-icon-spinner anzhiyu-pulse-icon" ></i><span> Database loading </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 articles type= "text" /></div></div><hr/><div id= "local-search-results" ></div></div></div><div id= "search-mask" ></div></div><div id= "rightMenu" ><div class= "rightMenu-group rightMenu-small" ><div class= "rightMenu-item" id= "menu-backward" ><i class= "anzhiyufont anzhiyu-icon-arrow-left" ></i></div><div class= "rightMenu-item" id= "menu-forward" ><i class= "anzhiyufont anzhiyu-icon-arrow-right" ></i></div><div class= "rightMenu-item" id= "menu-refresh" ><i class= "anzhiyufont anzhiyu-icon-arrow-rotate-right" style= "font-size: 1rem;" ></i></div><div class= "rightMenu-item" id= "menu-top" ><i class= "anzhiyufont anzhiyu-icon-arrow-up" ></i></div></div><div class= "rightMenu-group rightMenu-line rightMenuPlugin" ><div class= "rightMenu-item" id= "menu-copytext" ><i class= "anzhiyufont anzhiyu-icon-copy" ></i><span> Copy selected text </span></div><div class= "rightMenu-item" id= "menu-pastetext" ><i class= "anzhiyufont anzhiyu-icon-paste" ></i><span> Paste text </span></div><a class= "rightMenu-item" id= "menu-commenttext" ><i class= "anzhiyufont anzhiyu-icon-comment-medical" ></i><span> Quote to comment </span></a><div class= "rightMenu-item" id= "menu-newwindow" ><i class= "anzhiyufont anzhiyu-icon-window-restore" ></i><span> New window opens </span></div><div class= "rightMenu-item" id= "menu-copylink" ><i class= "anzhiyufont anzhiyu-icon-link" ></i><span> Copy Link Address </span></div><div class= "rightMenu-item" id= "menu-copyimg" ><i class= "anzhiyufont anzhiyu-icon-images" ></i><span> Copy this picture </span></div><div class= "rightMenu-item" id= "menu-downloadimg" ><i class= "anzhiyufont anzhiyu-icon-download" ></i><span> Download this picture </span></div><div class= "rightMenu-item" id= "menu-newwindowimg" ><i class= "anzhiyufont anzhiyu-icon-window-restore" ></i><span> New window opens picture </span></div><div class= "rightMenu-item" id= "menu-search" ><i class= "anzhiyufont anzhiyu-icon-magnifying-glass" ></i><span> On site search </span></div><div class= "rightMenu-item" id= "menu-searchBaidu" ><i class= "anzhiyufont anzhiyu-icon-magnifying-glass" ></i><span> Baidu Search </span></div><div class= "rightMenu-item" id= "menu-music-toggle" ><i class= "anzhiyufont anzhiyu-icon-play" ></i><span> Play music </span></div><div class= "rightMenu-item" id= "menu-music-back" ><i class= "anzhiyufont anzhiyu-icon-backward" ></i><span> Switch to the previous song </span></div><div class= "rightMenu-item" id= "menu-music-forward" ><i class= "anzhiyufont anzhiyu-icon-forward" ></i><span> Switch to the next track </span></div><div class= "rightMenu-item" id= "menu-music-playlist" onclick= "window.open(" https://y.qq.com/n/ryqq/playlist/8802438608" ;, & quot;_ blank"); " style= "display: none;" ><i class= "anzhiyufont anzhiyu-icon-radio" ></i><span> View all songs </span></div><div class= "rightMenu-item" id= "menu-music-copyMusicName" ><i class= "anzhiyufont anzhiyu-icon-copy" ></i><span> Copy Song Name </span></div></div><div class= "rightMenu-group rightMenu-line rightMenuOther" ><a class= "rightMenu-item menu-link" id= "menu-randomPost" ><i class= "anzhiyufont anzhiyu-icon-shuffle" ></i><span> Look around </span></a><a class= "rightMenu-item menu-link" href= "/categories/" ><i class= "anzhiyufont anzhiyu-icon-cube" ></i><span> Blog Category </span></a><a class= "rightMenu-item menu-link" href= "/tags/" ><i class= "anzhiyufont anzhiyu-icon-tags" ></i><span> Article Label </span></a></div><div class= "rightMenu-group rightMenu-line rightMenuOther" ><a class= "rightMenu-item" id= "menu-copy" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-copy" ></i><span> Copy address </span></a><a class= "rightMenu-item" id= "menu-commentBarrage" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-message" ></i><span class= "menu-commentBarrage-text" > Close hot reviews </span></a><a class= "rightMenu-item" id= "menu-darkmode" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-circle-half-stroke" ></i><span class= "menu-darkmode-text" > Dark Mode </span></a><a class= "rightMenu-item" id= "menu-translate" href= "javascript:void(0);" ><i class= "anzhiyufont anzhiyu-icon-language" ></i><span> Convert to Traditional </span></a></div></div><div id= "rightmenu-mask" ></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.cbd.int/ @fancyapps/ ui@5.0.20 /dist/fancybox/fancybox.umd.js" ></script><script src= " https://cdn.cbd.int/instant.page @5.2.0/instantpage.js" type= "module" ></script><script src= " https://cdn.cbd.int/vanilla-lazyload @17.8.4/dist/lazyload.iife.min.js" ></script><script src= " https://cdn.cbd.int/node-snackbar @0.1.16/dist/snackbar.min.js" ></script><canvas id= "universe" ></canvas><script async src= " https://npm.elemecdn.com/anzhiyu-theme-static @1.0.0/dark/dark.js" ></script><script> //Eliminate console printing
var HoldLog = console . log ;
console . log = function () {};
let now1 = new Date ();
queueMicrotask (() => {
const Log = function () {
HoldLog . apply ( console , arguments );
}; //Export logs before recovery
const grt = new Date ( " 04/01/2021 00:00:00 " ); //Modify your website establishment time or website launch time here
now1 . setTime ( now1 . getTime () + two hundred and fifty );
const days = ( now1 - grt ) / one thousand / sixty / sixty / twenty-four ;
const dnum = Math . floor ( days );
const ascll = [
`Welcome to Anchi Fish` ,
`Life is bright and everything is lovely` ,
`
█████╗ ███╗ ██╗███████╗██╗ ██╗██╗██╗ ██╗██╗ ██╗
██╔══██╗████╗ ██║╚══███╔╝██║ ██║██║╚██╗ ██╔╝██║ ██║
███████║██╔██╗ ██║ ███╔╝ ███████║██║ ╚████╔╝ ██║ ██║
██╔══██║██║╚██╗██║ ███╔╝ ██╔══██║██║ ╚██╔╝ ██║ ██║
██║ ██║██║ ╚████║███████╗██║ ██║██║ ██║ ╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝
` ,
" Online " ,
dnum ,
" day " ,
" © 2020 By Anzhiyu V1.6.8 " ,
];
const ascll2 = [ `NCC2-036` , `Call the front camera to take a picture successfully and identify it as [Little Stupid]` , `Photo captured: ` , ` 🤪` ];
setTimeout (
Log . bind (
console ,
`\n%c ${ ascll [ zero ]} %c ${ ascll [ one ]} %c ${ ascll [ two ]} %c ${ ascll [ three ]} %c ${ ascll [ four ]} %c ${ ascll [ five ]} \n\n%c ${ ascll [ six ]} \n` ,
" color:#425AEF " ,
"" ,
" color:#425AEF " ,
" color:#425AEF " ,
"" ,
" color:#425AEF " ,
""
)
);
setTimeout (
Log . bind (
console ,
`%c ${ ascll2 [ zero ]} %c ${ ascll2 [ one ]} %c \n ${ ascll2 [ two ]} %c\n ${ ascll2 [ three ]} \n` ,
" color:white; background-color:#4fd953 " ,
"" ,
"" ,
' background:url(" https://npm.elemecdn.com/anzhiyu-blog @1.1.6/img/post/common/tinggge.gif") no-repeat;font-size:450% '
)
);
setTimeout ( Log . bind ( console , " %C Welcome% c Hello, little fool " , " color:white; background-color:#4f90d9 " , "" ));
setTimeout (
console . warn . bind (
console ,
" %c ⚡ Powered by Anzhiyu% c You are visiting dongkcs' blog " ,
" color:white; background-color:#f0ad4e " ,
""
)
);
setTimeout ( Log . bind ( console , " %C W23-12% c You have opened the console " , " color:white; background-color:#4f90d9 " , "" ));
setTimeout (
console . warn . bind ( console , " %C S013-782% c You are now under monitoring " , " color:white; background-color:#d9534f " , "" )
);
}); </script><script async src= "/anzhiyu/random.js" ></script><script src= "/js/search/local-search.js" ></script><div class= "js-pjax" ><input type= "hidden" name= "page-type" id= "page-type" value= "anzhiyu" ></div><script> var visitorMail = " visitor@anheyu.com " ;
</script><script async data-pjax src= " https://cdn.cbd.int/anzhiyu-theme-static @1.0.0/waterfall/waterfall.js" ></script><script src= " https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/qrcodejs/1.0.0/qrcode.min.js " ></script><script src= "/js/anzhiyu/right_click_menu.js" ></script><link rel= "stylesheet" href= " https://cdn.cbd.int/anzhiyu-theme-static @1.1.9/icon/ali_iconfont_css.css" ><link rel= "stylesheet" href= " https://cdn3.codesign.qq.com/icons/X2bzpZvRWkZkAaV/latest/iconfont.css " ><link rel= "stylesheet" href= " https://cdn3.codesign.qq.com/icons/DVbAE95DNvjPlze/latest/iconfont.css " ><link rel= "stylesheet" href= "/css/dongkcs.css" ><link rel= "stylesheet" href= " https://cdn.cbd.int/anzhiyu-theme-static @1.0.0/aplayer/APlayer.min.css" media= "print" onload= "this.media='all'" ><script src= " https://cdn.cbd.int/anzhiyu-blog-static @1.0.1/js/APlayer.min.js" ></script><script src= " https://cdn.cbd.int/hexo-anzhiyu-music @1.0.1/assets/js/Meting2.min.js" ></script><script src= " https://cdn.cbd.int/pjax @0.2.8/pjax.min.js" ></script><script> let pjaxSelectors = [ " head > title " , " #config-diff " , " #body-wrap " , " #rightside-config-hide " , " #rightside-config-show " , " .js-pjax " ]
var pjax = new Pjax ({
elements : ' a:not([target="_blank"]) ' ,
selectors : pjaxSelectors ,
cacheBust : false ,
analytics : false ,
scrollRestoration : false
})
document . addEventListener ( ' pjax:send ' , function () {
// removeEventListener scroll
anzhiyu . removeGlobalFnEvent ( ' pjax ' )
anzhiyu . removeGlobalFnEvent ( ' themeChange ' )
document . getElementById ( ' rightside ' ). classList . remove ( ' rightside-show ' )
if ( window . aplayers ) {
for ( let i = zero ; i < window . aplayers . length ; i ++ ) {
if ( ! window . aplayers [ i ]. options . fixed ) {
window . aplayers [ i ]. destroy ()
}
}
}
typeof typed === ' object ' && typed . destroy ()
//reset readmode
const $bodyClassList = document . body . classList
$bodyClassList . contains ( ' read-mode ' ) && $bodyClassList . remove ( ' read-mode ' )
})
document . addEventListener ( ' pjax:complete ' , function () {
window . refreshFn ()
document . querySelectorAll ( ' script[data-pjax] ' ). forEach ( item => {
const newScript = document . createElement ( ' script ' )
const content = item . text || item . textContent || item . innerHTML || ""
Array . from ( item . attributes ). forEach ( attr => newScript . setAttribute ( attr . name , attr . value ))
newScript . appendChild ( document . createTextNode ( content ))
item . parentNode . replaceChild ( newScript , item )
})
GLOBAL_CONFIG . islazyload && window . lazyLoadInstance . update ()
typeof panguInit === ' function ' && panguInit ()
// google analytics
typeof gtag === ' function ' && gtag ( ' config ' , '' , { ' page_path ' : window . location . pathname });
// baidu analytics
typeof _hmt === ' object ' && _hmt . push ([ ' _trackPageview ' , window . location . pathname ]);
typeof loadMeting === ' function ' && document . getElementsByClassName ( ' aplayer ' ). length && loadMeting ()
// prismjs
typeof Prism === ' object ' && Prism . highlightAll ()
})
document . addEventListener ( ' pjax:error ' , e => {
if ( e . request . status === four hundred and four ) {
pjax . loadUrl ( ' /404.html ' )
}
}) </script><script charset= "UTF-8" src= " https://cdn.cbd.int/anzhiyu-theme-static @1.1.5/accesskey/accesskey.js" ></script><div id= "greetingBox" ></div></div><div id= "popup-window" ><div class= "popup-window-title" > notice </div><div class= "popup-window-divider" ></div><div class= "popup-window-content" ><div class= "popup-tip" > How do you do </div><div class= "popup-link" ><i class= "anzhiyufont anzhiyu-icon-arrow-circle-right" ></i></div></div></div> <!-- hexo injector body_end start --> <script data-pjax >
function butterfly_clock_anzhiyu_injector_config (){
var parent_div_git = document . getElementsByClassName ( ' sticky_layout ' )[ zero ];
var item_html = ' <div class="card-widget card-clock"><div class="card-glass"><div class="card-background"><div class="card-content"><div id="hexo_electric_clock"><img class="entered loading" id="card-clock-loading" src= "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror="this.onerror=null,this.src="/img/404.jpg"" data-lazy-src=" https://cdn.cbd.int/hexo-butterfly-clock-anzhiyu/lib/loading.gif " style="height: 120px; width: 100%; " data-ll-status="loading"/></div></div></div></div></div> ' ;
console . log ( ' Attached buterfly_clock_anzhi ' )
if ( parent_div_git ) {
parent_div_git . insertAdjacentHTML ( " afterbegin " , item_html )
}
}
var elist = ' null ' . split ( ' , ' );
var cpage = location . pathname ;
var epage = ' / ' ;
var qweather_key = ' f05a49d5e45d4a5a9f1c721410259b0f ' ;
var gaud_map_key = ' 94f376470c44c4c5daad3e54b1aef1a1 ' ;
var baidu_ak_key = ' undefined ' ;
var flag = zero ;
var clock_rectangle = ' 112.982279,28.19409 ' ;
var clock_default_rectangle_enable = ' false ' ;
for ( var i = zero ; i < elist . length ; i ++ ){
if ( cpage . includes ( elist [ i ])){
flag ++ ;
}
}
if (( epage === ' all ' ) && ( flag == zero )){
butterfly_clock_anzhiyu_injector_config ();
}
else if ( epage === cpage ){
butterfly_clock_anzhiyu_injector_config ();
}
</script><script src= " https://widget.qweather.net/simple/static/js/he-simple-common.js?v=2.0 " ></script><script data-pjax src= " https://cdn.cbd.int/hexo-butterfly-clock-anzhiyu/lib/clock.min.js " ></script> <!-- hexo injector body_end end --> </body></html>