From 6a3cca28bbd7d73d7dd92e855bec54d71c6d1a6e Mon Sep 17 00:00:00 2001 From: Xiang Date: Sat, 5 Jun 2021 07:02:12 +0000 Subject: [PATCH] deploy web profile --- 404.html | 17 ++++++++++ assets/css/0.styles.f961c06d.css | 1 + assets/img/search.83621669.svg | 1 + assets/js/10.12a1080c.js | 1 + assets/js/11.6770f376.js | 1 + assets/js/12.961162e9.js | 1 + assets/js/13.8e48bbdc.js | 1 + assets/js/14.ad338d85.js | 1 + assets/js/15.517ba725.js | 1 + assets/js/2.b398f874.js | 1 + assets/js/3.63081c82.js | 1 + assets/js/4.301d19de.js | 1 + assets/js/5.bdc4f465.js | 1 + assets/js/6.18061194.js | 1 + assets/js/7.eed0b696.js | 1 + assets/js/8.b18d0c82.js | 1 + assets/js/9.077402f2.js | 1 + assets/js/app.edef6850.js | 14 ++++++++ index.html | 25 ++++++++++++++ logo.png | Bin 0 -> 1861 bytes manifest.json | 9 +++++ ...\344\270\232\346\212\200\350\203\275.html" | 29 ++++++++++++++++ ...\344\275\234\347\273\217\345\216\206.html" | 31 ++++++++++++++++++ ...\350\202\262\347\273\217\345\216\206.html" | 25 ++++++++++++++ ...\346\210\221\344\273\213\347\273\215.html" | 25 ++++++++++++++ ...\350\257\225\345\256\211\346\216\222.html" | 22 +++++++++++++ ...\350\257\225\347\273\217\351\252\214.html" | 21 ++++++++++++ ...\350\257\225\351\202\200\350\257\267.html" | 21 ++++++++++++ ...\350\257\225\351\242\230\347\233\256.html" | 21 ++++++++++++ ...\347\233\256\347\273\217\345\216\206.html" | 31 ++++++++++++++++++ 30 files changed, 307 insertions(+) create mode 100644 404.html create mode 100644 assets/css/0.styles.f961c06d.css create mode 100644 assets/img/search.83621669.svg create mode 100644 assets/js/10.12a1080c.js create mode 100644 assets/js/11.6770f376.js create mode 100644 assets/js/12.961162e9.js create mode 100644 assets/js/13.8e48bbdc.js create mode 100644 assets/js/14.ad338d85.js create mode 100644 assets/js/15.517ba725.js create mode 100644 assets/js/2.b398f874.js create mode 100644 assets/js/3.63081c82.js create mode 100644 assets/js/4.301d19de.js create mode 100644 assets/js/5.bdc4f465.js create mode 100644 assets/js/6.18061194.js create mode 100644 assets/js/7.eed0b696.js create mode 100644 assets/js/8.b18d0c82.js create mode 100644 assets/js/9.077402f2.js create mode 100644 assets/js/app.edef6850.js create mode 100644 index.html create mode 100644 logo.png create mode 100644 manifest.json create mode 100644 "\344\270\223\344\270\232\346\212\200\350\203\275.html" create mode 100644 "\345\267\245\344\275\234\347\273\217\345\216\206.html" create mode 100644 "\346\225\231\350\202\262\347\273\217\345\216\206.html" create mode 100644 "\350\207\252\346\210\221\344\273\213\347\273\215.html" create mode 100644 "\351\235\242\350\257\225\345\256\211\346\216\222.html" create mode 100644 "\351\235\242\350\257\225\347\273\217\351\252\214.html" create mode 100644 "\351\235\242\350\257\225\351\202\200\350\257\267.html" create mode 100644 "\351\235\242\350\257\225\351\242\230\347\233\256.html" create mode 100644 "\351\241\271\347\233\256\347\273\217\345\216\206.html" diff --git a/404.html b/404.html new file mode 100644 index 0000000..bf18aab --- /dev/null +++ b/404.html @@ -0,0 +1,17 @@ + + + + + + lx1036 的简历 + + + + + + + +

404

That's a Four-Oh-Four.
Take me home.
+ + + diff --git a/assets/css/0.styles.f961c06d.css b/assets/css/0.styles.f961c06d.css new file mode 100644 index 0000000..be3c2d0 --- /dev/null +++ b/assets/css/0.styles.f961c06d.css @@ -0,0 +1 @@ +#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#3eaf7c transparent transparent #3eaf7c;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;-webkit-transition:background-color .1s ease;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;align-content:stretch;-webkit-box-pack:justify;justify-content:space-between}.home .feature{-webkit-box-flex:1;flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;-webkit-transition:all .2s ease;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{-webkit-transition:height .1s ease-out;transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:-webkit-box;display:flex}.navbar .links .search-box{-webkit-box-flex:0;flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem;display:block}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;-webkit-transition:color .15s ease;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-heading.clickable:hover{color:#3eaf7c}.sidebar-group-items{-webkit-transition:height .1s ease-out;transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#3eaf7c}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.badge[data-v-c13ee5b0]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-c13ee5b0],.badge.tip[data-v-c13ee5b0],.badge[data-v-c13ee5b0]{background-color:#42b983}.badge.error[data-v-c13ee5b0]{background-color:#da5961}.badge.warn[data-v-c13ee5b0],.badge.warning[data-v-c13ee5b0],.badge.yellow[data-v-c13ee5b0]{background-color:#e7c000}.badge+.badge[data-v-c13ee5b0]{margin-left:5px} \ No newline at end of file diff --git a/assets/img/search.83621669.svg b/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/assets/js/10.12a1080c.js b/assets/js/10.12a1080c.js new file mode 100644 index 0000000..eb16855 --- /dev/null +++ b/assets/js/10.12a1080c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{197:function(t,n,e){"use strict";e.r(n);var s=e(0),l=Object(s.a)({},function(){var t=this.$createElement,n=this._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[n("p",[this._v("(1) 2020-03-01\n面试一波。")])])},[],!1,null,null,null);n.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/11.6770f376.js b/assets/js/11.6770f376.js new file mode 100644 index 0000000..2cf7598 --- /dev/null +++ b/assets/js/11.6770f376.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{187:function(t,i,s){"use strict";s.r(i);var n=s(0),e=Object(n.a)({},function(){var t=this.$createElement,i=this._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[i("p",[this._v("滴滴二面:")]),this._v(" "),i("ol",[i("li",[this._v("在 RightCapital 的项目经历,主要是谈我工作的内容,")]),this._v(" "),i("li",[this._v("Admin (给美国客服产品团队用的)前后端。")])])])},[],!1,null,null,null);i.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/12.961162e9.js b/assets/js/12.961162e9.js new file mode 100644 index 0000000..6ece3e7 --- /dev/null +++ b/assets/js/12.961162e9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{194:function(t,a,r){"use strict";r.r(a);var e=r(0),s=Object(e.a)({},function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"面试邀请"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#面试邀请","aria-hidden":"true"}},[t._v("#")]),t._v(" 面试邀请")]),t._v(" "),r("h2",{attrs:{id:"滴滴面试"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#滴滴面试","aria-hidden":"true"}},[t._v("#")]),t._v(" 滴滴面试")]),t._v(" "),r("h2",{attrs:{id:"_360-面试"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#_360-面试","aria-hidden":"true"}},[t._v("#")]),t._v(" 360 面试")]),t._v(" "),r("h2",{attrs:{id:"微博面试"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#微博面试","aria-hidden":"true"}},[t._v("#")]),t._v(" 微博面试")])])},[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/13.8e48bbdc.js b/assets/js/13.8e48bbdc.js new file mode 100644 index 0000000..fcb8726 --- /dev/null +++ b/assets/js/13.8e48bbdc.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{195:function(t,a,r){"use strict";r.r(a);var s=r(0),e=Object(s.a)({},function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h2",{attrs:{id:"后端"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#后端","aria-hidden":"true"}},[t._v("#")]),t._v(" 后端")]),t._v(" "),r("h3",{attrs:{id:"算法与数据结构"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#算法与数据结构","aria-hidden":"true"}},[t._v("#")]),t._v(" 算法与数据结构")]),t._v(" "),r("h4",{attrs:{id:"数据结构"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#数据结构","aria-hidden":"true"}},[t._v("#")]),t._v(" 数据结构")]),t._v(" "),r("ol",[r("li",[r("p",[t._v("二叉树")])]),t._v(" "),r("li",[r("p",[t._v("平衡二叉树")])]),t._v(" "),r("li",[r("p",[t._v("B-Tree")])])]),t._v(" "),r("h4",{attrs:{id:"算法"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#算法","aria-hidden":"true"}},[t._v("#")]),t._v(" 算法")]),t._v(" "),r("ol",[r("li",[t._v("排序算法")])]),t._v(" "),r("h3",{attrs:{id:"数据库"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#数据库","aria-hidden":"true"}},[t._v("#")]),t._v(" 数据库")]),t._v(" "),r("h4",{attrs:{id:"redis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#redis","aria-hidden":"true"}},[t._v("#")]),t._v(" Redis")]),t._v(" "),r("ol",[r("li",[t._v("Redis 支持的数据结构?")])]),t._v(" "),r("ul",[r("li",[t._v("Redis 是一种非关系型内存数据库,可以存储 key 与 5 种不同数据结构类型的 value,这 5 种数据结构包括 string(字符串、整数、浮点数)、list(链表,链表上的每一个节点都可以是 string)、set(包含 string 的无序收集器,且每一个 string 都不相同)、hash(无序散列表)以及 zset(有序集合)。")]),t._v(" "),r("li",[t._v("list 链表,使用场景比如微博的粉丝列表;hash 一般用来存储对象,比如当前用户信息或者商品信息;set 类似于 list,但是可以排重,在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合,Redis可以非常方便的实现如共同关注等功能;sorted set,有序集合,比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜。")])]),t._v(" "),r("ol",{attrs:{start:"2"}},[r("li",[t._v("Redis 的两种持久化操作以及如何保证数据安全(快照和AOF)?")])]),t._v(" "),r("ul",[r("li",[t._v("通过快照功能把某个时间点的数据存储一个副本。")]),t._v(" "),r("li",[t._v("AOF 就是周期性的把"),r("strong",[t._v("写操作命令")]),t._v("写入到记录文件内。")])]),t._v(" "),r("ol",{attrs:{start:"3"}},[r("li",[t._v("Redis 如何防止数据出错(Redis 事务)?")])]),t._v(" "),r("ul",[r("li",[t._v("Redis 有简单的事务功能,开始命令 MULTI,结束命令 EXEC。实际上它是把多个命令的一组集合,一个事务中所有命令都会被序列化,按顺序执行而不会被其他命令插入。")])]),t._v(" "),r("h4",{attrs:{id:"mysql"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#mysql","aria-hidden":"true"}},[t._v("#")]),t._v(" MySQL")]),t._v(" "),r("h3",{attrs:{id:"php"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#php","aria-hidden":"true"}},[t._v("#")]),t._v(" PHP")]),t._v(" "),r("h2",{attrs:{id:"前端"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#前端","aria-hidden":"true"}},[t._v("#")]),t._v(" 前端")]),t._v(" "),r("h2",{attrs:{id:"运维"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#运维","aria-hidden":"true"}},[t._v("#")]),t._v(" 运维")]),t._v(" "),r("h2",{attrs:{id:"设计模式"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#设计模式","aria-hidden":"true"}},[t._v("#")]),t._v(" 设计模式")]),t._v(" "),r("h3",{attrs:{id:"单例模式"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#单例模式","aria-hidden":"true"}},[t._v("#")]),t._v(" 单例模式")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/lx1036/routing/blob/master/src/Foundation/Container/DesignPattern/Singleton.php",target:"_blank",rel:"noopener noreferrer"}},[t._v("容器单例模式示例-PHP"),r("OutboundLink")],1)]),t._v(" "),r("h3",{attrs:{id:"装饰器模式"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#装饰器模式","aria-hidden":"true"}},[t._v("#")]),t._v(" 装饰器模式")])])},[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/14.ad338d85.js b/assets/js/14.ad338d85.js new file mode 100644 index 0000000..bb3a1a6 --- /dev/null +++ b/assets/js/14.ad338d85.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{193:function(t,a,e){"use strict";e.r(a);var r=e(0),n=Object(r.a)({},function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"项目经历"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#项目经历","aria-hidden":"true"}},[t._v("#")]),t._v(" 项目经历")]),t._v(" "),e("h2",{attrs:{id:"rightcapital-consumer-api-web-项目"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rightcapital-consumer-api-web-项目","aria-hidden":"true"}},[t._v("#")]),t._v(" RightCapital Consumer API/Web 项目")]),t._v(" "),e("ul",[e("li",[t._v("项目用途:面向 to C 的金融软件 Consumer API 后端,以及面向 to B 的 Enterprise API 后端,为个人提供财务规划业务,为企业提供 API 并获得相关金融数据。")]),t._v(" "),e("li",[t._v("工作内容:\n"),e("ul",[e("li",[t._v("编写 Integration 模块,与美国各大金融公司做数据集成,比如最近我刚刚上线的与 "),e("a",{attrs:{href:"http://www.prweb.com/releases/capitect_and_rightcapital_announce_new_integration_connecting_the_two_next_generation_solutions/prweb16328984.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Capitect"),e("OutboundLink")],1),t._v(" 和 "),e("a",{attrs:{href:"https://www.prweb.com/releases/rightcapital_financial_planning_software_announces_integration_with_morningstar/prweb16297311.htm",target:"_blank",rel:"noopener noreferrer"}},[t._v("Morningstar"),e("OutboundLink")],1),t._v(" 的数据集成。涉及的技术包括:Filesystem、OAuth/JWT、SAML2.0(单点登录)等等,并使用 PHPUnit/Mockery 编写详细的单元测试和集成测试。")]),t._v(" "),e("li",[t._v("针对不同金融公司,各种奇奇怪怪的不遵循 OAuth2.0 标准的 OAuth API,二次开发编写相关 OAuth 扩展包。编写测试框架,结合 Laravel 框架提供的 testing API 进行二次开发,并针对 Web 和 Mobile 端提供对应的测试登录。为了精细化控制测试结果,并编写了把测试结果 Json Reponse Code/Headers/Content 写入 json 文件的相关模块代码,同时编写了从 YAML 文件读取期望数据的相关模块代码。使用 Lumen 编写 Enterprise API 项目,二次开发 Laravel Validation 模块,添加很多自定义 validation rule,并编写 Swagger 文档。")]),t._v(" "),e("li",[t._v("把前端项目的两个模块之一 Advisor Portal,从 Angular.js 升级到 Angular。使用 Karma 和 Jasmine 简单编写单元测试。")])])])]),t._v(" "),e("h2",{attrs:{id:"rightcapital-admin-后台项目"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rightcapital-admin-后台项目","aria-hidden":"true"}},[t._v("#")]),t._v(" RightCapital Admin 后台项目")]),t._v(" "),e("ul",[e("li",[t._v("项目用途:面向美国客服销售团队的后台 Admin 项目。")]),t._v(" "),e("li",[t._v("工作内容:\n"),e("ul",[e("li",[t._v("使用 Laravel 框架提供后端 Restful API 数据。使用 Angular 提供前端 Web 页面,并使用相关 datatable 库提供丰富的表格交互功能。大量使用 @angular/router、@angular/common/http、@angular/forms 等模块的知识,以及相关 UI 包,如 Angular Material Design 和 Angular Ant Design。使用 Karma 和 Jasmine 编写单元测试和一些组件的集成测试。")])])])])])},[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/15.517ba725.js b/assets/js/15.517ba725.js new file mode 100644 index 0000000..60ca34c --- /dev/null +++ b/assets/js/15.517ba725.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{9:function(n,w,o){}}]); \ No newline at end of file diff --git a/assets/js/2.b398f874.js b/assets/js/2.b398f874.js new file mode 100644 index 0000000..8f41b82 --- /dev/null +++ b/assets/js/2.b398f874.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],[,,,,,,,,,,function(t,e,n){var r=n(40)("wks"),i=n(41),o=n(12).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,e,n){var r=n(12),i=n(28),o=n(15),a=n(25),s=n(44),u=function(t,e,n){var c,l,f,p,h=t&u.F,d=t&u.G,v=t&u.S,g=t&u.P,m=t&u.B,b=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,y=d?i:i[e]||(i[e]={}),x=y.prototype||(y.prototype={});for(c in d&&(n=e),n)f=((l=!h&&b&&void 0!==b[c])?b:n)[c],p=m&&l?s(f,r):g&&"function"==typeof f?s(Function.call,f):f,b&&a(b,c,f,t&u.U),y[c]!=f&&o(y,c,p),g&&x[c]!=f&&(x[c]=f)};r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(94)("wks"),i=n(95),o=n(21).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(24),i=n(42);t.exports=n(18)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(17);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";n.d(e,"d",function(){return r}),n.d(e,"a",function(){return o}),n.d(e,"i",function(){return a}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return l}),n.d(e,"b",function(){return f}),n.d(e,"e",function(){return p}),n.d(e,"k",function(){return h}),n.d(e,"l",function(){return d}),n.d(e,"c",function(){return v}),n.d(e,"j",function(){return g});const r=/#.*$/,i=/\.(md|html)$/,o=/\/$/,a=/^(https?:|mailto:|tel:)/;function s(t){return decodeURI(t).replace(r,"").replace(i,"")}function u(t){return a.test(t)}function c(t){return/^mailto:/.test(t)}function l(t){return/^tel:/.test(t)}function f(t){if(u(t))return t;const e=t.match(r),n=e?e[0]:"",i=s(t);return o.test(i)?t:i+".html"+n}function p(t,e){const n=t.hash,i=function(t){const e=t.match(r);if(e)return e[0]}(e);return(!i||n===i)&&s(t.path)===s(e)}function h(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){const r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;const i=e.split("/");n&&i[i.length-1]||i.pop();const o=t.replace(/^\//,"").split("/");for(let t=0;t({type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}))}]}(t);const s=a.sidebar||o.sidebar;if(s){const{base:t,config:n}=function(t,e){if(Array.isArray(e))return{base:"/",config:e};for(const r in e)if(0===(n=t,/(\.html|\/)$/.test(n)?n:n+"/").indexOf(encodeURI(r)))return{base:r,config:e[r]};var n;return{}}(e,s);return n?n.map(e=>(function t(e,n,r,i=1){if("string"==typeof e)return h(n,e,r);if(Array.isArray(e))return Object.assign(h(n,e[0],r),{title:e[1]});{i>3&&console.error("[vuepress] detected a too deep nested sidebar group.");const o=e.children||[];return 0===o.length&&e.path?Object.assign(h(n,e.path,r),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,children:o.map(e=>t(e,n,r,i+1)),collapsable:!1!==e.collapsable}}})(e,i,t)):[]}return[]}function v(t){let e;return(t=t.map(t=>Object.assign({},t))).forEach(t=>{2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)}),t.filter(t=>2===t.level)}function g(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e){t.exports={}},function(t,e,n){var r=n(16),i=n(72),o=n(74),a=Object.defineProperty;e.f=n(18)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(12),i=n(15),o=n(26),a=n(41)("src"),s=n(108),u=(""+s).split("toString");n(28).inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,a)||i(n,a,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(36),i=n(54);t.exports=n(38)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(75),i=n(20);t.exports=function(t){return r(i(t))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(32),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(20);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(11),i=n(48)(3);r(r.P+r.F*!n(35)([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(14);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var r=n(37),i=n(145),o=n(146),a=Object.defineProperty;e.f=n(38)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(53);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(88)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(28),i=n(12),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(71)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports={}},function(t,e,n){var r=n(109);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(76),i=n(47);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){var r=n(40)("keys"),i=n(41);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(44),i=n(75),o=n(33),a=n(31),s=n(117);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,h=e||s;return function(e,s,d){for(var v,g,m=o(e),b=i(m),y=r(s,d,3),x=a(b.length),_=0,k=n?h(e,x):u?h(e,0):void 0;x>_;_++)if((p||_ in b)&&(g=y(v=b[_],_,m),t))if(n)k[_]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return _;case 2:k.push(v)}else if(l)return!1;return f?-1:c||l?l:k}}},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r=n(21),i=n(22),o=n(87),a=n(27),s=n(39),u=function(t,e,n){var c,l,f,p=t&u.F,h=t&u.G,d=t&u.S,v=t&u.P,g=t&u.B,m=t&u.W,b=h?i:i[e]||(i[e]={}),y=b.prototype,x=h?r:d?r[e]:(r[e]||{}).prototype;for(c in h&&(n=e),n)(l=!p&&x&&void 0!==x[c])&&s(b,c)||(f=l?x[c]:n[c],b[c]=h&&"function"!=typeof x[c]?n[c]:g&&l?o(f,r):m&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((b.virtual||(b.virtual={}))[c]=f,t&u.R&&y&&!y[c]&&a(y,c,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(157),i=n(57);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(94)("keys"),i=n(95);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},,function(t,e,n){for(var r=n(104),i=n(45),o=n(25),a=n(12),s=n(15),u=n(43),c=n(10),l=c("iterator"),f=c("toStringTag"),p=u.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=i(h),v=0;vu;)r(s,n=e[u++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){var r=n(29),i=n(31),o=n(113);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=i(u.length),l=o(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(24).f,i=n(26),o=n(10)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(33),i=n(45);n(116)("keys",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(16),i=n(31),o=n(82),a=n(83);n(84)("match",1,function(t,e,n,s){return[function(n){var r=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=s(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this);if(!u.global)return a(u,c);var l=u.unicode;u.lastIndex=0;for(var f,p=[],h=0;null!==(f=a(u,c));){var d=String(f[0]);p[h]=d,""===d&&(u.lastIndex=o(c,i(u.lastIndex),l)),h++}return 0===h?null:p}]})},function(t,e,n){"use strict";var r=n(122)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(123),i=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var o=n.call(t,e);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},function(t,e,n){"use strict";n(124);var r=n(25),i=n(15),o=n(14),a=n(20),s=n(10),u=n(85),c=s("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),h=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),d=h?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e}):void 0;if(!h||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],g=n(a,p,""[t],function(t,e,n,r,i){return e.exec===u?h&&!i?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),m=g[0],b=g[1];r(String.prototype,t,m),i(RegExp.prototype,p,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}}},function(t,e,n){"use strict";var r,i,o=n(86),a=RegExp.prototype.exec,s=String.prototype.replace,u=a,c=(r=/a/,i=/b*/g,a.call(r,"a"),a.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),l=void 0!==/()??/.exec("")[1];(c||l)&&(u=function(t){var e,n,r,i,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",o.call(u))),c&&(e=u.lastIndex),r=a.call(u,t),c&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(i=1;i=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(92),i=n(52),o=n(151),a=n(27),s=n(23),u=n(152),c=n(97),l=n(161),f=n(13)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var b,y,x,_=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},k=e+" Iterator",S="values"==v,w=!1,O=t.prototype,C=O[f]||O["@@iterator"]||v&&O[v],L=C||_(v),$=v?S?_("entries"):L:void 0,j="Array"==e&&O.entries||C;if(j&&(x=l(j.call(new t)))!==Object.prototype&&x.next&&(c(x,k,!0),r||"function"==typeof x[f]||a(x,f,h)),S&&C&&"values"!==C.name&&(w=!0,L=function(){return C.call(this)}),r&&!m||!p&&!w&&O[f]||a(O,f,L),s[e]=L,s[k]=h,v)if(b={values:S?L:_("values"),keys:g?L:_("keys"),entries:$},m)for(y in b)y in O||o(O,y,b[y]);else i(i.P+i.F*(p||w),e,b);return b}},function(t,e){t.exports=!0},function(t,e,n){var r=n(56),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(22),i=n(21),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(92)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(36).f,i=n(39),o=n(13)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(57);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(55),i=n(13)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){"use strict";var r=n(16),i=n(33),o=n(31),a=n(32),s=n(82),u=n(83),c=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(84)("replace",2,function(t,e,n,d){return[function(r,i){var o=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(t,e){var i=d(n,t,this,e);if(i.done)return i.value;var f=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var g=f.global;if(g){var m=f.unicode;f.lastIndex=0}for(var b=[];;){var y=u(f,p);if(null===y)break;if(b.push(y),!g)break;""===String(y[0])&&(f.lastIndex=s(p,o(f.lastIndex),m))}for(var x,_="",k=0,S=0;S=k&&(_+=p.slice(k,O)+A,k=O+w.length)}return _+p.slice(k)}];function v(t,e,r,o,a,s){var u=r+t.length,c=o.length,l=h;return void 0!==a&&(a=i(a),l=p),n.call(s,l,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":s=a[i.slice(1,-1)];break;default:var l=+i;if(0===l)return n;if(l>c){var p=f(l/10);return 0===p?n:p<=c?void 0===o[p-1]?i.charAt(1):o[p-1]+i.charAt(1):n}s=o[l-1]}return void 0===s?"":s})}})},function(t,e,n){"use strict";var r=n(11),i=n(48)(1);r(r.P+r.F*!n(35)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";n.r(e);n(34);var r=n(19),i={name:"SidebarGroup",props:["item","open","collapsable","depth"],components:{DropdownTransition:n(103).a},beforeCreate:function(){this.$options.components.SidebarLinks=n(102).default},methods:{isActive:r.e}},o=(n(180),n(0)),a=Object(o.a)(i,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("router-link",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,sidebarDepth:t.item.sidebarDepth,depth:t.depth+1}}):t._e()],1)],1)},[],!1,null,null,null).exports;n(101);function s(t,e,n,r){return t("router-link",{props:{to:e,activeClass:"",exactActiveClass:""},class:{active:r,"sidebar-link":!0}},n)}function u(t,e,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||a>o?null:t("ul",{class:"sidebar-sub-headers"},e.map(function(e){var c=Object(r.e)(i,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[s(t,n+"#"+e.slug,e.title,c),u(t,e.children,n,i,o,a+1)])}))}var c={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,i=n.$page,o=(n.$site,n.$route),a=n.$themeConfig,c=n.$themeLocaleConfig,l=e.props,f=l.item,p=l.sidebarDepth,h=Object(r.e)(o,f.path),d="auto"===f.type?h||f.children.some(function(t){return Object(r.e)(o,f.basePath+"#"+t.slug)}):h,v="external"===f.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,f.path,f.title||f.path):s(t,f.path,f.title||f.path,d),g=i.frontmatter.sidebarDepth||p||c.sidebarDepth||a.sidebarDepth,m=null==g?1:g,b=c.displayAllHeaders||a.displayAllHeaders;return"auto"===f.type?[v,u(t,f.children,f.basePath,o,m)]:(d||b)&&f.headers&&!r.d.test(f.path)?[v,u(t,Object(r.c)(f.headers),f.path,o,m)]:v}};n(181);var l={name:"SidebarLinks",components:{SidebarGroup:a,SidebarLink:Object(o.a)(c,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth"],data:function(){return{openGroupIndex:0}},created:function(){this.refreshIndex()},watch:{$route:function(){this.refreshIndex()}},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(r.e)(this.$route,t.regularPath)}}},f=Object(o.a)(l,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,function(e,r){return n("li",{key:r},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:r===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(r)}}}):n("SidebarLink",{attrs:{sidebarDepth:t.sidebarDepth,item:e}})],1)}),0):t._e()},[],!1,null,null,null);e.default=f.exports},function(t,e,n){"use strict";var r={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},i=(n(175),n(0)),o=Object(i.a)(r,function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)},[],!1,null,null,null);e.a=o.exports},function(t,e,n){"use strict";var r=n(105),i=n(106),o=n(43),a=n(29);t.exports=n(107)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10)("unscopables"),i=Array.prototype;null==i[r]&&n(15)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r=n(71),i=n(11),o=n(25),a=n(15),s=n(43),u=n(110),c=n(78),l=n(115),f=n(10)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var b,y,x,_=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},k=e+" Iterator",S="values"==v,w=!1,O=t.prototype,C=O[f]||O["@@iterator"]||v&&O[v],L=C||_(v),$=v?S?_("entries"):L:void 0,j="Array"==e&&O.entries||C;if(j&&(x=l(j.call(new t)))!==Object.prototype&&x.next&&(c(x,k,!0),r||"function"==typeof x[f]||a(x,f,h)),S&&C&&"values"!==C.name&&(w=!0,L=function(){return C.call(this)}),r&&!m||!p&&!w&&O[f]||a(O,f,L),s[e]=L,s[k]=h,v)if(b={values:S?L:_("values"),keys:g?L:_("keys"),entries:$},m)for(y in b)y in O||o(O,y,b[y]);else i(i.P+i.F*(p||w),e,b);return b}},function(t,e,n){t.exports=n(40)("native-function-to-string",Function.toString)},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){"use strict";var r=n(111),i=n(42),o=n(78),a={};n(15)(a,n(10)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(16),i=n(112),o=n(47),a=n(46)("IE_PROTO"),s=function(){},u=function(){var t,e=n(73)("iframe"),r=o.length;for(e.style.display="none",n(114).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..37e2475acd1fbeb58b6f823f4e65ed832f3f0f6c GIT binary patch literal 1861 zcmbW!doE6waVXgoU;`i&72%2s2sj*$L?TdVRb{l25*l|v1*591 zse{+n)Y2m8n~(^)#(G*>hmVtuKc~=WG#!%p2|Cr%#FR$eTLM8Mk!U5fhO)8-m8eCe z{?8%n0I&$a8E^(6x&Ral0kII-V?YN0APREr9{67Yfr2mvMK}V9Qj!k{_5)A|2tr|? zf&vUCpZ-?f2Vhu*14N3IqKb8 z%P;uhFE{( zUPY){XBXFXBK1sN->LcWo}&)x(`FB??9u)q`|n`a{x8`duz$NI0W=7ae;$Yh7{CxM z?{1EOikkn^=~qShLFp z{G@(qc^s9N>+BgYl=x%4x#O~S?6sBeryda*EvRIjqKl(9FnFoZwY)&={RBfc{N8Rj z^1`R1U5`-Jg=OmzFtp-yhEa3$6>r&sP!Cx27Mz5R1#ypO0C)QKD zS5Fm5bxHX$KHF_MCq_%V$!QbBYId%j9~0m-^vOTS|C?S5qp~a#7obwJs9Xw1074 z$04rNN};uJ-wR6DvLBTz;baU{N1eYs$>Ah7=2znq0)PT*d+BhL-n$yl_OcKUFT7KX zMm#o{y3{2YWbbaNN!_1F3P#7;sr5pEt-bFL(W=~J`KcY=R0!IADj#2)l zenk$`yMZa*N?$$KH)s{)BPQ@zQ)`o#$BK3yE{?@m(|v>)o%GcG$Zgvwi=@f*Y!y3H zm1v^nW$VVd*0#3%TeA*=h$BueEk~4>m8}B`rOpALUi;|`%K)dR&6?uYqqT-T`)>Z( z6_=)-P?Tr!);F^jx6#i}8Y?;NMaH|^#U1OqN!*#*Q6|$wn71z$Lel%fKOkt*cnjXi zzXPCtQAo#+J#OX5FR{F{#qHioTcQm`~!BGfb}dXT{IZ z%!=*TST9rNf3c@Nr+;+hgF;UJuq7${3TZht&7?HpW9piV^ujHoP|)Cyt<9^%V2uaHPtvo}!89>eYCY`17`5N@kU$ zfK{&~vOWsAIPZN0+%an0Z1gX{lLcRy{|2qYCpE;U#B0uyLL0faSMrRfck_q*BemUY zGs0A$t0Ve4)9Fi$>}P8=X}xC~MtriS%%>~gGrQ47{kTrW+StG~tC#c=5;W+R=`$Xc zv4*u#%TSJfwWQhhH+E8J!nbr8pjlB?>K^RH!ZYb6Ec4~U9Q9wXRYSN=46nEC2m0K4 zat&s{ueHjTQ`9;Vvqzg55DDnC(*9SypY*E+>SRDHck8OnID24Kd8T;LN{0d_kXv?n z@e{iOPmf_0$HDM$@h9O*%ghELf}zqAX!<(yddw@AmHt_er?#Y=NAIwSTZ!I5;nX;T zr4983#@5Gj{%2(cb7Hmu%lrKcQh7z#oM+Ii9e^sv6rQYzh%@t;UYL|b{Kj9s + + + + + 专业技能 | lx1036 的简历 + + + + + + + +

专业技能

技能清单

  • 会使用 PHP 后端相关技术栈:

    • 使用 Composer 及相关 Toran Proxy 搭建私有 Packgist 包。使用 Laravel 框架及相关原理,并根据业务二次开发相关模块,如 database、testing、validation、filesystem、http 等相关模块。会使用 Auth 相关模块,包括不限于 OAuth/JWT、单点登录 SAML2.0 等模块。
    • 会使用 PHPUnit/Mockery 编写项目单元测试和集成测试,包括针对数据库、文件系统等有一定难度的代码测试,并结合框架二次开发测试模块。
    • 会使用数据库,如 Redis、关系型数据库 MySQL,并研究过 PHP 语言写的相关 ORM 源码,如 Laravel 框架的 ORM Eloquent 源码。会配置 Nginx。
  • 会使用 Go 后端相关技术栈:

    • 会使用 Etcd,并了解其原理。
    • 会使用 Prometheus/Grafana 做容器监控。
  • 会使用 TypeScript 前端相关技术栈:

    • 会使用 TypeScript/RxJS。会配置 Webpack,并了解自定义 Loader 和 Plugin 编写。
    • 会使用 Angular 框架,包括其 HTTP、Router、Form、Dependency Injection 等核心包,并研究过相关源码。以及会使用 UI 库 Angular Material Design 和 Angular Ant Design,并研究过相关组件的源码。会使用 Jest/Karma/Jasmine 工具编写单元测试和集成测试,并会集合 IDE 进行代码断点调试。个人觉得会断点调试和编写代码测试,对提高代码质量至关重要。
    • 基本会使用 Vue,并研究过 Vue 的源码及其实现原理,并编写过一个简单的 Vue3 框架。了解 React/Redux 相关知识。
  • 会使用容器运维相关技术栈:

    • 会使用 AWS/AliCloud 相关服务。会使用常用 DevOps 软件:Git、Gitlab CI(CD)、JIRA、Confluence、Slack、Sentry 等等。会使用 Git Workflow 来做软件迭代。会使用 Dockfile 编写镜像,Docker Compose 管理容器,了解 Kubernetes。会使用 AnsibleTerraform 以及 Packer 来构建基础资源。可以使用 Terraform + Ansible 辅助搭建路由器级别的科学上网。
  • 熟练 Redis,并熟练 Redis 实现原理,研究过 Redis 源码。

    • 熟练 Redis 的持久化方式,包括快照 RDB。
+ + + diff --git "a/\345\267\245\344\275\234\347\273\217\345\216\206.html" "b/\345\267\245\344\275\234\347\273\217\345\216\206.html" new file mode 100644 index 0000000..202ef21 --- /dev/null +++ "b/\345\267\245\344\275\234\347\273\217\345\216\206.html" @@ -0,0 +1,31 @@ + + + + + + 工作经历 | lx1036 的简历 + + + + + + + +

工作经历

北京当当网信息技术有限公司

  • 工作时间:2015/01 - 2016/07
  • 职位:核心开发者
  • 工作内容: +
    • 负责当当图书和店铺域的改版和优化,并负责后续版本迭代工作。
    • 负责当当优品馆全面改版项目,对一些老代码进行了重构优化,提高代码可读性。

RightCapital

  • 工作时间:2016/07 - 2019/07

  • 职位:技术负责人

  • 工作内容:

    • 使用 Laravel 框架编写金融软件 RightCapital 后端的 Rest API,并使用 PHPUnit/Mockery 编写单元测试和集成测试。同时,结合业务需求,对 Laravel 做了很多二次开发,并做成私有包,元数据信息放在自建的 Toran Proxy 网站上,作为所有仓库的共同私有依赖包。最后,开发和维护其他一些辅助仓库,如用来读取和分析金融数据的 Morningstar Repo 等等。编写 API 的 Swagger 文档。
    • 使用 Angular 作为前端,Laravel 作为后端,并使用 Angular Material DesignAngular Ant Design UI 组件库编写 Admin 后台,供美国客服团队使用。
    • 重写升级金融软件 RightCapital 前端的两个模块之一:Advisor Portal 模块,把其从 Angular.js 重写升级到 Angular 框架。
    • 维护云服务器 AWS,并使用 Terraform 来自动化构建基础资源。搭建一些 DevOps 软件工具,如 Gitlab CI/CD、编写 Docker images 等等,并使用 Terraform/Ansible 开发一些提高工作效率的工具,比如科学上网等等。

    奇虎360

    • 工作时间:2019/08 - 至今
    • 职位:后端开发工程师
    • 工作内容: +
      • 使用 PHP/Go/Lua 写后端服务,同时偶尔帮忙改改前端 Vue 代码什么的。
+ + + diff --git "a/\346\225\231\350\202\262\347\273\217\345\216\206.html" "b/\346\225\231\350\202\262\347\273\217\345\216\206.html" new file mode 100644 index 0000000..540be6d --- /dev/null +++ "b/\346\225\231\350\202\262\347\273\217\345\216\206.html" @@ -0,0 +1,25 @@ + + + + + + 教育经历 | lx1036 的简历 + + + + + + + +

教育经历

北京理工大学(2008-2012)

  • 学院:机电学院
  • 专业:机械电子工程
  • 学历:学士
  • 技能:主要学习基于 ARM 芯片和 Linux 系统的单片机开发,以及硬件电路设计,也包括学习数字电路和模拟电路等等知识。

北京航空航天大学(2012-2015)

  • 学院:机械学院
  • 专业:机器人技术
  • 学历:硕士
  • 技能:主要学习基于机器人实时操作系统的软件编程开发,以及使用 Qt 编写 GUI 桌面软件,也包括学习使用 Matlab 编程以及控制论等等知识。同时自学 Android/Java 开发。
+ + + diff --git "a/\350\207\252\346\210\221\344\273\213\347\273\215.html" "b/\350\207\252\346\210\221\344\273\213\347\273\215.html" new file mode 100644 index 0000000..946c319 --- /dev/null +++ "b/\350\207\252\346\210\221\344\273\213\347\273\215.html" @@ -0,0 +1,25 @@ + + + + + + 自我介绍 | lx1036 的简历 + + + + + + + +

自我介绍

个人描述

PHP 开发工程师及架构师,喜欢用代码及相关网络协议去实现业务需求,服务大众用户,同时目前也对 Go 语言颇感兴趣,还在开始学习中,对其网络模块有浓厚兴趣。同时对使用一些自动化运维工具来提高运维效率颇感兴趣,尤其是使用容器技术来高效运维,包括对涉及容器技术的 Linux Kernel 相关知识。

还有对 Web 前端编程来做 Web 页面很感兴趣,对一些技术框架如 Angular/Vue 等颇感兴趣,并会研究其相关实现原理。同时,也在关注 React 技术发展。

平时经常活跃于国内的技术社区,包括但不限于 Laravel China 社区、掘金、SegmentFault 以及知乎等等。国外技术社区主要包括 Medium 技术社区,以及关注很多 Twitter 技术账号(强烈建议没事刷刷很多大牛以及技术工具的 Twitter 账号,收获颇多)。

对强大的网络宽带,以及科学上网需求旺盛。编程开发喜欢 Mac OS X 系统,因为很多好用技术软件只有该平台拥有。

爱好 😃

爱好旅游,争取有时间就去看看大千世界。爱好动漫,有时间就去参加动漫展,关注国内动漫发展情况。喜欢健身。😊

+ + + diff --git "a/\351\235\242\350\257\225\345\256\211\346\216\222.html" "b/\351\235\242\350\257\225\345\256\211\346\216\222.html" new file mode 100644 index 0000000..7bb0b2c --- /dev/null +++ "b/\351\235\242\350\257\225\345\256\211\346\216\222.html" @@ -0,0 +1,22 @@ + + + + + + lx1036 的简历 + + + + + + + + + + + diff --git "a/\351\235\242\350\257\225\347\273\217\351\252\214.html" "b/\351\235\242\350\257\225\347\273\217\351\252\214.html" new file mode 100644 index 0000000..0efeb03 --- /dev/null +++ "b/\351\235\242\350\257\225\347\273\217\351\252\214.html" @@ -0,0 +1,21 @@ + + + + + + lx1036 的简历 + + + + + + + +

滴滴二面:

  1. 在 RightCapital 的项目经历,主要是谈我工作的内容,
  2. Admin (给美国客服产品团队用的)前后端。
+ + + diff --git "a/\351\235\242\350\257\225\351\202\200\350\257\267.html" "b/\351\235\242\350\257\225\351\202\200\350\257\267.html" new file mode 100644 index 0000000..5b81451 --- /dev/null +++ "b/\351\235\242\350\257\225\351\202\200\350\257\267.html" @@ -0,0 +1,21 @@ + + + + + + 面试邀请 | lx1036 的简历 + + + + + + + + + + + diff --git "a/\351\235\242\350\257\225\351\242\230\347\233\256.html" "b/\351\235\242\350\257\225\351\242\230\347\233\256.html" new file mode 100644 index 0000000..5b7edac --- /dev/null +++ "b/\351\235\242\350\257\225\351\242\230\347\233\256.html" @@ -0,0 +1,21 @@ + + + + + + 后端 | lx1036 的简历 + + + + + + + +

后端

算法与数据结构

数据结构

  1. 二叉树

  2. 平衡二叉树

  3. B-Tree

算法

  1. 排序算法

数据库

Redis

  1. Redis 支持的数据结构?
  • Redis 是一种非关系型内存数据库,可以存储 key 与 5 种不同数据结构类型的 value,这 5 种数据结构包括 string(字符串、整数、浮点数)、list(链表,链表上的每一个节点都可以是 string)、set(包含 string 的无序收集器,且每一个 string 都不相同)、hash(无序散列表)以及 zset(有序集合)。
  • list 链表,使用场景比如微博的粉丝列表;hash 一般用来存储对象,比如当前用户信息或者商品信息;set 类似于 list,但是可以排重,在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合,Redis可以非常方便的实现如共同关注等功能;sorted set,有序集合,比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜。
  1. Redis 的两种持久化操作以及如何保证数据安全(快照和AOF)?
  • 通过快照功能把某个时间点的数据存储一个副本。
  • AOF 就是周期性的把写操作命令写入到记录文件内。
  1. Redis 如何防止数据出错(Redis 事务)?
  • Redis 有简单的事务功能,开始命令 MULTI,结束命令 EXEC。实际上它是把多个命令的一组集合,一个事务中所有命令都会被序列化,按顺序执行而不会被其他命令插入。

MySQL

PHP

前端

运维

设计模式

单例模式

容器单例模式示例-PHP

装饰器模式

+ + + diff --git "a/\351\241\271\347\233\256\347\273\217\345\216\206.html" "b/\351\241\271\347\233\256\347\273\217\345\216\206.html" new file mode 100644 index 0000000..9c1fe6d --- /dev/null +++ "b/\351\241\271\347\233\256\347\273\217\345\216\206.html" @@ -0,0 +1,31 @@ + + + + + + 项目经历 | lx1036 的简历 + + + + + + + +

项目经历

RightCapital Consumer API/Web 项目

  • 项目用途:面向 to C 的金融软件 Consumer API 后端,以及面向 to B 的 Enterprise API 后端,为个人提供财务规划业务,为企业提供 API 并获得相关金融数据。
  • 工作内容: +
    • 编写 Integration 模块,与美国各大金融公司做数据集成,比如最近我刚刚上线的与 CapitectMorningstar 的数据集成。涉及的技术包括:Filesystem、OAuth/JWT、SAML2.0(单点登录)等等,并使用 PHPUnit/Mockery 编写详细的单元测试和集成测试。
    • 针对不同金融公司,各种奇奇怪怪的不遵循 OAuth2.0 标准的 OAuth API,二次开发编写相关 OAuth 扩展包。编写测试框架,结合 Laravel 框架提供的 testing API 进行二次开发,并针对 Web 和 Mobile 端提供对应的测试登录。为了精细化控制测试结果,并编写了把测试结果 Json Reponse Code/Headers/Content 写入 json 文件的相关模块代码,同时编写了从 YAML 文件读取期望数据的相关模块代码。使用 Lumen 编写 Enterprise API 项目,二次开发 Laravel Validation 模块,添加很多自定义 validation rule,并编写 Swagger 文档。
    • 把前端项目的两个模块之一 Advisor Portal,从 Angular.js 升级到 Angular。使用 Karma 和 Jasmine 简单编写单元测试。

RightCapital Admin 后台项目

  • 项目用途:面向美国客服销售团队的后台 Admin 项目。
  • 工作内容: +
    • 使用 Laravel 框架提供后端 Restful API 数据。使用 Angular 提供前端 Web 页面,并使用相关 datatable 库提供丰富的表格交互功能。大量使用 @angular/router、@angular/common/http、@angular/forms 等模块的知识,以及相关 UI 包,如 Angular Material Design 和 Angular Ant Design。使用 Karma 和 Jasmine 编写单元测试和一些组件的集成测试。
+ + +