Skip to content

WuLC/WuLC.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<!doctype html><html lang=zh-CN><meta charset=UTF-8><meta content="width=device-width" name=viewport><meta content=#222 name=theme-color><meta content="Hexo 8.1.1" name=generator><script charset=UTF-8 id=LA_COLLECT src=https://sdk.51.la/js-sdk-pro.min.js></script><script>LA.init({id: "JmI6QmP3fMkLet6B",ck: "JmI6QmP3fMkLet6B"})</script><link crossorigin href=https://cdnjs.cloudflare.com rel=preconnect><link href=/imgs/favicon.ico rel=apple-touch-icon sizes=180x180><link href=/imgs/favicon.ico rel=icon sizes=32x32 type=image/png><link href=/imgs/favicon.ico rel=icon sizes=16x16 type=image/png><link color=#222 href=/imgs/favicon.ico rel=mask-icon><meta content=VcC-PHB4Om9SIR3Roqm7k1N-SHiBtQ6c3LJLVMKgU4U name=google-site-verification><meta content=cc79d2405dbf4293a4d12323dfb8ef24 name=msvalidate.01><meta content=z0l07oey8Mtx46FB name=baidu-site-verification><style>:root{--body-bg-color:#f5f7f9;--content-bg-color:#fff;--card-bg-color:#f5f5f5;--text-color:#555;--selection-bg:#262a30;--selection-color:#eee;--blockquote-color:#666;--link-color:#555;--link-hover-color:#222;--brand-color:#fff;--brand-hover-color:#fff;--table-row-odd-bg-color:#f9f9f9;--table-row-hover-bg-color:#f5f5f5;--menu-item-bg-color:#f5f5f5;--theme-color:#222;--btn-default-bg:#fff;--btn-default-color:#555;--btn-default-border-color:#555;--btn-default-hover-bg:#222;--btn-default-hover-color:#fff;--btn-default-hover-border-color:#222;--highlight-background:#f3f3f3;--highlight-foreground:#444;--highlight-gutter-background:#e1e1e1;--highlight-gutter-foreground:#555;color-scheme:light}html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background:0 0}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template,[hidden]{display:none}::selection{background:var(--selection-bg);color:var(--selection-color)}html,body{height:100%}body{background:var(--body-bg-color);box-sizing:border-box;color:var(--text-color);min-height:100%;font-family:Lato,PingFang SC,Microsoft YaHei,sans-serif;font-size:1em;line-height:2;transition:padding .2s ease-in-out;position:relative}h1,h2,h3,h4,h5,h6{margin:30px 0 15px;font-family:Lato,PingFang SC,Microsoft YaHei,sans-serif;font-weight:700;line-height:1.5}h1{font-size:1.5em}h2{font-size:1.375em}h3{font-size:1.25em}h4{font-size:1.125em}h5{font-size:1em}h6{font-size:.875em}a{color:var(--link-color);cursor:pointer;overflow-wrap:break-word;border-bottom:1px solid #999;outline:0;text-decoration:none}a:hover{border-bottom-color:var(--link-hover-color);color:var(--link-hover-color)}iframe,img,video,embed{max-width:100%;margin-left:auto;margin-right:auto;display:block}hr{background-image:repeating-linear-gradient(-45deg,#ddd,#ddd 4px,#0000 4px 8px);border:0;height:3px;margin:40px 0}blockquote{color:var(--blockquote-color);border-left:4px solid #ddd;margin:0;padding:0 15px}blockquote cite:before{content:"-";padding:0 5px}dt{font-weight:700}dd{margin:0;padding:0}.table-container{overflow:auto}table{border-collapse:collapse;border-spacing:0;width:100%;margin:0 0 20px;font-size:.875em}tbody tr:nth-of-type(odd){background:var(--table-row-odd-bg-color)}tbody tr:hover{background:var(--table-row-hover-bg-color)}caption,th,td{padding:8px}th,td{border:1px solid #ddd;border-bottom-width:3px}th{padding-bottom:10px;font-weight:700}td{border-bottom-width:1px}.btn{background:var(--btn-default-bg);border:2px solid var(--btn-default-border-color);color:var(--btn-default-color);border-radius:2px;padding:0 20px;font-size:.875em;line-height:2;transition:background-color .2s ease-in-out;display:inline-block}.btn:hover{background:var(--btn-default-hover-bg);border-color:var(--btn-default-hover-border-color);color:var(--btn-default-hover-color)}.btn+.btn{margin:0 0 8px 8px}.btn .fa-fw{text-align:left;width:1.28571em}.toggle{line-height:0}.toggle .toggle-line{background:#fff;width:100%;height:2px;transition:left .4s,opacity .4s,top .4s,transform .4s,width .4s;display:block;position:relative;top:0;left:0}.toggle .toggle-line:first-child{margin-top:1px}.toggle .toggle-line:not(:first-child){margin-top:4px}.toggle.toggle-arrow :first-child{width:50%;top:2px;left:50%;transform:rotate(45deg)}.toggle.toggle-arrow :last-child{width:50%;top:-2px;left:50%;transform:rotate(-45deg)}.toggle.toggle-close :nth-child(2){opacity:0}.toggle.toggle-close :first-child{top:6px;transform:rotate(45deg)}.toggle.toggle-close :last-child{top:-6px;transform:rotate(-45deg)}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#444;background:#f3f3f3}.hljs-comment{color:#697070}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:700}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#800}.hljs-title,.hljs-section{color:#800;font-weight:700}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.highlight:hover .copy-btn,.code-container:hover .copy-btn{opacity:1}.code-container{position:relative}.code-lang{opacity:.1;pointer-events:none;font-size:40px;line-height:1;position:absolute;right:5px}.copy-btn{color:#333;cursor:pointer;opacity:0;background:#fff;border:0;padding:2px 6px;font-size:.8125em;line-height:1.6;transition:opacity .2s ease-in-out;position:absolute;top:0;right:0}code,kbd,figure.highlight,pre{background:var(--highlight-background);color:var(--highlight-foreground)}figure.highlight,pre{margin:0 auto 20px;line-height:1.6}figure.highlight figcaption,pre .caption{background:var(--highlight-gutter-background);color:var(--highlight-foreground);padding:.5em;font-size:.875em;line-height:1.2;display:flow-root}figure.highlight figcaption a,pre .caption a{color:var(--highlight-foreground);float:right}figure.highlight figcaption a:hover,pre .caption a:hover{border-bottom-color:var(--highlight-foreground)}pre,code{font-family:consolas,Menlo,monospace,PingFang SC,Microsoft YaHei}code{overflow-wrap:break-word;border-radius:3px;padding:2px 4px;font-size:.875em}kbd{white-space:nowrap;border:2px solid #ccc;border-radius:.2em;padding:.1em .3em;font-family:inherit;box-shadow:.1em .1em .2em #0000001a}figure.highlight{color-scheme:light;position:relative;overflow:auto}figure.highlight pre{border:0;margin:0;padding:10px 0}figure.highlight table{border:0;width:auto;margin:0}figure.highlight td{border:0;padding:0}figure.highlight .gutter{-webkit-user-select:none;user-select:none}figure.highlight .gutter pre{background:var(--highlight-gutter-background);color:var(--highlight-gutter-foreground);text-align:right;padding-left:10px;padding-right:10px}figure.highlight .code pre{width:100%;padding-left:10px}figure.highlight .marked{background:#0000004d}pre .caption{margin-bottom:10px}.gist table{width:auto}.gist table td{border:0}pre{padding:10px;overflow:auto}pre code{text-shadow:none;background:0 0;padding:0}.blockquote-center{text-align:center;border-left:0;margin:40px 0;padding:0;position:relative}.blockquote-center:before,.blockquote-center:after{opacity:.6;width:100%;line-height:1;position:absolute;left:0}.blockquote-center:before{text-align:left;content:"";border-top:1px solid #ccc;font-family:"Font Awesome 7 Free";font-weight:900;top:-20px}.blockquote-center:after{text-align:right;content:"";border-bottom:1px solid #ccc;font-family:"Font Awesome 7 Free";font-weight:900;bottom:-20px}.blockquote-center p,.blockquote-center div{text-align:center}.group-picture{margin-bottom:20px}.group-picture .group-picture-row{gap:3px;margin-bottom:3px;display:flex}.group-picture .group-picture-column{flex:1}.group-picture .group-picture-column img{object-fit:cover;width:100%;height:100%;margin:0}.post-body .label{color:#555;padding:0 2px}.post-body .label.default{background:#f0f0f0}.post-body .label.primary{background:#efe6f7}.post-body .label.info{background:#e5f2f8}.post-body .label.success{background:#e7f4e9}.post-body .label.warning{background:#fcf6e1}.post-body .label.danger{background:#fae8eb}.post-body .link-grid{grid-gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:20px;padding:1rem;display:grid}.post-body .link-grid .link-grid-container{border:solid #ddd;min-width:0;min-height:5rem;padding:.5rem;transition:background .3s;position:relative;box-shadow:1rem 1rem .5rem #00000080}.post-body .link-grid .link-grid-container:hover{background:var(--card-bg-color);animation:.5s next-shake}.post-body .link-grid .link-grid-container:active{transform:translate(.2rem,.2rem);box-shadow:.5rem .5rem .25rem #00000080}.post-body .link-grid .link-grid-container .link-grid-image{box-sizing:border-box;border:1px solid #ddd;border-radius:50%;width:5rem;height:5rem;padding:3px;position:absolute}.post-body .link-grid .link-grid-container p{margin:0 1rem 0 6rem}.post-body .link-grid .link-grid-container p:first-of-type{font-size:1.2em}.post-body .link-grid .link-grid-container p:last-of-type{opacity:.7;font-size:.8em;line-height:1.3rem}.post-body .link-grid .link-grid-container a{border:0;width:100%;height:100%;position:absolute;top:0;left:0}@keyframes next-shake{0%{transform:translate(1pt,1pt)rotate(0)}10%{transform:translate(-1pt,-2pt)rotate(-1deg)}20%{transform:translate(-3pt)rotate(1deg)}30%{transform:translate(3pt,2pt)rotate(0)}40%{transform:translate(1pt,-1pt)rotate(1deg)}50%{transform:translate(-1pt,2pt)rotate(-1deg)}60%{transform:translate(-3pt,1pt)rotate(0)}70%{transform:translate(3pt,1pt)rotate(-1deg)}80%{transform:translate(-1pt,-1pt)rotate(1deg)}90%{transform:translate(1pt,2pt)rotate(0)}to{transform:translate(1pt,-2pt)rotate(-1deg)}}.post-body .note{border:1px solid #eee;border-left-width:5px;border-radius:3px;margin-bottom:20px;padding:1em;position:relative}.post-body .note summary{cursor:pointer;outline:0}.post-body .note summary p{display:inline}.post-body .note h2,.post-body .note h3,.post-body .note h4,.post-body .note h5,.post-body .note h6{border-bottom:initial;margin:0;padding-top:0}.post-body .note :first-child{margin-top:0}.post-body .note :last-child{margin-bottom:0}.post-body .note.default{border-left-color:#777}.post-body .note.default h2,.post-body .note.default h3,.post-body .note.default h4,.post-body .note.default h5,.post-body .note.default h6{color:#777}.post-body .note.primary{border-left-color:#6f42c1}.post-body .note.primary h2,.post-body .note.primary h3,.post-body .note.primary h4,.post-body .note.primary h5,.post-body .note.primary h6{color:#6f42c1}.post-body .note.info{border-left-color:#428bca}.post-body .note.info h2,.post-body .note.info h3,.post-body .note.info h4,.post-body .note.info h5,.post-body .note.info h6{color:#428bca}.post-body .note.success{border-left-color:#5cb85c}.post-body .note.success h2,.post-body .note.success h3,.post-body .note.success h4,.post-body .note.success h5,.post-body .note.success h6{color:#5cb85c}.post-body .note.warning{border-left-color:#f0ad4e}.post-body .note.warning h2,.post-body .note.warning h3,.post-body .note.warning h4,.post-body .note.warning h5,.post-body .note.warning h6{color:#f0ad4e}.post-body .note.danger{border-left-color:#d9534f}.post-body .note.danger h2,.post-body .note.danger h3,.post-body .note.danger h4,.post-body .note.danger h5,.post-body .note.danger h6{color:#d9534f}.post-body .tabs{margin-bottom:20px}.post-body .tabs,.tabs-comment{padding-top:10px}.post-body .tabs ul.nav-tabs,.tabs-comment ul.nav-tabs{background:var(--content-bg-color);z-index:5;flex-wrap:wrap;justify-content:center;margin:0;padding:0;display:flex;position:sticky;top:0}@media (width<=413px){.post-body .tabs ul.nav-tabs,.tabs-comment ul.nav-tabs{margin-bottom:5px;display:block}}.post-body .tabs ul.nav-tabs li.tab,.tabs-comment ul.nav-tabs li.tab{border:1px solid #0000;border-top-width:3px;border-bottom-color:#ddd;border-radius:0;flex-grow:1;list-style-type:none}@media (width<=413px){.post-body .tabs ul.nav-tabs li.tab,.tabs-comment ul.nav-tabs li.tab{border:1px solid #0000;border-left-width:3px;border-radius:0}}.post-body .tabs ul.nav-tabs li.tab a,.tabs-comment ul.nav-tabs li.tab a{border-bottom:initial;text-align:center;padding:.25em .75em;line-height:1.8;transition:all .2s ease-out;display:block}.post-body .tabs ul.nav-tabs li.tab a i[class^=fa],.tabs-comment ul.nav-tabs li.tab a i[class^=fa]{width:1.28571em}.post-body .tabs ul.nav-tabs li.tab.active,.tabs-comment ul.nav-tabs li.tab.active{border-color:#fc6423 #ddd #0000}@media (width<=413px){.post-body .tabs ul.nav-tabs li.tab.active,.tabs-comment ul.nav-tabs li.tab.active{border-color:#ddd #ddd #ddd #fc6423}}.post-body .tabs ul.nav-tabs li.tab.active a,.tabs-comment ul.nav-tabs li.tab.active a{cursor:default}.post-body .tabs .tab-content,.tabs-comment .tab-content{border:1px solid #ddd;border-top-color:#0000;border-radius:0}@media (width<=413px){.post-body .tabs .tab-content,.tabs-comment .tab-content{border-top-color:#ddd;border-radius:0}}.post-body .tabs .tab-content .tab-pane,.tabs-comment .tab-content .tab-pane{padding:20px 20px 0}.post-body .tabs .tab-content .tab-pane:not(.active),.tabs-comment .tab-content .tab-pane:not(.active){display:none}.pagination .prev,.pagination .next,.pagination .page-number,.pagination .space{margin:-1px 10px 0;padding:0 10px;display:inline-block}@media (width<=767px){.pagination .prev,.pagination .next,.pagination .page-number,.pagination .space{margin:0 5px}}.pagination .page-number.current{color:var(--content-bg-color);background:#ccc;border-color:#ccc}.pagination{text-align:center;border-top:1px solid #eee;margin:120px 0 0}.pagination .prev,.pagination .next,.pagination .page-number{border-top:1px solid #eee;border-bottom:0;transition:border-color .2s ease-in-out}.pagination .prev:hover,.pagination .next:hover,.pagination .page-number:hover{border-top-color:var(--link-hover-color)}@media (width<=767px){.pagination{border-top:0}.pagination .prev,.pagination .next,.pagination .page-number{border-top:0;border-bottom:1px solid #eee}.pagination .prev:hover,.pagination .next:hover,.pagination .page-number:hover{border-bottom-color:var(--link-hover-color)}}.pagination .space{margin:0;padding:0}.comments{margin-top:60px;overflow:hidden}.comment-button-group{flex-wrap:wrap;justify-content:center;margin:1em 0;display:flex}.comment-button-group .comment-button{margin:.1em .2em}.comment-button-group .comment-button.active{background:var(--btn-default-hover-bg);border-color:var(--btn-default-hover-border-color);color:var(--btn-default-hover-color)}.comment-position{display:none}.comment-position.active{display:block}.tabs-comment{margin-top:4em;padding-top:0}.tabs-comment .comments{margin-top:0;padding-top:0}.headband{background:var(--theme-color);height:3px}@media (width<=991px){.headband{display:none}}.site-brand-container{flex-shrink:0;padding:0 10px;display:flex}.use-motion .column,.use-motion .site-brand-container .toggle{opacity:0}.site-meta{text-align:center;flex-grow:1}@media (width<=767px){.site-meta{text-align:center}}.custom-logo-image{margin-top:20px}@media (width<=991px){.custom-logo-image{display:none}}.brand{color:var(--brand-color);border-bottom:0;padding:0;display:inline-block}.brand:hover{color:var(--brand-hover-color)}.site-title{margin:0;font-family:Lato,PingFang SC,Microsoft YaHei,sans-serif;font-size:1.375em;font-weight:400;line-height:1.5}.site-subtitle{color:#ddd;margin:10px 10px 0;font-size:.8125em}.use-motion .site-title,.use-motion .site-subtitle,.use-motion .custom-logo-image{opacity:0;position:relative;top:-10px}.site-nav-toggle,.site-nav-right{display:none}@media (width<=767px){.site-nav-toggle,.site-nav-right{flex-direction:column;justify-content:center;display:flex}}.site-nav-toggle .toggle,.site-nav-right .toggle{color:var(--text-color);width:22px;padding:10px}.site-nav-toggle .toggle .toggle-line,.site-nav-right .toggle .toggle-line{background:var(--text-color);border-radius:1px}@media (width<=767px){.site-nav{--scroll-height:0;visibility:hidden;height:0;transition:height .2s ease-in-out,visibility .2s ease-in-out;overflow:hidden}body:not(.site-nav-on) .site-nav .animated{animation:none}body.site-nav-on .site-nav{height:var(--scroll-height);visibility:unset}}.menu{text-align:center;margin:0;padding:1em 0}.menu-item{margin:0 10px;list-style:none;display:inline-block}@media (width<=767px){.menu-item{margin-top:10px;display:block}.menu-item.menu-item-search{display:none}}.menu-item a{border-bottom:0;font-size:.8125em;transition:border-color .2s ease-in-out;display:block}.menu-item a:hover,.menu-item a.menu-item-active{background:var(--menu-item-bg-color)}.menu-item i[class^=fa]{margin-right:8px}.menu-item .badge{color:var(--content-bg-color);text-shadow:1px 1px #0000001a;background:#ccc;border-radius:10px;margin-left:.35em;padding:2px 5px;font-weight:700;line-height:1}.use-motion .menu-item{visibility:hidden}@media (width<=991px){.sidebar{left:-320px}.sidebar-active .sidebar{left:0}.sidebar{z-index:20;background:#222;width:320px;max-height:100vh;transition:left .2s ease-out,right .2s ease-out;position:fixed;top:0;bottom:0;overflow-y:auto;box-shadow:inset 0 2px 6px #000}.sidebar a{color:#999;border-bottom-color:#555}.sidebar a:hover{color:#eee;border-bottom-color:#eee}.links-of-author:not(:first-child){margin-top:15px}.links-of-author a{vertical-align:middle;border-bottom-color:#555;margin-bottom:10px;margin-right:10px;display:inline-block}.links-of-author a:before{content:" ";background:#f285fb;border-radius:50%;width:4px;height:4px;margin-right:3px;display:inline-block;transform:translateY(-2px)}.links-of-blogroll-item{padding:0 5px}.popular-posts .popular-posts-item .popular-posts-link:hover{background:0 0}.sidebar-dimmer{opacity:0;visibility:hidden;z-index:10;background:#000;width:100%;height:100%;transition:visibility .4s,opacity .4s;position:fixed;top:0;left:0}.sidebar-active .sidebar-dimmer{opacity:.7;visibility:visible}}.sidebar-inner{color:#999;text-align:center;flex-direction:column;justify-content:center;padding:18px 10px;display:flex}.sidebar-toggle{cursor:pointer;opacity:.6;z-index:30;background:#222;width:16px;height:16px;padding:5px;position:fixed;bottom:61px;left:30px}@media (width<=991px){.sidebar-toggle{left:20px}}.sidebar-toggle:hover{opacity:.8}@media (width<=991px){.sidebar-toggle{opacity:.8}}.sidebar-toggle:hover .toggle-line{background:#fc6423}@media (any-hover:hover){body:not(.sidebar-active) .sidebar-toggle:hover :first-child{width:50%;top:2px;left:50%;transform:rotate(45deg)}body:not(.sidebar-active) .sidebar-toggle:hover :last-child{width:50%;top:-2px;left:50%;transform:rotate(-45deg)}}.sidebar-active .sidebar-toggle :nth-child(2){opacity:0}.sidebar-active .sidebar-toggle :first-child{top:6px;transform:rotate(45deg)}.sidebar-active .sidebar-toggle :last-child{top:-6px;transform:rotate(-45deg)}.sidebar-nav{pointer-events:none;visibility:hidden;height:0;margin:0;padding-left:0;font-size:.875em;transition:height .2s ease-in-out,visibility .2s ease-in-out;overflow:hidden}.sidebar-nav-active .sidebar-nav{pointer-events:unset;height:calc(2em + 1px);visibility:unset}.sidebar-nav li{color:var(--text-color);cursor:pointer;border-bottom:1px solid #0000;transition:border-bottom-color .2s ease-in-out,color .2s ease-in-out;display:inline-block}.sidebar-nav li.sidebar-nav-overview{margin-left:10px}.sidebar-nav li:hover{color:#fc6423}.sidebar-toc-active .sidebar-nav-toc,.sidebar-overview-active .sidebar-nav-overview{color:#fc6423;border-bottom-color:#fc6423;transition-delay:.2s}.sidebar-toc-active .sidebar-nav-toc:hover,.sidebar-overview-active .sidebar-nav-overview:hover{color:#fc6423}.sidebar-panel-container{flex:1;align-items:start;padding-top:0;transition:padding-top .2s ease-in-out;display:grid;overflow:hidden auto}.sidebar-nav-active .sidebar-panel-container{padding-top:20px}.sidebar-panel{opacity:0;pointer-events:none;visibility:hidden;grid-area:1/1;height:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility .2s ease-in-out;animation:.2s ease-in-out deactivate-sidebar-panel;overflow:hidden;transform:translateY(0)}.sidebar-nav-active .sidebar-panel,.sidebar-overview-active .sidebar-panel.post-toc-wrap{transform:translateY(-20px)}.sidebar-overview-active:not(.sidebar-nav-active) .sidebar-panel.post-toc-wrap{transition-delay:0s,.2s,0s}.sidebar-overview-active .sidebar-panel.site-overview-wrap,.sidebar-toc-active .sidebar-panel.post-toc-wrap{opacity:1;pointer-events:unset;height:auto;visibility:unset;transition-delay:.2s,.2s,0s;animation-name:activate-sidebar-panel;transform:translateY(0)}.sidebar-panel.site-overview-wrap{flex-direction:column;justify-content:flex-start;gap:10px;display:flex}@keyframes deactivate-sidebar-panel{0%{height:var(--inactive-panel-height,0)}to{height:var(--active-panel-height,0)}}@keyframes activate-sidebar-panel{0%{height:var(--inactive-panel-height,auto)}to{height:var(--active-panel-height,auto)}}.post-toc{font-size:.875em}.post-toc ol{text-align:left;margin:0;padding:0 2px 0 10px;list-style:none}.post-toc ol>:last-child{margin-bottom:5px}.post-toc ol>ol{padding-left:0}.post-toc ol a{transition:all .2s ease-in-out}.post-toc .nav-item{text-overflow:ellipsis;white-space:nowrap;line-height:1.8;overflow:hidden}.post-toc .nav .nav-child{--height:0;opacity:0;visibility:hidden;height:0;transition:all .2s ease-in-out;overflow:hidden}.post-toc .nav .active>.nav-child{height:var(--height,auto);opacity:1;visibility:unset}.post-toc .nav .active>a{color:#fc6423;border-bottom-color:#fc6423}.post-toc .nav .active-current>a,.post-toc .nav .active-current>a:hover{color:#fc6423}.site-author-image{border:1px solid #eee;max-width:120px;padding:2px}.site-author-name{color:var(--text-color);margin:0;font-weight:600}.site-description{color:#999;margin-top:0;font-size:.8125em}.site-state{flex-wrap:wrap;justify-content:center;line-height:1.4;display:flex}.site-state-item{padding:0 15px}.site-state-item a{border-bottom:0;display:block}.site-state-item-count{font-size:1em;font-weight:600;display:block}.site-state-item-name{color:#999;font-size:.8125em}.sidebar .sidebar-button:not(:first-child){margin-top:15px}.sidebar .sidebar-button button{color:#fc6423;cursor:pointer;background:0 0;border:1px solid #fc6423;border-radius:4px;padding:0 15px;line-height:2}.sidebar .sidebar-button button:hover{color:#fff;background:#fc6423}.sidebar .sidebar-button button i[class^=fa]{margin-right:5px}.links-of-author a{font-size:.8125em}.links-of-author i[class^=fa]{margin-right:2px}.cc-license .cc-opacity{opacity:.7;border-bottom:0}.cc-license .cc-opacity:hover{opacity:.9}.cc-license img{display:inline-block}.links-of-blogroll{font-size:.8125em}.links-of-blogroll-title{font-size:.875em;font-weight:600}.links-of-blogroll-list{flex-flow:column wrap;justify-content:center;gap:5px;margin:5px 0 0;padding:0;list-style:none;display:flex}.links-of-blogroll-item{max-width:100%}.links-of-blogroll-item a{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.sidebar-post-related{padding:18px 0 0;font-size:.8125em}.popular-posts{text-align:left;margin:0;padding:1em 0}.popular-posts .popular-posts-item{display:block}.popular-posts .popular-posts-item .popular-posts-link{border-bottom:0;padding:5px 20px;transition:background .2s ease-in-out;display:block}.popular-posts .popular-posts-item .popular-posts-link:hover{background:var(--menu-item-bg-color)}.popular-posts .popular-posts-item .popular-posts-time{color:#999}.footer{color:#999;padding:20px 0;font-size:.875em;transition:left .2s ease-in-out,right .2s ease-in-out}.footer.footer-fixed{position:absolute;bottom:0;left:0;right:0}.footer-inner{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;width:calc(100% - 20px);margin:0 auto;display:flex}@media (width<=767px){.footer-inner{width:auto}}@media (width>=1200px){.footer-inner{width:1160px}}@media (width>=1600px){.footer-inner{width:73%}}.use-motion .footer{opacity:0}.languages{font-size:1.125em;display:inline-block;position:relative}.languages .lang-select-label span{margin:0 .5em}.languages .lang-select{opacity:0;width:100%;height:100%;position:absolute;top:0;left:0}.with-love{color: ;margin:0 5px;display:inline-block}@keyframes icon-animate{0%,to{transform:scale(1)}10%,30%{transform:scale(.9)}20%,40%,60%,80%{transform:scale(1.1)}50%,70%{transform:scale(1.1)}}.back-to-top{color:#fff;cursor:pointer;opacity:.6;z-index:30;background:#222;align-items:center;height:26px;font-size:12px;transition:bottom .2s ease-in-out;display:flex;position:fixed;bottom:-100px;left:30px}.back-to-top span{margin-right:8px}.back-to-top .fa{text-align:center;width:26px}@media (width<=991px){.back-to-top{left:20px}}.back-to-top:hover{opacity:.8}@media (width<=991px){.back-to-top{opacity:.8}}.back-to-top:hover{color:#fc6423}.back-to-top.back-to-top-on{bottom:30px}.reading-progress-bar{--progress:0;z-index:50;height:3px;width:var(--progress);background:#37c6c0;position:fixed;top:0;left:0}.rtl.post-body p,.rtl.post-body a,.rtl.post-body h1,.rtl.post-body h2,.rtl.post-body h3,.rtl.post-body h4,.rtl.post-body h5,.rtl.post-body h6,.rtl.post-body li,.rtl.post-body ul,.rtl.post-body ol{direction:rtl;font-family:UKIJ Ekran}.rtl.post-title{font-family:UKIJ Ekran}.post-button{text-align:center;margin-top:40px}.use-motion .post-block,.use-motion .pagination,.use-motion .comments,.use-motion .post-header,.use-motion .post-body,.use-motion .collection-header{visibility:hidden}.posts-collapse .post-content{margin-bottom:35px;margin-left:35px;position:relative}@media (width<=767px){.posts-collapse .post-content{margin-left:0;margin-right:0}}.posts-collapse .post-content .collection-title{font-size:1.125em;position:relative}.posts-collapse .post-content .collection-title:before{content:" ";background:#999;border:1px solid #fff;border-radius:50%;width:10px;height:10px;margin-top:-4px;margin-left:-6px;position:absolute;top:50%}.posts-collapse .post-content .collection-year{margin:60px 0;font-size:1.5em;font-weight:700;position:relative}.posts-collapse .post-content .collection-year .collection-year-count{color:var(--content-bg-color);text-shadow:1px 1px #0000001a;background:#ccc;border-radius:10px;margin-left:.35em;padding:2px 5px;font-size:.75em;font-weight:700;line-height:1}.posts-collapse .post-content .collection-year:before{content:" ";background:#bbb;border-radius:50%;width:8px;height:8px;margin-top:-4px;margin-left:-4px;position:absolute;top:50%}.posts-collapse .post-content .collection-header{margin-left:20px;display:block}.posts-collapse .post-content .collection-header small{color:#bbb;margin-left:5px}.posts-collapse .post-content .post-header{border-bottom:1px dashed #ccc;margin:30px 2px 0;padding-left:15px;transition:border .2s ease-in-out;position:relative}.posts-collapse .post-content .post-header:before{content:" ";background:#bbb;border:1px solid #fff;border-radius:50%;width:6px;height:6px;transition:background .2s ease-in-out;position:absolute;top:.75em;left:-6px}.posts-collapse .post-content .post-header:hover{border-bottom-color:#666}.posts-collapse .post-content .post-header:hover:before{background:#222}.posts-collapse .post-content .post-meta-container{margin-right:10px;font-size:.75em;display:inline}.posts-collapse .post-content .post-title{display:inline}.posts-collapse .post-content .post-title a{color:var(--link-color);border-bottom:0}.posts-collapse .post-content .post-title .fa{margin-left:5px;font-size:.875em}.posts-collapse .post-content:before{content:" ";background:#f5f5f5;width:4px;height:100%;margin-left:-2px;position:absolute;top:1.25em}.post-body{overflow-wrap:break-word;font-family:Lato,PingFang SC,Microsoft YaHei,sans-serif}@media (width>=1200px){.post-body{font-size:1.125em}}@media (width>=992px){.post-body{text-align:justify}}@media (width<=991px){.post-body{text-align:justify}}.post-body h1 .header-anchor,.post-body h2 .header-anchor,.post-body h3 .header-anchor,.post-body h4 .header-anchor,.post-body h5 .header-anchor,.post-body h6 .header-anchor,.post-body h1 .headerlink,.post-body h2 .headerlink,.post-body h3 .headerlink,.post-body h4 .headerlink,.post-body h5 .headerlink,.post-body h6 .headerlink{color:inherit;float:right;opacity:0;border-bottom-style:none;margin-left:10px;font-size:.875em}.post-body h1 .header-anchor:before,.post-body h2 .header-anchor:before,.post-body h3 .header-anchor:before,.post-body h4 .header-anchor:before,.post-body h5 .header-anchor:before,.post-body h6 .header-anchor:before,.post-body h1 .headerlink:before,.post-body h2 .headerlink:before,.post-body h3 .headerlink:before,.post-body h4 .headerlink:before,.post-body h5 .headerlink:before,.post-body h6 .headerlink:before{content:"";font-family:"Font Awesome 7 Free";font-weight:900}.post-body h1:hover .header-anchor,.post-body h2:hover .header-anchor,.post-body h3:hover .header-anchor,.post-body h4:hover .header-anchor,.post-body h5:hover .header-anchor,.post-body h6:hover .header-anchor,.post-body h1:hover .headerlink,.post-body h2:hover .headerlink,.post-body h3:hover .headerlink,.post-body h4:hover .headerlink,.post-body h5:hover .headerlink,.post-body h6:hover .headerlink{opacity:.5}.post-body h1:hover .header-anchor:hover,.post-body h2:hover .header-anchor:hover,.post-body h3:hover .header-anchor:hover,.post-body h4:hover .header-anchor:hover,.post-body h5:hover .header-anchor:hover,.post-body h6:hover .header-anchor:hover,.post-body h1:hover .headerlink:hover,.post-body h2:hover .headerlink:hover,.post-body h3:hover .headerlink:hover,.post-body h4:hover .headerlink:hover,.post-body h5:hover .headerlink:hover,.post-body h6:hover .headerlink:hover{opacity:1}.post-body .exturl .fa{margin-left:4px;font-size:.875em}.post-body figure:not(.highlight){margin:0 auto 20px}.post-body figure:not(.highlight) figcaption{color:#999;text-align:center;margin:-15px auto 15px;font-size:.875em;font-weight:700;line-height:1}.post-body iframe,.post-body img,.post-body video,.post-body embed{margin-bottom:20px}.post-body .video-container{width:100%;height:0;margin-bottom:20px;padding-top:75%;position:relative;overflow:hidden}.post-body .video-container iframe,.post-body .video-container object,.post-body .video-container embed{width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.post-gallery{min-height:200px;display:flex}.post-gallery .post-gallery-image{flex:1}.post-gallery .post-gallery-image:not(:first-child){clip-path:polygon(40px 0,100% 0,100% 100%,0 100%);margin-left:-20px}.post-gallery .post-gallery-image:not(:last-child){margin-right:-20px}.post-gallery .post-gallery-image img{object-fit:cover;opacity:1;width:100%;height:100%}.posts-expand .post-gallery{margin-bottom:60px}.posts-collapse .post-gallery{margin:15px 0}.posts-expand .post-header{text-align:center;margin-bottom:60px;font-size:1.125em}.posts-expand .post-title{margin:initial;overflow-wrap:break-word;font-size:1.5em;font-weight:400}.posts-expand .post-title-link{color:var(--link-color);border-bottom:0;max-width:100%;display:inline-block;position:relative}.posts-expand .post-title-link:before{background:var(--link-color);content:"";width:100%;height:2px;transition:transform .2s ease-in-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.posts-expand .post-title-link:hover:before{transform:scaleX(1)}.posts-expand .post-title-link .fa{margin-left:5px;font-size:.875em}.post-sticky-flag{margin-right:8px;display:inline-block;transform:rotate(30deg)}.posts-expand .post-meta-container{color:#999;margin-top:3px;font-family:Lato,PingFang SC,Microsoft YaHei,sans-serif;font-size:.75em}.posts-expand .post-meta-container .post-description{margin-top:2px;font-size:.875em}.posts-expand .post-meta-container time{border-bottom:1px dashed #999}.post-meta{flex-wrap:wrap;justify-content:center;display:flex}:not(.post-meta-break)+.post-meta-item:before{content:"|";margin:0 .5em}.post-meta-item-icon{margin-right:3px}@media (width<=991px){.post-meta-item-text{display:none}}.post-meta-break{flex-basis:100%;height:0}.post-nav{border-top:1px solid #eee;justify-content:space-between;gap:30px;margin-top:1em;padding:10px 5px 0;display:flex}.post-nav-item{flex:1}.post-nav-item a{border-bottom:0;font-size:.875em;line-height:1.6;display:block}.post-nav-item a:active{top:2px}.post-nav-item .fa{font-size:.75em}.post-nav-item:first-child .fa{margin-right:5px}.post-nav-item:last-child{text-align:right}.post-nav-item:last-child .fa{margin-left:5px}.post-footer{flex-direction:column;justify-content:center;display:flex}.post-eof{background:#ccc;width:8%;height:1px;margin:80px auto 60px}.post-block:last-of-type .post-eof{display:none}.post-copyright ul{background:var(--card-bg-color);border-left:3px solid #ff2a2a;margin:1em 0 0;padding:.5em 1em;list-style:none;position:relative;overflow:hidden}.post-copyright ul:after{content:"";opacity:.1;font-family:"Font Awesome 7 Brands";font-size:200px;position:absolute;top:-150px;right:-50px}.post-tags{text-align:center;margin-top:40px}.post-tags a{font-size:.8125em;display:inline-block}.post-tags a:not(:last-child){margin-right:10px}.social-like{border-top:1px solid #eee;flex-wrap:wrap;justify-content:center;margin-top:1em;padding-top:1em;font-size:.875em;display:flex}.social-like a{border-bottom:none}.reward-container{text-align:center;margin:1em 0 0;padding:1em 0}.reward-container button{color:#fc6423;cursor:pointer;vertical-align:text-top;background:0 0;border:2px solid #fc6423;border-radius:2px;outline:0;padding:0 15px;line-height:2}.reward-container button:hover{color:#fff;background:#fc6423}.post-reward{padding-top:20px;display:none}.post-reward.active{display:block}.post-reward div{display:inline-block}.post-reward div span{display:block}.post-reward img{width:180px;max-width:100%;margin:.8em 2em 0;display:inline-block}@keyframes next-roll{0%{transform:rotate(30deg)}to{transform:rotate(-30deg)}}.category-all-page .category-all-title{text-align:center}.category-all-page .category-all{margin-top:20px}.category-all-page .category-list{margin:0;padding:0;list-style:none}.category-all-page .category-list-item{margin:5px 10px}.category-all-page .category-list-count{color:var(--content-bg-color);text-shadow:1px 1px #0000001a;background:#ccc;border-radius:10px;margin-left:.35em;padding:2px 5px;font-size:.75em;font-weight:700;line-height:1}.category-all-page .category-list-child{padding-left:10px}.event-list hr{background:#222;margin:20px 0 45px}.event-list hr:after{color:#fff;content:"NOW";background:#222;padding:0 5px;font-weight:700;display:inline-block}.event-list .event{--event-background:#222;--event-foreground:#bbb;--event-title:#fff;background:var(--event-background);padding:15px}.event-list .event .event-summary{color:var(--event-title);border-bottom:0;margin:0;padding:0 0 0 35px;position:relative}.event-list .event .event-summary:before{background:var(--event-title);content:" ";border-radius:50%;width:12px;height:12px;margin-top:-6px;animation:1s ease-in-out infinite alternate dot-flash;position:absolute;top:50%;left:0}.event-list .event:nth-of-type(odd) .event-summary:before{animation-delay:.5s}.event-list .event:not(:last-child){margin-bottom:20px}.event-list .event .event-relative-time{color:var(--event-foreground);padding-left:12px;font-size:12px;font-weight:400;display:inline-block}.event-list .event .event-details{color:var(--event-foreground);padding:6px 0 6px 35px;line-height:18px;display:block}.event-list .event .event-details:before{color:var(--event-foreground);width:14px;margin-right:9px;font-family:"Font Awesome 7 Free";font-weight:900;display:inline-block}.event-list .event .event-details.event-location:before{content:""}.event-list .event .event-details.event-duration:before{content:""}.event-list .event .event-details.event-description:before{content:""}.event-list .event-past{--event-background:#f5f5f5;--event-foreground:#999;--event-title:#222}@keyframes dot-flash{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}ul.breadcrumb{text-align:center;margin:1em 0;padding:0 2em;font-size:.75em;list-style:none}ul.breadcrumb li{display:inline}ul.breadcrumb li:not(:first-child):before{content:"/ ";padding:.5em;font-weight:400}ul.breadcrumb li:last-child{font-weight:700}.tag-cloud{text-align:center}.tag-cloud a{margin:10px;display:inline-block}.tag-cloud-0{color:#aaa;border-bottom-color:#aaa}.tag-cloud-1{color:#9a9a9a;border-bottom-color:#9a9a9a}.tag-cloud-2{color:#8b8b8b;border-bottom-color:#8b8b8b}.tag-cloud-3{color:#7c7c7c;border-bottom-color:#7c7c7c}.tag-cloud-4{color:#6c6c6c;border-bottom-color:#6c6c6c}.tag-cloud-5{color:#5d5d5d;border-bottom-color:#5d5d5d}.tag-cloud-6{color:#4e4e4e;border-bottom-color:#4e4e4e}.tag-cloud-7{color:#3e3e3e;border-bottom-color:#3e3e3e}.tag-cloud-8{color:#2f2f2f;border-bottom-color:#2f2f2f}.tag-cloud-9{color:#202020;border-bottom-color:#202020}.tag-cloud-10{color:#111;border-bottom-color:#111}.search-active{margin-right:var(--dialog-scrollgutter,0);overflow:hidden}.search-pop-overlay{visibility:hidden;z-index:40;background:0 0;width:100%;height:100%;transition:visibility .4s,background .4s;display:flex;position:fixed;top:0;left:0}.search-active .search-pop-overlay{visibility:visible;background:#0000004d}.search-popup{background:var(--card-bg-color);border-radius:5px;width:700px;height:80%;margin:auto;transition:transform .4s;transform:scale(0)}.search-active .search-popup{transform:scale(1)}@media (width<=767px){.search-popup{border-radius:0;width:100%;height:100%}}.search-popup .search-icon,.search-popup .popup-btn-close{color:#999;padding:0 10px;font-size:18px}.search-popup .popup-btn-close{cursor:pointer}.search-popup .popup-btn-close:hover .fa{color:#222}.search-popup .search-header{background:#eee;border-top-left-radius:5px;border-top-right-radius:5px;padding:5px;display:flex}.search-popup input.search-input{background:0 0;border:0;outline:0;width:100%}.search-popup input.search-input::-webkit-search-cancel-button{display:none}.search-popup .search-result-container{flex-direction:column;height:calc(100% - 55px);padding:5px 25px;display:flex;overflow:auto}.search-popup .search-result-container hr{flex-shrink:0;margin:5px 0 10px}.search-popup .search-result-container hr:first-child{display:none}.search-popup .search-result-list{margin:0 5px;padding:0}.search-popup a.search-result-title{font-weight:700}.search-popup p.search-result{border-bottom:1px dashed #ccc;margin:0 0 10px;padding:5px 0}.search-popup .search-input-container{flex-grow:1;padding:2px}.search-popup .search-result-icon{color:#ccc;margin:auto}mark.search-keyword{color:#ff2a2a;background:0 0;border-bottom:1px dashed #ff2a2a;font-weight:700}mjx-container[jax=CHTML][display=true],.has-jax{overflow:auto hidden}mjx-container[display=true]+br{display:none}.use-motion .animated{visibility:inherit;animation-fill-mode:none}.use-motion .sidebar .animated{animation-fill-mode:both}header.header{background:var(--content-bg-color);border-radius:initial;box-shadow:initial}@media (width<=991px){header.header{border-radius:initial}}.main{justify-content:space-between;align-items:stretch;width:calc(100% - 20px);margin:0 auto;display:flex}@media (width<=767px){.main{width:auto}}@media (width>=1200px){.main{width:1160px}}@media (width>=1600px){.main{width:73%}}@media (width<=991px){.main{width:auto;display:block}}.main-inner{border-radius:initial;box-sizing:border-box;width:calc(100% - 252px)}@media (width<=991px){.main-inner{border-radius:initial;width:100%}}.footer-inner{padding-left:252px}@media (width<=991px){.footer-inner{width:auto;padding-left:0;padding-right:0}}.column{width:240px}@media (width<=991px){.column{width:auto}}.site-brand-container{background:var(--theme-color)}@media (width<=991px){.site-nav-on .site-brand-container{box-shadow:0 0 16px #00000080}}.site-meta{padding:20px 0}@media (width>=768px) and (width<=991px){.site-nav-toggle,.site-nav-right{flex-direction:column;justify-content:center;display:flex}}.site-nav-toggle .toggle,.site-nav-right .toggle{color:#fff}.site-nav-toggle .toggle .toggle-line,.site-nav-right .toggle .toggle-line{background:#fff}@media (width>=768px) and (width<=991px){.site-nav{--scroll-height:0;visibility:hidden;height:0;transition:height .2s ease-in-out,visibility .2s ease-in-out;overflow:hidden}body:not(.site-nav-on) .site-nav .animated{animation:none}body.site-nav-on .site-nav{height:var(--scroll-height);visibility:unset}}.menu .menu-item{margin:0;display:block}.menu .menu-item a{align-items:center;padding:5px 20px;transition-property:background-color;display:flex;position:relative}.menu .menu-item a .badge{margin-left:auto}@media (width<=991px){.menu .menu-item.menu-item-search{display:none}}.main-menu .menu-item-active:after{content:" ";background:#bbb;border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;right:15px}.sub-menu{margin:0;padding:6px 0}.sub-menu .menu-item{display:inline-block}.sub-menu .menu-item a{padding:initial;background:0 0;margin:5px 10px}.sub-menu .menu-item a:hover{color:#fc6423;background:0 0}.sub-menu .menu-item-active{color:#fc6423;border-bottom-color:#fc6423}.sub-menu .menu-item-active:hover{border-bottom-color:#fc6423}@media (width>=992px){.sidebar{position:sticky;top:12px}.sidebar-toggle{display:none}.sidebar-inner{background:var(--content-bg-color);border-radius:initial;box-shadow:initial;box-sizing:border-box;color:var(--text-color);visibility:hidden;max-height:calc(100vh - 24px);margin-top:12px}.site-state-item{padding:0 10px}.sidebar .sidebar-button{border-top:1px dotted #ccc;border-bottom:1px dotted #ccc}.sidebar .sidebar-button button{color:#fc6423;border:0;width:100%;display:block}.sidebar .sidebar-button button:hover{color:#e34603;background:0 0;border:0}.links-of-author{flex-wrap:wrap;justify-content:center;display:flex}.links-of-author-item{width:50%;margin:5px 0 0}.links-of-author-item a{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;border-bottom:0;border-radius:4px;max-width:100%;padding:0 5px;display:inline-block;overflow:hidden}.links-of-author-item a:hover{background:var(--body-bg-color)}.links-of-blogroll-item a{padding:0 5px}}.main-inner{background:var(--content-bg-color);box-shadow:initial;padding:40px}@media (width<=991px){.main-inner{padding:20px}}.sub-menu{border-bottom:1px solid #ddd}.post-block:first-of-type{padding-top:40px}@media (width<=767px){.pagination{margin-bottom:10px}}.links-of-author-item:first-child{order:1}.links-of-author-item:nth-child(4){order:2}.links-of-author-item:nth-child(2){order:3}.links-of-author-item:nth-child(3){order:4}.links-of-author-item a{text-align:left}</style><link integrity="sha256-VHqXKFhhMxcpubYf9xiWdCiojEbY9NexQ4jh8AxbvcM=" crossorigin href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css rel=stylesheet><link integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin href=https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css rel=stylesheet><link integrity="sha256-gkQVf8UKZgQ0HyuxL/VnacadJ+D2Kox2TCEBuNQg5+w=" crossorigin href=https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.31/fancybox/fancybox.css rel=stylesheet><script class=next-config data-name=main type=application/json>{"hostname":"wulc.me","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.27.0","exturl":true,"sidebar":{"position":"left","width_expanded":320,"width_dual_column":240,"display":"always","padding":18,"offset":12},"hljswrap":true,"codeblock":{"theme":{"light":"default","dark":"stackoverflow-dark"},"prism":{"light":"prism","dark":"prism-dark"},"copy_button":{"enable":true,"style":"flat"},"fold":{"enable":false,"height":500}},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":true,"pangu":true,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"duration":200,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果:${query}","hits_time":"找到 ${hits} 个搜索结果(用时 ${time} 毫秒)","hits":"找到 ${hits} 个搜索结果"},"path":"/search.json","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script defer src=/js/config.js></script><meta content="基于 Hexo和 Next搭建的个人主页,具体效果见 http://wulc.me" name=description><meta content=website property=og:type><meta content=吴良超的学习笔记 property=og:title><meta content=https://wulc.me/README.html property=og:url><meta content=吴良超的学习笔记 property=og:site_name><meta content="基于 Hexo和 Next搭建的个人主页,具体效果见 http://wulc.me" property=og:description><meta content=zh_CN property=og:locale><meta content=2026-06-07T07:03:17.760Z property=article:published_time><meta content=2026-06-07T07:03:17.760Z property=article:modified_time><meta content=良超 property=article:author><meta content=summary name=twitter:card><link href=https://wulc.me/README rel=canonical><script class=next-config data-name=page type=application/json>{"sidebar":"","isHome":false,"isPost":false,"lang":"zh-CN","comments":true,"permalink":"https://wulc.me/README.html","path":"README.html","title":""}</script><script class=next-config data-name=calendar type=application/json>""</script><title> | 吴良超的学习笔记
</title><script integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js></script><script integrity="sha256-vxLn1tSKWD4dqbMRyv940UYw4sXgMtYcK6reefzZrao=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/next-theme-pjax/0.6.0/pjax.min.js></script><script integrity="sha256-a+H7FYzJv6oU2hfsfDGM2Ohw/cR9v+hPfxHCLdmCrE8=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.31/fancybox/fancybox.umd.js></script><script integrity="sha256-mOFREFhqmHeQbXpK2lp4nA3qooVgACfh88fpJftLBbc=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/lozad.js/1.16.0/lozad.min.js></script><script integrity="sha256-JnmRRnJK7DC6RQJbAJb6AXOM9OmWzS6z8eYultk/48Y=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/pangu/7.2.0/pangu.umd.js></script><script defer src=/js/utils.js></script><script defer src=/js/motion.js></script><script defer src=/js/sidebar.js></script><script defer src=/js/next-boot.js></script><script defer src=/js/pjax.js></script><script integrity="sha256-xFC6PJ82SL9b3WkGjFavNiA9gm5z6UBxWPiu4CYjptg=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.5.0/search.js></script><script defer src=/js/third-party/search/local-search.js></script><script defer src=/js/third-party/fancybox.js></script><script class=next-config data-name=enableMath type=application/json>true</script><script class=next-config data-name=mathjax type=application/json>{"enable":true,"tags":"none","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js","integrity":"sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="}}</script><script defer src=/js/third-party/math/mathjax.js></script><script integrity="sha256-44BednzIpUeQJcY8qtLyarFu0UCCTbgmWOvaoehiFQQ=" crossorigin defer src=https://cdnjs.cloudflare.com/ajax/libs/quicklink/3.0.1/quicklink.umd.js></script><script class=next-config data-name=quicklink type=application/json>{"enable":true,"home":true,"archive":true,"delay":true,"timeout":3000,"priority":true,"url":"https://wulc.me/README.html"}</script><script defer src=/js/third-party/quicklink.js></script><noscript><link href=/css/noscript.css rel=stylesheet></noscript><link href=/atom.xml rel=alternate title=吴良超的学习笔记 type=application/atom+xml><body class=use-motion itemscope itemtype=http://schema.org/WebPage><div class=headband></div><main class=main><div class=column><header class=header itemscope itemtype=http://schema.org/WPHeader><div class=site-brand-container><div class=site-nav-toggle><div aria-label=切换导航栏 class=toggle role=button><span class=toggle-line></span><span class=toggle-line></span><span class=toggle-line></span></div></div><div class=site-meta><a class=brand href=/ rel=start> <i class=logo-line></i> <p class=site-title>吴良超的学习笔记</p> <i class=logo-line></i> </a></div><div class=site-nav-right><div class="toggle popup-trigger" aria-label=搜索 role=button><i class="fa fa-search fa-fw fa-lg"></i></div></div></div><nav class=site-nav><ul class="main-menu menu"><li class="menu-item menu-item-home"><a href=/ rel=section><i class="fa fa-home fa-fw"></i>首页</a><li class="menu-item menu-item-tags"><a href=/tags/ rel=section><i class="fa fa-tags fa-fw"></i>标签</a><li class="menu-item menu-item-archives"><a href=/archives/ rel=section><i class="fa fa-archive fa-fw"></i>归档</a><li class="menu-item menu-item-search"><a class=popup-trigger role=button><i class="fa fa-search fa-fw"></i>搜索 </a></ul></nav><div class=search-pop-overlay><div class="popup search-popup"><div class=search-header><span class=search-icon> <i class="fa fa-search"></i> </span><div class=search-input-container><input autocapitalize=off autocomplete=off class=search-input maxlength=80 placeholder=搜索... spellcheck=false type=search></div><span class=popup-btn-close role=button> <i class="fa fa-times-circle"></i> </span></div><div class=search-result-container><div class=search-result-icon><i class="fa fa-spinner fa-pulse fa-5x"></i></div></div></div></div></header><aside class=sidebar><div class="sidebar-inner sidebar-overview-active"><ul class=sidebar-nav><li class=sidebar-nav-toc>文章目录<li class=sidebar-nav-overview>站点概览</ul><div class=sidebar-panel-container><!--noindex--><div class="post-toc-wrap sidebar-panel"></div><!--/noindex--><div class="site-overview-wrap sidebar-panel"><div class="site-author animated" itemprop=author itemscope itemtype=http://schema.org/Person><img alt=良超 class=site-author-image itemprop=image src=/files/profile.jpg><p class=site-author-name itemprop=name>良超<div class=site-description itemprop=description>盈亏同源,拥抱随机性</div></div><div class="site-state-wrap animated"><nav class=site-state><div class="site-state-item site-state-posts"><a href=/archives/> <span class=site-state-item-count>325</span> <span class=site-state-item-name>日志</span> </a></div><div class="site-state-item site-state-categories"><span class=site-state-item-count>34</span><span class=site-state-item-name>分类</span></div><div class="site-state-item site-state-tags"><a href=/tags/> <span class=site-state-item-count>54</span> <span class=site-state-item-name>标签</span></a></div></nav></div><div class="links-of-author animated"><span class=links-of-author-item> <span data-url="aHR0cHM6Ly9naXRodWIuY29tL1d1TEM=" title="GitHub → https://github.com/WuLC" class=exturl><i class="fab fa-github fa-fw"></i>GitHub</span> </span><span class=links-of-author-item> <span data-url="bWFpbHRvOmxpYW5nY2hhb3d1NUBnbWFpbC5jb20=" title="E-Mail → mailto:liangchaowu5@gmail.com" class=exturl><i class="fa fa-envelope fa-fw"></i>E-Mail</span> </span><span class=links-of-author-item> <a rel="noopener me" title="RSS → /atom.xml" href=/atom.xml><i class="fa fa-rss fa-fw"></i>RSS</a> </span><span class=links-of-author-item> <span data-url="aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3d1bGlhbmdjaGFvLw==" title="LinkedIn → https://www.linkedin.com/in/wuliangchao/" class=exturl><i class="fab fa-linkedin fa-fw"></i>LinkedIn</span> </span></div><div class="cc-license animated" itemprop=license><span class="exturl cc-opacity" data-url="aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC8="><img alt="Creative Commons" src=https://cdnjs.cloudflare.com/ajax/libs/creativecommons-vocabulary/2020.11.3/assets/license_badges/small/by_nc_sa.svg></span></div></div></div></div><div class=pjax></div></aside></div><div class="main-inner page posts-expand"><div class=post-block lang=zh-CN><header class=post-header><h1 itemprop="name headline" class=post-title></h1><div class=post-meta-container></div></header><div class=post-body><p>基于<span data-url="aHR0cHM6Ly9oZXhvLmlvLw==" class=exturl> Hexo<i class="fa fa-external-link-alt"></i></span>和<span class=exturl data-url=aHR0cDovL3RoZW1lLW5leHQuaWlzc25hbi5jb20v> Next<i class="fa fa-external-link-alt"></i></span>搭建的个人主页,具体效果见 http://wulc.me</div></div></div></main><footer class=footer><div class=footer-inner><div class=languages><label class=lang-select-label><i class="fa fa-language"></i> <span>简体中文</span> <i class="fa fa-angle-up" aria-hidden=true></i></label><select aria-label=选择语言 class=lang-select data-canonical><option data-href=/README.html selected value=zh-CN>简体中文<option data-href=/en/README.html selected value=en>English</select></div><div class=copyright>© 2015 – <span itemprop=copyrightYear>2026</span><span class=with-love> <i class="fa fa-pen"></i> </span><span class=author itemprop=copyrightHolder>良超</span></div><div class=powered-by>由 <span class=exturl data-url=aHR0cHM6Ly9oZXhvLmlv>Hexo</span> & <span class=exturl data-url=aHR0cHM6Ly90aGVtZS1uZXh0LmpzLm9yZy9waXNjZXMv>NexT.Pisces</span> 强力驱动</div></div></footer><div class="toggle sidebar-toggle" role=button><span class=toggle-line></span><span class=toggle-line></span><span class=toggle-line></span></div><div class=sidebar-dimmer></div><div aria-label=返回顶部 class=back-to-top role=button><i class="fa fa-arrow-up fa-lg"></i><span>0%</span></div><div class=reading-progress-bar></div><noscript><div class=noscript-warning>Theme NexT works best with JavaScript enabled</div></noscript><script>(function () {
  var DEFAULT_LANG = 'zh-CN';

  function normalizePath(href) {
    if (!href) return '/';
    var path = href.replace(/^https?:\/\/[^/]+/i, '');
    path = path.replace(/^\/\//, '/');
    if (!path.startsWith('/')) path = '/' + path;
    path = path.replace(/\/+/g, '/');
    return path;
  }

  function stripLangPrefix(path, langs, defaultLang) {
    var normalized = path;
    langs.forEach(function (lang) {
      if (lang === defaultLang) return;
      var prefix = '/' + lang + '/';
      while (normalized.startsWith(prefix)) {
        normalized = normalized.slice(lang.length + 1);
      }
      if (normalized === '/' + lang) {
        normalized = '/';
      }
    });
    return normalized;
  }

  function withLangPrefix(path, lang, defaultLang) {
    if (lang === defaultLang) return path;
    if (path === '/') return '/' + lang + '/';
    return '/' + lang + path;
  }

  function resolvePathLang(path, langs, defaultLang) {
    for (var i = 0; i < langs.length; i += 1) {
      var lang = langs[i];
      if (lang === defaultLang) continue;
      if (path.startsWith('/' + lang + '/')) return lang;
      if (path === '/' + lang) return lang;
    }
    return defaultLang;
  }

  function normalizeLangSwitcher() {
    var options = Array.prototype.slice.call(document.querySelectorAll('.lang-select option[data-href]'));
    if (!options.length) return;

    var langs = options.map(function (option) {
      return option.value;
    });

    options.forEach(function (option) {
      var href = option.getAttribute('data-href');
      var normalized = normalizePath(href);
      var basePath = stripLangPrefix(normalized, langs, DEFAULT_LANG);
      var target = withLangPrefix(basePath, option.value, DEFAULT_LANG);
      option.setAttribute('data-href', target);
    });
  }

  function dedupeBilingualList() {
    var blocks = Array.prototype.slice.call(document.querySelectorAll('.post-block'));
    if (blocks.length <= 1) return;

    var langOptions = Array.prototype.slice.call(document.querySelectorAll('.lang-select option[value]'));
    var langs = langOptions.map(function (option) {
      return option.value;
    });
    if (!langs.length) langs = [DEFAULT_LANG, 'en'];

    var currentPath = normalizePath(window.location.pathname || '/');
    var currentLang = resolvePathLang(currentPath, langs, DEFAULT_LANG);

    var isHomeListPage = currentPath === '/' || /^\/page\/\d+\/?$/.test(currentPath);
    if (isHomeListPage && langs.indexOf('en') !== -1) {
      currentLang = 'en';
    }

    var bucket = new Map();

    blocks.forEach(function (block) {
      var link = block.querySelector('.post-header .post-title-link[href]');
      if (!link) return;

      var path = normalizePath(link.getAttribute('href'));
      var basePath = stripLangPrefix(path, langs, DEFAULT_LANG);
      var content = block.querySelector('.post-content[lang]');
      var itemLang = content ? content.getAttribute('lang') : resolvePathLang(path, langs, DEFAULT_LANG);

      if (!bucket.has(basePath)) {
        bucket.set(basePath, {
          keep: block,
          keepLang: itemLang,
          all: [block]
        });
        return;
      }

      var entry = bucket.get(basePath);
      entry.all.push(block);
      if (entry.keepLang !== currentLang && itemLang === currentLang) {
        entry.keep = block;
        entry.keepLang = itemLang;
      }
    });

    bucket.forEach(function (entry) {
      entry.all.forEach(function (block) {
        if (block !== entry.keep && block.parentNode) {
          block.parentNode.removeChild(block);
        }
      });
    });
  }

  function isPostPage() {
    return !!document.querySelector('.post-block h1.post-title');
  }

  function checkPathExists(path) {
    return fetch(path, { method: 'HEAD', cache: 'no-store' })
      .then(function (response) {
        return response.ok;
      })
      .catch(function () {
        return false;
      });
  }

  function styleLangButtons(holder) {
    var sample = document.querySelector('.links-of-author a, .links-of-author-item a');
    if (!sample) return;

    var style = window.getComputedStyle(sample);
    var heading = holder.querySelector('.lang-switch-heading');
    var group = holder.querySelector('.lang-button-group');
    if (!group) return;

    holder.style.width = '100%';
    holder.style.boxSizing = 'border-box';

    if (heading) {
      heading.style.display = 'flex';
      heading.style.alignItems = 'center';
      heading.style.gap = '6px';
      heading.style.width = '100%';
      heading.style.fontSize = style.fontSize;
      heading.style.lineHeight = style.lineHeight;
      heading.style.color = style.color;
      heading.style.fontWeight = '700';
      heading.style.textAlign = 'center';
      heading.style.justifyContent = 'center';
      heading.style.marginBottom = '4px';

      var icon = heading.querySelector('.lang-switch-icon');
      if (icon) {
        icon.style.fontSize = style.fontSize;
        icon.style.lineHeight = style.lineHeight;
        icon.style.fontWeight = '700';
      }

      var label = heading.querySelector('.lang-switch-label');
      if (label) {
        label.style.fontWeight = '700';
      }
    }

    group.style.display = 'grid';
    group.style.gridTemplateColumns = '1fr 1fr';
    group.style.columnGap = '12px';
    group.style.width = '100%';
    group.style.alignItems = 'center';

    Array.prototype.slice.call(group.querySelectorAll('.lang-button')).forEach(function (link) {
      link.style.display = 'inline-block';
      link.style.width = '100%';
      link.style.textAlign = 'center';
      link.style.fontSize = style.fontSize;
      link.style.lineHeight = style.lineHeight;
      link.style.color = style.color;
      link.style.textDecoration = 'none';
      link.style.background = 'transparent';
      link.style.border = 'none';
      link.style.borderBottom = '1px solid transparent';
      link.style.padding = '0 0 2px';
      link.style.cursor = 'pointer';
      link.style.boxSizing = 'border-box';
      link.style.fontWeight = '400';

      if (link.dataset.active === '1') {
        link.style.fontWeight = '600';
        link.style.borderBottomColor = style.color;
      }
    });
  }

  function getLangOptionMap() {
    var options = Array.prototype.slice.call(document.querySelectorAll('.lang-select option[data-href]'));
    var map = {};
    options.forEach(function (option) {
      map[option.value] = option;
    });
    return map;
  }

  function renderLangButtons(holder) {
    var map = getLangOptionMap();
    var zh = map['zh-CN'];
    var en = map.en;
    if (!zh && !en) return;

    holder.innerHTML = '';

    var heading = document.createElement('span');
    heading.className = 'lang-switch-heading';

    var icon = document.createElement('i');
    icon.className = 'fa fa-globe lang-switch-icon';
    heading.appendChild(icon);

    var label = document.createElement('span');
    label.className = 'lang-switch-label';
    label.textContent = 'Language';
    heading.appendChild(label);

    holder.appendChild(heading);

    var group = document.createElement('div');
    group.className = 'lang-button-group';

    function appendButton(option, label) {
      if (!option || option.hidden || option.disabled) return;
      var link = document.createElement('a');
      link.href = normalizePath(option.getAttribute('data-href'));
      link.className = 'lang-button';
      link.textContent = label;
      var currentPath = normalizePath(window.location.pathname || '/');
      var targetPath = normalizePath(option.getAttribute('data-href'));
      link.dataset.active = currentPath === targetPath ? '1' : '0';
      link.addEventListener('click', function (event) {
        if (targetPath === currentPath) {
          event.preventDefault();
          return;
        }
        localStorage.setItem(getPostPreferenceKey(), option.value);
      });
      group.appendChild(link);
    }

    appendButton(zh, '中文');
    appendButton(en, 'English');

    if (!group.children.length) {
      holder.style.display = 'none';
      return;
    }

    holder.appendChild(group);
    holder.style.display = '';
    styleLangButtons(holder);
  }

  function placeLangSwitcherInSidebar() {
    var languages = document.querySelector('.languages');
    if (!languages) return;

    languages.style.display = 'none';

    var sidebarHolder = document.querySelector('.sidebar .custom-lang-switcher');
    if (sidebarHolder && !isPostPage()) {
      sidebarHolder.remove();
    }

    if (!isPostPage()) {
      return;
    }

    var sidebar = document.querySelector('.sidebar .site-overview-wrap, .sidebar .sidebar-inner, .sidebar .site-overview');
    if (!sidebar) return;

    var holder = sidebar.querySelector('.custom-lang-switcher');
    if (!holder) {
      holder = document.createElement('div');
      holder.className = 'custom-lang-switcher';
      holder.style.marginTop = '10px';
      holder.style.textAlign = 'left';
      sidebar.appendChild(holder);
    }

    renderLangButtons(holder);
  }

  async function filterUnavailableLanguageOptions() {
    if (!isPostPage()) return;

    var selector = document.querySelector('.lang-select');
    if (!selector) return;

    var options = Array.prototype.slice.call(selector.querySelectorAll('option[data-href]'));
    if (!options.length) return;

    var currentPath = normalizePath(window.location.pathname || '/');
    var checks = await Promise.all(options.map(async function (option) {
      var target = normalizePath(option.getAttribute('data-href'));
      if (target === currentPath) {
        return { option: option, available: true };
      }
      var available = await checkPathExists(target);
      return { option: option, available: available };
    }));

    checks.forEach(function (item) {
      item.option.disabled = !item.available;
      item.option.hidden = !item.available;
    });

    var availableOptions = checks.filter(function (item) {
      return item.available;
    });
    var holder = document.querySelector('.custom-lang-switcher');
    if (!holder) return;

    if (availableOptions.length <= 1) {
      holder.style.display = 'none';
      return;
    }

    holder.style.display = '';
    renderLangButtons(holder);
  }

  function getPostPreferenceKey() {
    var currentPath = normalizePath(window.location.pathname || '/');
    var optionValues = Array.prototype.slice.call(document.querySelectorAll('.lang-select option[value]')).map(function (option) {
      return option.value;
    });
    if (!optionValues.length) optionValues = [DEFAULT_LANG, 'en'];
    var basePath = stripLangPrefix(currentPath, optionValues, DEFAULT_LANG);
    return 'preferred_post_lang:' + basePath;
  }

  async function redirectToEnglishByDefault() {
    if (!isPostPage()) return;

    var options = Array.prototype.slice.call(document.querySelectorAll('.lang-select option[data-href]:not([hidden])'));
    if (!options.length) return;

    var currentPath = normalizePath(window.location.pathname || '/');
    var currentLang = currentPath.startsWith('/en/') || currentPath === '/en' ? 'en' : DEFAULT_LANG;
    if (currentLang === 'en') return;

    var preferenceKey = getPostPreferenceKey();
    var preferred = localStorage.getItem(preferenceKey);
    if (preferred === DEFAULT_LANG) return;

    var englishOption = options.find(function (option) {
      return option.value === 'en' && !option.disabled;
    });

    if (!englishOption) return;

    var target = normalizePath(englishOption.getAttribute('data-href'));
    if (target === currentPath) return;

    var exists = await checkPathExists(target);
    if (!exists) return;

    localStorage.setItem(preferenceKey, 'en');
    window.location.replace(target);
  }

  function bindLangPreference() {
    var selector = document.querySelector('.lang-select');
    if (!selector || selector.dataset.preferenceBound === '1') return;

    selector.dataset.preferenceBound = '1';
    selector.addEventListener('change', function () {
      var selected = selector.options[selector.selectedIndex];
      if (!selected || selected.disabled || selected.hidden) return;
      localStorage.setItem(getPostPreferenceKey(), selector.value);
    }, true);
  }

  async function applyBilingualFixes() {
    normalizeLangSwitcher();
    dedupeBilingualList();
    placeLangSwitcherInSidebar();
    await filterUnavailableLanguageOptions();
    bindLangPreference();
    await redirectToEnglishByDefault();
  }

  document.addEventListener('DOMContentLoaded', function () {
    applyBilingualFixes();
  });
  document.addEventListener('pjax:success', function () {
    applyBilingualFixes();
  });
})();</script><script type=application/ld+json>
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Liangchao Wu's Blog",
  "alternateName": "吴良超的学习笔记",
  "url": "https://wulc.me",
  "description": "Personal blog about machine learning, technology and life insights",
  "author": {
    "@type": "Person",
    "name": "Liangchao Wu",
    "alternateName": "吴良超",
    "url": "https://wulc.me",
    "sameAs": [
      "https://github.com/WuLC",
      "https://www.linkedin.com/in/wuliangchao/"
    ]
  }
}
</script>

About

personal website

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages