├── .gitignore ├── 404.html ├── CNAME ├── README.md ├── build ├── asset-manifest.json ├── favicon.png ├── index.html ├── manifest.json ├── precache-manifest.5b944913a935c47467ec4ba6f614f08c.js ├── service-worker.js └── static │ ├── css │ ├── 4.aaac454e.chunk.css │ ├── 4.aaac454e.chunk.css.map │ ├── 5.bb30582d.chunk.css │ ├── 5.bb30582d.chunk.css.map │ ├── main.153b3e4b.chunk.css │ └── main.153b3e4b.chunk.css.map │ ├── js │ ├── 0.0af06a11.chunk.js │ ├── 0.0af06a11.chunk.js.map │ ├── 3.3d919560.chunk.js │ ├── 3.3d919560.chunk.js.map │ ├── 4.83a8f0b6.chunk.js │ ├── 4.83a8f0b6.chunk.js.map │ ├── 5.dd2ae916.chunk.js │ ├── 5.dd2ae916.chunk.js.map │ ├── 6.a6d3a1ea.chunk.js │ ├── 6.a6d3a1ea.chunk.js.map │ ├── 7.e5d813cd.chunk.js │ ├── 7.e5d813cd.chunk.js.map │ ├── 8.95bb3363.chunk.js │ ├── 8.95bb3363.chunk.js.map │ ├── 9.b268cb11.chunk.js │ ├── 9.b268cb11.chunk.js.map │ ├── main.1d392f0c.chunk.js │ ├── main.1d392f0c.chunk.js.map │ ├── runtime~main.750e7f62.js │ └── runtime~main.750e7f62.js.map │ └── media │ ├── about.a370cc15.jpg │ ├── fonts.gstatic.a6d77c5a.woff2 │ ├── header.9e6dc261.png │ └── iconfont.e0fd.e0fd47ef.woff ├── index.html ├── package.json ├── public ├── favicon.png ├── index.html └── manifest.json ├── src ├── App.css ├── App.js ├── admin.css ├── admin │ ├── article.js │ ├── category.js │ ├── home.js │ ├── index.js │ └── publish.js ├── components │ ├── back.js │ ├── backTop.js │ ├── comment.js │ ├── donate.js │ ├── footer.js │ ├── header.js │ ├── loader.js │ ├── markide.js │ ├── markview.js │ ├── nav.js │ ├── pager.js │ ├── profile.js │ └── user.js ├── fonts │ ├── fonts.gstatic.woff2 │ └── iconfont.e0fd.woff ├── img │ ├── about.jpg │ ├── alipay.jpg │ ├── header.png │ └── wechat.png ├── index.js ├── login │ └── index.js ├── mark.css ├── pages │ ├── about.js │ ├── archives.js │ ├── article.js │ ├── categories.js │ ├── home.js │ ├── index.js │ └── search.js ├── registerServiceWorker.js └── util │ ├── Fetch.js │ ├── api.js │ └── evanyou.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | 11 | 12 | # misc 13 | .DS_Store 14 | .env 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | 19 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | XboxYan' Blog
Loading…
-------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | notes.codelabo.cn -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # notes 2 | a repository for blog 3 | 4 | 采用 [github api V4](https://developer.github.com/v4/) 实现前后端分离 5 | 6 | [https://github.com/XboxYan/notes/issues](https://github.com/XboxYan/notes/issues) 7 | 8 | [https://notes.codelabo.cn](https://notes.codelabo.cn) 9 | 10 | 评论系统采用[gittalk](https://gitalk.github.io/)实现 11 | -------------------------------------------------------------------------------- /build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "static/js/0.0af06a11.chunk.js": "/build/static/js/0.0af06a11.chunk.js", 4 | "static/js/0.0af06a11.chunk.js.map": "/build/static/js/0.0af06a11.chunk.js.map", 5 | "main.css": "/build/static/css/main.153b3e4b.chunk.css", 6 | "main.js": "/build/static/js/main.1d392f0c.chunk.js", 7 | "main.js.map": "/build/static/js/main.1d392f0c.chunk.js.map", 8 | "runtime~main.js": "/build/static/js/runtime~main.750e7f62.js", 9 | "runtime~main.js.map": "/build/static/js/runtime~main.750e7f62.js.map", 10 | "static/js/3.3d919560.chunk.js": "/build/static/js/3.3d919560.chunk.js", 11 | "static/js/3.3d919560.chunk.js.map": "/build/static/js/3.3d919560.chunk.js.map", 12 | "static/css/4.aaac454e.chunk.css": "/build/static/css/4.aaac454e.chunk.css", 13 | "static/js/4.83a8f0b6.chunk.js": "/build/static/js/4.83a8f0b6.chunk.js", 14 | "static/js/4.83a8f0b6.chunk.js.map": "/build/static/js/4.83a8f0b6.chunk.js.map", 15 | "static/css/5.bb30582d.chunk.css": "/build/static/css/5.bb30582d.chunk.css", 16 | "static/js/5.dd2ae916.chunk.js": "/build/static/js/5.dd2ae916.chunk.js", 17 | "static/js/5.dd2ae916.chunk.js.map": "/build/static/js/5.dd2ae916.chunk.js.map", 18 | "static/js/6.a6d3a1ea.chunk.js": "/build/static/js/6.a6d3a1ea.chunk.js", 19 | "static/js/6.a6d3a1ea.chunk.js.map": "/build/static/js/6.a6d3a1ea.chunk.js.map", 20 | "static/js/7.e5d813cd.chunk.js": "/build/static/js/7.e5d813cd.chunk.js", 21 | "static/js/7.e5d813cd.chunk.js.map": "/build/static/js/7.e5d813cd.chunk.js.map", 22 | "static/js/8.95bb3363.chunk.js": "/build/static/js/8.95bb3363.chunk.js", 23 | "static/js/8.95bb3363.chunk.js.map": "/build/static/js/8.95bb3363.chunk.js.map", 24 | "static/js/9.b268cb11.chunk.js": "/build/static/js/9.b268cb11.chunk.js", 25 | "static/js/9.b268cb11.chunk.js.map": "/build/static/js/9.b268cb11.chunk.js.map", 26 | "index.html": "/build/index.html", 27 | "precache-manifest.5b944913a935c47467ec4ba6f614f08c.js": "/build/precache-manifest.5b944913a935c47467ec4ba6f614f08c.js", 28 | "service-worker.js": "/build/service-worker.js", 29 | "static/css/4.aaac454e.chunk.css.map": "/build/static/css/4.aaac454e.chunk.css.map", 30 | "static/css/5.bb30582d.chunk.css.map": "/build/static/css/5.bb30582d.chunk.css.map", 31 | "static/css/main.153b3e4b.chunk.css.map": "/build/static/css/main.153b3e4b.chunk.css.map", 32 | "static/media/about.jpg": "/build/static/media/about.a370cc15.jpg", 33 | "static/media/App.css": "/build/static/media/iconfont.e0fd.e0fd47ef.woff", 34 | "static/media/header.png": "/build/static/media/header.9e6dc261.png" 35 | } 36 | } -------------------------------------------------------------------------------- /build/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XboxYan/notes/8814a8957ec0f6e98f25ec547361f539c4fdb3b1/build/favicon.png -------------------------------------------------------------------------------- /build/index.html: -------------------------------------------------------------------------------- 1 | XboxYan' Blog
Loading…
-------------------------------------------------------------------------------- /build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /build/precache-manifest.5b944913a935c47467ec4ba6f614f08c.js: -------------------------------------------------------------------------------- 1 | self.__precacheManifest = (self.__precacheManifest || []).concat([ 2 | { 3 | "revision": "f7d94222f8512019302b4f94707e1bd7", 4 | "url": "/build/index.html" 5 | }, 6 | { 7 | "revision": "5307b25d5eb831123da4", 8 | "url": "/build/static/css/4.aaac454e.chunk.css" 9 | }, 10 | { 11 | "revision": "6692e6666bb67e4dce5f", 12 | "url": "/build/static/css/5.bb30582d.chunk.css" 13 | }, 14 | { 15 | "revision": "a6a02bd13c20443090b0", 16 | "url": "/build/static/css/main.153b3e4b.chunk.css" 17 | }, 18 | { 19 | "revision": "277ee21893ec265c56ac", 20 | "url": "/build/static/js/0.0af06a11.chunk.js" 21 | }, 22 | { 23 | "revision": "dd52f2932cdfab75a128", 24 | "url": "/build/static/js/3.3d919560.chunk.js" 25 | }, 26 | { 27 | "revision": "5307b25d5eb831123da4", 28 | "url": "/build/static/js/4.83a8f0b6.chunk.js" 29 | }, 30 | { 31 | "revision": "6692e6666bb67e4dce5f", 32 | "url": "/build/static/js/5.dd2ae916.chunk.js" 33 | }, 34 | { 35 | "revision": "cca82860d9873618257a", 36 | "url": "/build/static/js/6.a6d3a1ea.chunk.js" 37 | }, 38 | { 39 | "revision": "3451ed1793dfd7412697", 40 | "url": "/build/static/js/7.e5d813cd.chunk.js" 41 | }, 42 | { 43 | "revision": "b448a45a4679897b28ff", 44 | "url": "/build/static/js/8.95bb3363.chunk.js" 45 | }, 46 | { 47 | "revision": "a4c0026098f363943e79", 48 | "url": "/build/static/js/9.b268cb11.chunk.js" 49 | }, 50 | { 51 | "revision": "a6a02bd13c20443090b0", 52 | "url": "/build/static/js/main.1d392f0c.chunk.js" 53 | }, 54 | { 55 | "revision": "1d9c7fbcedeb91108530", 56 | "url": "/build/static/js/runtime~main.750e7f62.js" 57 | }, 58 | { 59 | "revision": "a370cc156ca14e72b72d7fcf594f7217", 60 | "url": "/build/static/media/about.a370cc15.jpg" 61 | }, 62 | { 63 | "revision": "a6d77c5ac08ce09305db064acfaee435", 64 | "url": "/build/static/media/fonts.gstatic.a6d77c5a.woff2" 65 | }, 66 | { 67 | "revision": "9e6dc26180ab86b91f17f6c154cfd41d", 68 | "url": "/build/static/media/header.9e6dc261.png" 69 | }, 70 | { 71 | "revision": "e0fd47ef0bec15760d4a192c2c62dd22", 72 | "url": "/build/static/media/iconfont.e0fd.e0fd47ef.woff" 73 | } 74 | ]); -------------------------------------------------------------------------------- /build/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Welcome to your Workbox-powered service worker! 3 | * 4 | * You'll need to register this file in your web app and you should 5 | * disable HTTP caching for this file too. 6 | * See https://goo.gl/nhQhGp 7 | * 8 | * The rest of the code is auto-generated. Please don't update this file 9 | * directly; instead, make changes to your Workbox build configuration 10 | * and re-run your build process. 11 | * See https://goo.gl/2aRDsh 12 | */ 13 | 14 | importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); 15 | 16 | importScripts( 17 | "/build/precache-manifest.5b944913a935c47467ec4ba6f614f08c.js" 18 | ); 19 | 20 | self.addEventListener('message', (event) => { 21 | if (event.data && event.data.type === 'SKIP_WAITING') { 22 | self.skipWaiting(); 23 | } 24 | }); 25 | 26 | workbox.core.clientsClaim(); 27 | 28 | /** 29 | * The workboxSW.precacheAndRoute() method efficiently caches and responds to 30 | * requests for URLs in the manifest. 31 | * See https://goo.gl/S9QRab 32 | */ 33 | self.__precacheManifest = [].concat(self.__precacheManifest || []); 34 | workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); 35 | 36 | workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/build/index.html"), { 37 | 38 | blacklist: [/^\/_/,/\/[^\/]+\.[^\/]+$/], 39 | }); 40 | -------------------------------------------------------------------------------- /build/static/css/4.aaac454e.chunk.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["gitalk.css"],"names":[],"mappings":"AAAA,WACE,yBAA0B,CAC1B,otEACF,CAEA,eACE,yBAA0B,CAC1B,6BAA8B,CAE9B,aAAc,CACd,iIAAkJ,CAClJ,cAAe,CACf,eAAgB,CAChB,oBACF,CAEA,qBACE,aACF,CAEA,iDAEE,aACF,CAEA,2CAEE,aACF,CAEA,mDAEE,aACF,CAEA,uBACE,aACF,CAEA,qBACE,aACF,CAEA,gMAOE,aACF,CAEA,4CAEE,aACF,CAEA,sBACE,aACF,CAEA,sBACE,aAAc,CACd,wBACF,CAEA,sBACE,aAAc,CACd,wBACF,CAEA,6BACE,YACF,CAEA,8BACE,eAAiB,CACjB,aACF,CAEA,sBACE,aACF,CAEA,yEAGE,eAAiB,CACjB,aACF,CAEA,sBACE,iBAAkB,CAClB,aACF,CAEA,sBACE,eAAiB,CACjB,aACF,CAEA,sBACE,aAAc,CACd,wBACF,CAEA,uBACE,aAAc,CACd,wBACF,CAEA,sBACE,aAAc,CACd,wBACF,CAEA,uBACE,aAAc,CACd,wBACF,CAEA,uBACE,eAAiB,CACjB,aACF,CAEA,sBACE,aACF,CAEA,sBACE,aACF,CAEA,wBACE,yBAA0B,CAC1B,aACF,CAEA,wBACE,oBAAqB,CACrB,uBAAwB,CACxB,iBACF,CAEA,iBACE,4BAA6B,CAC7B,oCACF,CAEA,+CAEE,eACF,CAEA,sBACE,mBAAoB,CAIpB,kBAHF,CAMA,kBAEE,cACF,CAEA,mBACE,iBACF,CAEA,8BACE,eACF,CAEA,0DAGE,+BAAiC,CACjC,aACF,CAEA,kBAEU,sBAAuB,CAE/B,gBACF,CAEA,qBACE,YAAa,CACb,QAAS,CAIT,gBAHF,CAMA,+BAEU,qBAAsB,CAC9B,SACF,CAEA,iBAEU,qBACV,CAEA,qBACE,mBAAoB,CACpB,iBAAkB,CAClB,mBACF,CAEA,iBACE,aAAc,CACd,oBACF,CAEA,uBACE,yBACF,CAEA,sBACE,eACF,CAEA,kBACE,QAAS,CACT,aAAc,CACd,eAAgB,CAChB,sBAAuB,CAEvB,+BACF,CAOA,iDAJE,aAAc,CACd,UAOF,CAJA,wBAEE,UAEF,CAEA,qBACE,gBAAiB,CACjB,wBACF,CAEA,oCAEE,SACF,CAEA,4GAME,YAAa,CACb,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,iBACE,YAAa,CACb,kBACF,CAEA,0BACE,QACF,CAEA,oCAEE,cAAe,CACf,YAAa,CACb,eACF,CAEA,0CAEE,2BACF,CAEA,gGAIE,2BACF,CAEA,kBACE,aACF,CAEA,oBACE,2EAAqF,CACrF,cACF,CAEA,mBACE,YAAa,CACb,eAAgB,CAChB,yEACF,CAEA,wBACE,0BACF,CAEA,qBACE,wBACF,CAEA,qBACE,0BACF,CAEA,qBACE,0BACF,CAEA,qBACE,2BACF,CAEA,qBACE,2BACF,CAEA,qBACE,2BACF,CAEA,qBACE,2BACF,CAOA,2CAJE,aAAc,CACd,UAOF,CAJA,qBAEE,UAEF,CAEA,4BACE,sBACF,CAEA,2BACE,yBACF,CAEA,6BACE,aAAc,CACd,oBACF,CAEA,uBACE,UAAW,CACX,iBAAkB,CAClB,iBAAkB,CAClB,aACF,CAEA,6BACE,YACF,CAEA,yIAOE,YAAa,CACb,kBACF,CAEA,kBACE,YAAc,CACd,SAAU,CACV,aAAc,CACd,wBAAyB,CACzB,QACF,CAEA,0BACE,aAAc,CACd,aAAc,CACd,+BACF,CAEA,uCACE,YACF,CAEA,sCACE,eACF,CAEA,mBAGE,cAAe,CAMf,wBAA4B,CAA5B,2BAA4B,CAGpB,iCACV,CAEA,4GAME,eAAgB,CAChB,kBAAmB,CACnB,eAAgB,CAChB,gBACF,CAEA,gMAME,aAAc,CACd,qBAAsB,CACtB,iBACF,CAEA,gMAME,oBACF,CAEA,oRAME,kBACF,CAEA,kBAEE,aAEF,CAEA,oCALE,mBAAqB,CAErB,+BAOF,CAJA,kBAEE,eAEF,CAEA,kBACE,gBACF,CAEA,kBACE,aACF,CAEA,kBACE,gBACF,CAEA,kBACE,eAAiB,CACjB,aACF,CAEA,oCAEE,gBACF,CAEA,oFAIE,YAAa,CACb,eACF,CAEA,oBACE,eACF,CAEA,qBACE,gBACF,CAEA,kBACE,SACF,CAEA,qBACE,SAAU,CACV,eAAgB,CAChB,aAAc,CACd,iBAAkB,CAClB,eACF,CAEA,qBACE,cAAe,CACf,kBACF,CAEA,qBACE,aAAc,CACd,UAAW,CACX,aACF,CAEA,wBACE,eACF,CAEA,gDAEE,gBAAiB,CACjB,wBACF,CAEA,wBACE,qBAAsB,CACtB,4BACF,CAEA,sCACE,wBACF,CAEA,mBACE,cAAe,CAEP,sBAAuB,CAC/B,qBACF,CAEA,oBAGE,cAAqB,CACrB,QAAS,CACT,aAAc,CACd,mCAAqC,CACrC,iBACF,CAEA,qDAEE,oBAAsB,CACtB,aACF,CAEA,mBACE,gBACF,CAEA,wBACE,SAAU,CACV,QAAS,CACT,cAAe,CACf,iBAAkB,CAClB,eAAgB,CAChB,sBAAuB,CACvB,QACF,CAEA,0BACE,kBACF,CAEA,8BACE,eAAgB,CAChB,iBACF,CAEA,iDAEE,YAAa,CACb,aAAc,CACd,aAAc,CACd,gBAAiB,CACjB,wBAAyB,CACzB,iBACF,CAEA,wBACE,cAAe,CACf,cAAe,CACf,SAAU,CACV,QAAS,CACT,gBAAiB,CACjB,mBAAoB,CACpB,gBAAiB,CACjB,4BAA6B,CAC7B,QACF,CAEA,6DAEE,cACF,CAEA,8DACE,aAAc,CACd,oBACF,CAEA,mBACE,oBAAqB,CACrB,eAAgB,CAChB,yEAAmF,CACnF,gBAAiB,CACjB,aAAc,CACd,qBAAsB,CACtB,wBAAyB,CAEzB,wBAA4B,CAA5B,2BAA4B,CAC5B,iBAAkB,CAEV,iCACV,CAEA,qCACE,iBAAkB,CAClB,SAAU,CACV,oBACF,CAEA,+BACE,oBACF,CAEA,+CACE,cACF,CAEA,qCACE,0BAA6B,CAC7B,qBACF,CAEA,kBACE,wBACF,CAKA,cAGE,cAWF,CACA,8BAbU,qBAgBV,CACA,gBACE,aACF,CACA,sBACE,aAAc,CACd,oBACF,CACA,2BACE,UAAW,CACX,wBACF,CACA,iCACE,UACF,CACA,oBACE,sBACF,CACA,sBACE,oBAAqB,CACrB,SAAU,CACV,UAAW,CACX,kBACF,CACA,0BACE,UAAW,CACX,WAAY,CACZ,YACF,CACA,sBACE,oBACF,CACA,2BACE,mBACF,CAKA,kEACE,UAAW,CACX,WACF,CACA,iCACE,YACF,CACA,0BACE,iBACF,CACA,iCACE,UAAW,CAEH,qBAAsB,CAC9B,iBAAkB,CAClB,OAAQ,CACR,WAAa,CACb,YAAc,CACd,mBAAqB,CACrB,mBAAqB,CACrB,iBAAkB,CAElB,qBAAyB,CAAzB,wBAAyB,CACzB,kDAAoD,CAC5C,0CACV,CACA,yBACE,iBAAkB,CAClB,qBAAsB,CACtB,iDAAkD,CAC1C,yCAA0C,CAClD,oBAAqB,CACrB,iBAAkB,CAClB,YAAa,CACb,aAAc,CACd,kBAAmB,CACnB,iBACF,CACA,gCACE,UAAW,CACX,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,QAAS,CACT,mBAAqB,CACrB,oBAAsB,CACtB,YAAc,CACd,aAAe,CACf,qBAAsB,CACtB,iBACF,CACA,yBACE,oBAAqB,CACrB,aAAc,CACd,cACF,CACA,yBACE,yBACE,SAAU,CACV,UACF,CACF,CACA,6BACE,UAAW,CACX,WAAY,CACZ,iBACF,CACA,gCACE,SAAU,CACV,UACF,CACA,yBACE,gCACE,aAAc,CACd,cACF,CACF,CACA,sBACE,oBAAsB,CACtB,oBAAqB,CACrB,aAAc,CACd,oBAAqB,CACrB,kBAAmB,CACnB,cAAe,CACf,wBAAyB,CACzB,iBAAkB,CAClB,wBAAyB,CACzB,UAAW,CACX,YAAa,CACb,eACF,CACA,2BACE,eACF,CACA,8BACE,iBAAkB,CAClB,gBAAkB,CAClB,oBAAqB,CACrB,WAAa,CACb,UAAW,CACX,kBACF,CACA,kCACE,kBAAmB,CACnB,UACF,CACA,4BACE,cACF,CACA,8BACE,qBAAsB,CACtB,aACF,CACA,oCACE,wBAAyB,CACzB,oBACF,CACA,mCACE,wBAAyB,CACzB,oBACF,CACA,wBACE,iBAAkB,CAClB,aAAe,CACf,aACF,CACA,0BACE,gBAAiB,CACjB,iBACF,CACA,+BACE,kBAAoB,CACpB,aACF,CACA,0BACE,gBAAiB,CACjB,iBACF,CACA,uBACE,gCACF,CACA,6DAEE,oBACF,CACA,uBACE,eAAgB,CAChB,aAAc,CAEd,+BAAgC,CAChC,aAAc,CACd,iBAAkB,CAClB,UACF,CACA,2DAEE,WAAY,CACZ,aACF,CACA,6BACE,UACF,CACA,yBACE,mBACF,CACA,uBACE,WAAY,CACZ,QAAS,CACT,aACF,CACA,2BACE,UAAW,CACX,WAAY,CACZ,kBAAmB,CACnB,iBACF,CACA,6BACE,oBAAqB,CACrB,cACF,CACA,+BACE,oBACF,CACA,mCACE,YACF,CACA,+CACE,YACF,CACA,0BACE,aAAc,CACd,kBACF,CACA,4BACE,qBAAwB,CACxB,4BAA6B,CAC7B,gBACF,CACA,wBACE,iBAAkB,CAClB,OAAQ,CACR,WAAY,CACZ,eAAgB,CAChB,oBAAqB,CACrB,wBAAyB,CACzB,gBAAkB,CAClB,gBAAkB,CAClB,mBACF,CACA,mCACE,cAAe,CACf,aAAc,CACd,aAAe,CACf,iBAAkB,CAClB,iBAAkB,CAClB,oBACF,CACA,qDACE,UAAW,CACX,WAAa,CACb,YAAc,CACd,kBAAmB,CACnB,iBAAkB,CAClB,SAAW,CACX,WACF,CACA,yBACE,iBAAkB,CAGlB,YACF,CACA,iCAGU,QAAO,CACf,kBACF,CACA,yBACE,iCACE,kBACF,CACF,CACA,kCACE,aAAe,CACf,aAAc,CAEN,qBAAsB,CAC9B,UAAW,CACX,kBAAmB,CACnB,eAAgB,CAChB,iBAAkB,CAClB,+BAAiC,CACjC,gBAAkB,CAClB,oBAAqB,CACrB,eAAgB,CAChB,wBAAyB,CACzB,YAAa,CACb,gCAAkC,CAClC,wBACF,CACA,wCACE,wBACF,CACA,iCACE,aAAe,CACf,iBAAkB,CAClB,+BAAiC,CACjC,wBACF,CACA,kCACE,iBAAkB,CAClB,gBACF,CACA,iFAEE,WAAY,CACZ,aACF,CACA,wCACE,UACF,CACA,yBACE,kCACE,QACF,CACF,CACA,sCACE,gBAAkB,CAClB,aAAc,CACd,oBAAqB,CACrB,kBACF,CACA,yBACE,sCACE,YACF,CACF,CACA,0CACE,WAAY,CACZ,kBACF,CACA,yBACE,0CACE,UAAW,CACX,UAAW,CACX,gBACF,CACF,CACA,oBACE,UAAW,CACX,cAAe,CACf,WAAY,CACZ,MAAO,CACP,OAAQ,CACR,KAAM,CACN,SACF,CACA,+BACE,iBACF,CACA,qCACE,UAAW,CACX,cAAe,CACf,QAAU,CACV,MAAO,CACP,OAAQ,CACR,KAAM,CACN,eAAgB,CAChB,UAAY,CACZ,wCAA2C,CAC3C,gCAAmC,CACnC,YACF,CACA,kDACE,aACF,CACA,2BACE,kBACF,CACA,gCACE,iBACF,CACA,oCACE,eAAgB,CAChB,iBACF,CACA,0BACE,iBAAkB,CAClB,gBAAkB,CAGlB,YACF,CACA,kCAGU,QAAO,CACf,kBAAmB,CACnB,iBAAmB,CACnB,wBAAyB,CACzB,aAAc,CACd,gCAAkC,CAClC,wBACF,CACA,wCAEU,oCACV,CACA,yBACE,kCACE,kBAAoB,CACpB,oBACF,CACF,CACA,iCACE,kBAAoB,CACpB,gBAAkB,CAClB,iBACF,CACA,mCACE,eAAgB,CAChB,aAAc,CACd,oBACF,CACA,yCACE,yBACF,CAKA,8DACE,gBAAkB,CAClB,aACF,CACA,8FAGE,iBAAkB,CAClB,cACF,CACA,gHAGE,cACF,CACA,+BACE,KAAM,CACN,SACF,CACA,+DAEE,KAAM,CACN,OACF,CACA,+BACE,oBACF,CACA,oDACE,wBACF,CACA,gCACE,GACE,2BAA4B,CACpB,mBACV,CACA,GACE,+BAAiC,CACzB,uBACV,CACF,CACA,wBACE,GACE,2BAA4B,CACpB,mBACV,CACA,GACE,+BAAiC,CACzB,uBACV,CACF","file":"4.aaac454e.chunk.css"} -------------------------------------------------------------------------------- /build/static/css/5.bb30582d.chunk.css: -------------------------------------------------------------------------------- 1 | hr{margin:1em 0;border:0;border-top:1px solid #eee}ol,ul{margin-left:22px;padding-left:0}ol p,ul p{margin:0}li{font-size:15px;margin:8px 0;list-style-type:none;position:relative}ul li:before{position:absolute;left:-12px;top:0;content:"-";width:2px;height:2px}ol{counter-reset:count}ol li:before{position:absolute;left:-15px;top:0;content:counter(count) ".";counter-increment:count;width:2px;height:2px}pre{overflow:auto;font-size:13.5px;color:#4d4d4c;background:#fcfdfd}.code,code,pre{font-family:consolas},code{padding:2px 4px;word-wrap:break-word;font-size:13.5px}pre code{padding:0;color:#4d4d4c;background:none;text-shadow:none}pre{padding:10px;margin:20px 0;border-radius:6px;text-shadow:1px 2px 1px rgba(0,0,0,.009);box-shadow:0 1px 2px rgba(0,0,0,.05)}pre table{margin:0;width:auto;border:none}pre td{border:none;padding:0}pre figcaption{font-size:1em;color:#4d4d4c;line-height:1em;margin-bottom:1em}.highlight figcaption:before,pre figcaption:after{content:" ";display:table}pre figcaption:after{clear:both}pre figcaption a{float:right;color:#4d4d4c}pre figcaption a:hover{border-bottom-color:#4d4d4c}pre .gutter pre{margin:0;text-align:right;font-size:12px;color:#606a6d;font-family:Arial,"sans-serif";padding-left:10px;padding-right:10px;background-color:#fcfdfd}pre pre{width:100%}pre .line,pre hr{display:inline-block;padding:2px 0;height:20px;border:none}pre .marked{width:100%;border-left:2px solid #727272;margin:.5em 0;padding-left:.5em}.gutter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gist table{width:auto}.gist table td{border:none}pre .deletion{background:#fdd}pre .addition{background:#dfd}pre .meta,pre .quote{color:#8959a8}.code{color:#4271ae}pre .comment{color:#c6c6c6}pre .attribute,pre .css .class,pre .css .id,pre .css .pseudo,pre .html .doctype,pre .name,pre .regexp,pre .ruby .constant,pre .variable,pre .xml .doctype,pre .xml .pi,pre .xml .tag .title{color:#e24c38}pre .tag{color:#8e908c}pre .attr,pre .bullet{color:#3e999f}pre .built_in,pre .command,pre .constant,pre .literal,pre .number,pre .params,pre .symbol,pre preprocessor{color:#e78c45}pre .formula,pre .header,pre .inheritance,pre .number,pre .ruby .class .title,pre .ruby .symbol,pre .special,pre .string,pre .value,pre .xml .cdata{color:#718c00}pre .css .hexcolor,pre .css .selector-class,pre .title{color:#3e999f}pre .css .attribute{color:#8293ef}pre .coffeescript .title,pre .function,pre .javascript .title,pre .perl .sub,pre .python .decorator,pre .python .title,pre .ruby .function .title,pre .ruby .title .keyword{color:#4271ae}pre .javascript .function,pre .keyword,pre .section{color:#e24c38}pre{position:relative;width:100%}pre .emphasis{font-style:italic;color:#718c00}pre .strong{font-weight:700;color:#8293ef}pre .link{text-decoration:underline;color:#e78c45}pre code:after{position:absolute;top:0;right:0;color:#ccc;content:"Code";font-size:12px;padding:5px 10px 0;height:15px}code.html:after{content:"HTML"}code.javascript:after,code.js:after{content:"JS"}code.bash:after,code.cmd:after,code.Powershell:after,code.sh:after{content:"Shell"}code.css:after{content:"CSS"}code.sass:after{content:"SASS"}code.less:after{content:"LESS"}code.style:after{content:"Style"}code.json:after{content:"JSON"}code.markdown:after{content:"MD"}code.diff:after{content:"DIFF"}code.java:after{content:"Java"}code.c:after{content:"C"}code.yml:after{content:"YML"}code.php:after{content:"PHP"}code.react:after{content:"REACT"}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code,li code,p code{padding:2px 5px;text-shadow:1px 2px 1px rgba(0,0,0,.02);box-shadow:0 2px 2px rgba(0,0,0,.05);color:#e26d6d;margin:0 .4em;background:#fdfcfc}.preview thead{background:#fcfdfd} 2 | /*# sourceMappingURL=5.bb30582d.chunk.css.map */ -------------------------------------------------------------------------------- /build/static/css/5.bb30582d.chunk.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["mark.css"],"names":[],"mappings":"AAAA,GACI,YAAa,CACb,QAAQ,CACR,yBACJ,CAEA,MACI,gBAAiB,CACjB,cACJ,CAEA,UACI,QACJ,CAEA,GACI,cAAe,CACf,YAAa,CACb,oBAAqB,CACrB,iBACJ,CAEA,aACI,iBAAkB,CAClB,UAAW,CACX,KAAM,CACN,WAAY,CACZ,SAAU,CACV,UACJ,CAEA,GACI,mBACJ,CAEA,aACI,iBAAkB,CAClB,UAAW,CACX,KAAM,CACN,0BAA2B,CAC3B,uBAAwB,CACxB,SAAU,CACV,UACJ,CAEA,IACI,aAAc,CAEd,gBAAiB,CACjB,aAAc,CACd,kBACJ,CAEA,eACI,oBACJ,CAEA,MACI,eAAgB,CAChB,oBAAqB,CACrB,gBACJ,CAEA,SACI,SAAU,CACV,aAAc,CACd,eAAgB,CAChB,gBACJ,CAEA,IACI,YAAa,CACb,aAAc,CACd,iBAAkB,CAClB,wCAAyC,CACzC,oCACJ,CAEA,UACI,QAAS,CACT,UAAW,CACX,WACJ,CAEA,OACI,WAAY,CACZ,SACJ,CAEA,eACI,aAAc,CACd,aAAc,CACd,eAAgB,CAChB,iBACJ,CAEA,kDACI,WAAY,CACZ,aACJ,CAEA,qBACI,UACJ,CAEA,iBACI,WAAY,CACZ,aACJ,CAEA,uBACI,2BACJ,CAEA,gBACI,QAAS,CACT,gBAAiB,CACjB,cAAe,CACf,aAAc,CACd,8BAAA,CAIA,iBAAkB,CAClB,kBAAmB,CACnB,wBALJ,CAQA,QACI,UACJ,CAEA,iBACI,oBAAqB,CACrB,aAAc,CACd,WAAY,CACZ,WACJ,CAEA,YACI,UAAW,CACX,6BAA8B,CAC9B,aAAc,CACd,iBACJ,CAEA,QACI,wBAAgB,CAAhB,qBAAgB,CAAhB,oBAAgB,CAAhB,gBACJ,CAEA,YACI,UACJ,CAEA,eACI,WACJ,CAEA,cACI,eACJ,CAEA,cACI,eACJ,CAEA,qBACI,aACJ,CAEA,MACI,aACJ,CAEA,aACI,aACJ,CAEA,4LACI,aACJ,CAEA,SACI,aACJ,CAEA,sBACI,aACJ,CAEA,2GACI,aACJ,CAEA,oJACI,aACJ,CAUA,uDACI,aACJ,CAEA,oBACI,aACJ,CAEA,4KACI,aACJ,CAEA,oDACI,aACJ,CAEA,IACI,iBAAkB,CAClB,UACJ,CAEA,cACI,iBAAkB,CAClB,aACJ,CAEA,YACI,eAAiB,CACjB,aACJ,CAEA,UACI,yBAA0B,CAC1B,aACJ,CAEA,eACI,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,UAAW,CACX,cAAe,CACf,cAAe,CACf,kBAAmB,CACnB,WACJ,CAEA,gBACI,cACJ,CAEA,oCACI,YACJ,CAEA,mEACI,eACJ,CAEA,eACI,aACJ,CAEA,gBACI,cACJ,CAEA,gBACI,cACJ,CAEA,iBACI,eACJ,CAEA,gBACI,cACJ,CAEA,oBACI,YACJ,CAEA,gBACI,cACJ,CAEA,gBACI,cACJ,CAEA,aACI,WACJ,CAEA,eACI,aACJ,CAEA,eACI,aACJ,CAEA,iBACI,eACJ,CAEA,+DACI,eAAgB,CAChB,uCAAwC,CACxC,oCAAqC,CACrC,aAAc,CACd,aAAc,CACd,kBACJ,CAEA,eACI,kBACJ","file":"5.bb30582d.chunk.css","sourcesContent":["hr {\r\n margin: 1em 0;\r\n border:0;\r\n border-top: 1px solid #eee;\r\n}\r\n\r\nol,ul {\r\n margin-left: 22px;\r\n padding-left: 0\r\n}\r\n\r\nol p,ul p {\r\n margin: 0\r\n}\r\n\r\nli {\r\n font-size: 15px;\r\n margin: 8px 0;\r\n list-style-type: none;\r\n position: relative\r\n}\r\n\r\nul li:before {\r\n position: absolute;\r\n left: -12px;\r\n top: 0;\r\n content: \"-\";\r\n width: 2px;\r\n height: 2px\r\n}\r\n\r\nol {\r\n counter-reset:count;\r\n}\r\n\r\nol li:before {\r\n position: absolute;\r\n left: -15px;\r\n top: 0;\r\n content: counter(count) '.'; \r\n counter-increment: count;\r\n width: 2px;\r\n height: 2px\r\n}\r\n\r\npre {\r\n overflow: auto;\r\n margin: 20px 0;\r\n font-size: 13.5px;\r\n color: #4d4d4c;\r\n background: #fcfdfd\r\n}\r\n\r\ncode,.code,pre {\r\n font-family: consolas\r\n}\r\n\r\ncode, {\r\n padding: 2px 4px;\r\n word-wrap: break-word;\r\n font-size: 13.5px\r\n}\r\n\r\npre code {\r\n padding: 0;\r\n color: #4d4d4c;\r\n background: none;\r\n text-shadow: none\r\n}\r\n\r\npre {\r\n padding: 10px;\r\n margin: 20px 0;\r\n border-radius: 6px;\r\n text-shadow: 1px 2px 1px rgba(0,0,0,.009);\r\n box-shadow: 0 1px 2px rgba(0,0,0,.05)\r\n}\r\n\r\npre table {\r\n margin: 0;\r\n width: auto;\r\n border: none\r\n}\r\n\r\npre td {\r\n border: none;\r\n padding: 0\r\n}\r\n\r\npre figcaption {\r\n font-size: 1em;\r\n color: #4d4d4c;\r\n line-height: 1em;\r\n margin-bottom: 1em\r\n}\r\n\r\npre figcaption:after,.highlight figcaption:before {\r\n content: \" \";\r\n display: table\r\n}\r\n\r\npre figcaption:after {\r\n clear: both\r\n}\r\n\r\npre figcaption a {\r\n float: right;\r\n color: #4d4d4c\r\n}\r\n\r\npre figcaption a:hover {\r\n border-bottom-color: #4d4d4c\r\n}\r\n\r\npre .gutter pre {\r\n margin: 0;\r\n text-align: right;\r\n font-size: 12px;\r\n color: #606a6d;\r\n font-family: Arial,\"sans-serif\"\r\n}\r\n\r\npre .gutter pre {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n background-color: #fcfdfd\r\n}\r\n\r\npre pre {\r\n width: 100%\r\n}\r\n\r\npre .line, pre hr {\r\n display: inline-block;\r\n padding: 2px 0;\r\n height: 20px;\r\n border: none\r\n}\r\n\r\npre .marked {\r\n width: 100%;\r\n border-left: 2px solid #727272;\r\n margin: .5em 0;\r\n padding-left: .5em\r\n}\r\n\r\n.gutter {\r\n user-select: none\r\n}\r\n\r\n.gist table {\r\n width: auto\r\n}\r\n\r\n.gist table td {\r\n border: none\r\n}\r\n\r\npre .deletion {\r\n background: #fdd\r\n}\r\n\r\npre .addition {\r\n background: #dfd\r\n}\r\n\r\npre .meta, pre .quote {\r\n color: #8959a8\r\n}\r\n\r\n.code {\r\n color: #4271ae\r\n}\r\n\r\npre .comment {\r\n color: #c6c6c6\r\n}\r\n\r\npre .attribute,pre .name,pre .css .class,pre .css .id,pre .css .pseudo,pre .html .doctype,pre .regexp,pre .ruby .constant,pre .variable,pre .xml .doctype,pre .xml .pi,pre .xml .tag .title {\r\n color: #e24c38\r\n}\r\n\r\npre .tag{\r\n color: #8e908c\r\n}\r\n\r\npre .attr, pre .bullet{\r\n color: #3e999f\r\n}\r\n\r\npre .built_in,pre .symbol,pre .command,pre .constant,pre .literal,pre .number,pre .params,pre preprocessor {\r\n color: #e78c45\r\n}\r\n\r\npre .formula,pre .header,pre .inheritance,pre .number,pre .ruby .class .title,pre .ruby .symbol,pre .special,pre .string,pre .value,pre .xml .cdata {\r\n color: #718c00\r\n}\r\n\r\npre .css .hexcolor,pre .title {\r\n color: #3e999f\r\n}\r\n\r\npre .css .hexcolor,pre .title {\r\n color: #3e999f\r\n}\r\n\r\npre .css .selector-class {\r\n color: #3e999f\r\n}\r\n\r\npre .css .attribute {\r\n color: #8293ef\r\n}\r\n\r\npre .coffeescript .title,pre .function,pre .javascript .title,pre .perl .sub,pre .python .decorator,pre .python .title,pre .ruby .function .title,pre .ruby .title .keyword {\r\n color: #4271ae\r\n}\r\n\r\npre .javascript .function,pre .keyword, pre .section {\r\n color: #e24c38\r\n}\r\n\r\npre {\r\n position: relative;\r\n width: 100%\r\n}\r\n\r\npre .emphasis{\r\n font-style: italic;\r\n color: #718c00\r\n}\r\n\r\npre .strong{\r\n font-weight: bold;\r\n color: #8293ef\r\n}\r\n\r\npre .link{\r\n text-decoration: underline;\r\n color: #e78c45\r\n}\r\n\r\npre code:after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n color: #ccc;\r\n content: \"Code\";\r\n font-size: 12px;\r\n padding: 5px 10px 0;\r\n height: 15px\r\n}\r\n\r\ncode.html:after {\r\n content: \"HTML\"\r\n}\r\n\r\ncode.javascript:after,code.js:after {\r\n content: \"JS\"\r\n}\r\n\r\ncode.bash:after,code.sh:after,code.cmd:after,code.Powershell:after {\r\n content: \"Shell\"\r\n}\r\n\r\ncode.css:after {\r\n content: \"CSS\"\r\n}\r\n\r\ncode.sass:after {\r\n content: \"SASS\"\r\n}\r\n\r\ncode.less:after {\r\n content: \"LESS\"\r\n}\r\n\r\ncode.style:after {\r\n content: \"Style\"\r\n}\r\n\r\ncode.json:after {\r\n content: \"JSON\"\r\n}\r\n\r\ncode.markdown:after {\r\n content: \"MD\"\r\n}\r\n\r\ncode.diff:after {\r\n content: \"DIFF\"\r\n}\r\n\r\ncode.java:after {\r\n content: \"Java\"\r\n}\r\n\r\ncode.c:after {\r\n content: \"C\"\r\n}\r\n\r\ncode.yml:after {\r\n content: \"YML\"\r\n}\r\n\r\ncode.php:after {\r\n content: \"PHP\"\r\n}\r\n\r\ncode.react:after {\r\n content: \"REACT\"\r\n}\r\n\r\np code,h1 code,h2 code,h3 code,h4 code,h5 code,h6 code,li code {\r\n padding: 2px 5px;\r\n text-shadow: 1px 2px 1px rgba(0,0,0,.02);\r\n box-shadow: 0 2px 2px rgba(0,0,0,.05);\r\n color: #e26d6d;\r\n margin: 0 .4em;\r\n background: #fdfcfc\r\n}\r\n\r\n.preview thead{\r\n background: #fcfdfd\r\n} "]} -------------------------------------------------------------------------------- /build/static/js/5.dd2ae916.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{153:function(e,n,t){},158:function(e,n,t){"use strict";t.r(n);var r=t(19),a=t.n(r),o=t(28),c=t(6),i=t(7),s=t(9),u=t(8),l=t(10),f=t(0),p=t.n(f),d=(t(83),t(1)),m=t(11),h=t(82),b=(t(98),t(99)),v=t.n(b),y=function(e){function n(){return Object(c.a)(this,n),Object(s.a)(this,Object(u.a)(n).apply(this,arguments))}return Object(l.a)(n,e),Object(i.a)(n,[{key:"componentDidMount",value:function(){var e=d.Control.path.split("article/")[1];new v.a({clientID:"b36eae2069001417b114",clientSecret:"22b5da9b1fd92cca7268dfd0eaf4305ee427f0f2",repo:"notes",owner:"XboxYan",admin:["XboxYan"],number:Number(e),distractionFreeMode:!1}).render("gitalk-container")}},{key:"render",value:function(){return p.a.createElement("div",{id:"gitalk-container"})}}]),n}(f.PureComponent),g=t(100),w=t.n(g),k=t(152),E=t.n(k),O=(t(153),function(e){return p.a.createElement("div",{className:"preview",dangerouslySetInnerHTML:function(e){var n=new w.a({html:!0,breaks:!0,typographer:!0,langPrefix:"",highlight:function(e,n){if(n&&E.a.getLanguage(n))try{return E.a.configure({classPrefix:""}),E.a.highlight(n,e).value}catch(t){}try{return E.a.configure({classPrefix:""}),E.a.highlightAuto(e).value}catch(t){}return""}});return n.core.ruler.enable(["abbr"]),n.inline.ruler.enable(["footnote_inline","ins","mark","sub","sup"]),{__html:n.render(e)}}(e.value)})}),x=t(84),j=t(88),N=t.n(j);t.d(n,"default",function(){return P});var P=function(e){function n(){var e,t;Object(c.a)(this,n);for(var r=arguments.length,i=new Array(r),l=0;l=0&&e.pathname.indexOf("article")>=0&&this.props.pathname!==e.pathname){var n=e.params.id;this.getArticle(n)}}},{key:"render",value:function(){var e=this.state,n=e.article,t=n.title,r=n.createdAt,a=n.body,o=n.labels,c=(n.prev,n.next,e.isrender);return p.a.createElement("div",{className:"container"},p.a.createElement("section",{className:"main sildeUpMin"},c?p.a.createElement(m.a,null):p.a.createElement("article",{className:"post"},p.a.createElement("div",{className:"post-header"},p.a.createElement("p",{className:"post-title"},t),p.a.createElement("div",{className:"meta-info"},p.a.createElement("span",null,N()(r).utcOffset(8).format("YYYY\u5e74M\u6708D\u65e5 , HH:mm:ss")),p.a.createElement("i",{className:"iconfont icon-eye"}),p.a.createElement("span",null,0))),p.a.createElement("div",{className:"post-content"},p.a.createElement(O,{value:a})),p.a.createElement("div",{className:"post-meta"},p.a.createElement("i",{className:"iconfont icon-tag-inner"}),o.nodes.length>0?o.nodes.map(function(e,n){return p.a.createElement(d.CacheLink,{key:n,className:"category-link",to:"/categories/"+e.id},e.name)}):p.a.createElement(d.CacheLink,{className:"category-link",to:"/categories/unknown"},"\u672a\u5206\u7c7b"))),p.a.createElement(y,null)),p.a.createElement(h.a,null))}}]),n}(f.PureComponent)},82:function(e,n,t){"use strict";var r=t(0),a=t.n(r);n.a=function(){return a.a.createElement("footer",{id:"footer"},a.a.createElement("div",{className:"footer-copyright"},"\xa9 2018 XboxYan",a.a.createElement("br",null),"Theme By",a.a.createElement("a",{href:"https://github.com/Lemonreds/hexo-theme-Nayo",rel:"noopener noreferrer",target:"_blank"}," Nayo")))}},83:function(e,n,t){"use strict";var r=t(19),a=t.n(r),o=t(28),c=function(){var e=Object(o.a)(a.a.mark(function e(n){var t,r,o,c,i,s,u=arguments;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=u.length>1&&void 0!==u[1]?u[1]:{},r=t.method,o=void 0===r?"GET":r,c=t.headers,i=void 0===c?{"Content-Type":"application/json"}:c,s=t.body,e.prev=1,e.next=4,fetch(n,Object.assign({method:o,headers:i},s?{body:s}:{})).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),console.err(e.t0);case 10:case"end":return e.stop()}},e,null,[[1,7]])}));return function(n){return e.apply(this,arguments)}}();n.a=c},84:function(e,n,t){"use strict";t.d(n,"b",function(){return s}),t.d(n,"a",function(){return u}),t.d(n,"c",function(){return l});var r=t(19),a=t.n(r),o=t(28),c="https://api.github.com/graphql",i={"Content-Type":"application/json",Authorization:"token ".concat("2-7-4-b-0-1-7-e-5-f-a-7-9-b-b-9-b-7-b-b-9-8-8-5-8-6-2-4-7-7-7-7-7-6-f-3-7-c-f-e".replace(/-/g,""))},s=function(){var e=Object(o.a)(a.a.mark(function e(n){var t,r,o,s,u,l,f,p;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.pageSize,r=void 0===t?5:t,o=n.after,s=void 0===o?null:o,u=n.before,l=void 0===u?null:u,f=n.labels,p=void 0===f?null:f,e.next=3,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issues(first: '.concat(r,", states: OPEN, orderBy: {field: UPDATED_AT, direction: DESC},after:").concat(s,",before:").concat(l,",labels:").concat(p,") {\n pageInfo {\n hasPreviousPage\n startCursor\n hasNextPage\n endCursor\n }\n totalCount\n nodes {\n number\n title\n id\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(n){return e.apply(this,arguments)}}(),u=function(){var e=Object(o.a)(a.a.mark(function e(n){var t;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.number,e.next=3,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issue(number:'.concat(t,") {\n body\n number\n id\n title\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(n){return e.apply(this,arguments)}}(),l=function(){var e=Object(o.a)(a.a.mark(function e(){return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n labels(first: 99) {\n nodes{\n color\n description\n color\n id\n isDefault\n name\n }\n totalCount\n }\n }\n }\n '})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}()}}]); 2 | //# sourceMappingURL=5.dd2ae916.chunk.js.map -------------------------------------------------------------------------------- /build/static/js/6.a6d3a1ea.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{157:function(e,t,n){"use strict";n.r(t);var a=n(19),r=n.n(a);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t0?e.labels.nodes.map(function(e,t){return h.a.createElement(k.CacheLink,{key:t,className:"article-tag",to:"/categories/"+e.name},e.name)}):h.a.createElement(k.CacheLink,{className:"article-tag",to:"/categories/unknown"},"\u672a\u5206\u7c7b"))),h.a.createElement("div",{className:"article-excerpt"},e.description),h.a.createElement("div",{className:"article-bottom"},h.a.createElement(k.CacheLink,{className:"article-readmore",to:"/article/"+e.number},"\u9605\u8bfb\u66f4\u591a")))}),h.a.createElement(y.a,{ref:function(t){return e.Pager=t},total:a,pageInfo:o,pagesize:this.pagesize,fetch:this.getArticle})),h.a.createElement(g,{onClick:this.goTop}),h.a.createElement(v.a,null))}}]),t}(m.PureComponent)},82:function(e,t,n){"use strict";var a=n(0),r=n.n(a);t.a=function(){return r.a.createElement("footer",{id:"footer"},r.a.createElement("div",{className:"footer-copyright"},"\xa9 2018 XboxYan",r.a.createElement("br",null),"Theme By",r.a.createElement("a",{href:"https://github.com/Lemonreds/hexo-theme-Nayo",rel:"noopener noreferrer",target:"_blank"}," Nayo")))}},83:function(e,t,n){"use strict";var a=n(19),r=n.n(a),o=n(28),c=function(){var e=Object(o.a)(r.a.mark(function e(t){var n,a,o,c,i,s,l=arguments;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>1&&void 0!==l[1]?l[1]:{},a=n.method,o=void 0===a?"GET":a,c=n.headers,i=void 0===c?{"Content-Type":"application/json"}:c,s=n.body,e.prev=1,e.next=4,fetch(t,Object.assign({method:o,headers:i},s?{body:s}:{})).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),console.err(e.t0);case 10:case"end":return e.stop()}},e,null,[[1,7]])}));return function(t){return e.apply(this,arguments)}}();t.a=c},84:function(e,t,n){"use strict";n.d(t,"b",function(){return s}),n.d(t,"a",function(){return l}),n.d(t,"c",function(){return u});var a=n(19),r=n.n(a),o=n(28),c="https://api.github.com/graphql",i={"Content-Type":"application/json",Authorization:"token ".concat("2-7-4-b-0-1-7-e-5-f-a-7-9-b-b-9-b-7-b-b-9-8-8-5-8-6-2-4-7-7-7-7-7-6-f-3-7-c-f-e".replace(/-/g,""))},s=function(){var e=Object(o.a)(r.a.mark(function e(t){var n,a,o,s,l,u,f,p;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.pageSize,a=void 0===n?5:n,o=t.after,s=void 0===o?null:o,l=t.before,u=void 0===l?null:l,f=t.labels,p=void 0===f?null:f,e.next=3,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issues(first: '.concat(a,", states: OPEN, orderBy: {field: UPDATED_AT, direction: DESC},after:").concat(s,",before:").concat(u,",labels:").concat(p,") {\n pageInfo {\n hasPreviousPage\n startCursor\n hasNextPage\n endCursor\n }\n totalCount\n nodes {\n number\n title\n id\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),l=function(){var e=Object(o.a)(r.a.mark(function e(t){var n;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.number,e.next=3,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issue(number:'.concat(n,") {\n body\n number\n id\n title\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),u=function(){var e=Object(o.a)(r.a.mark(function e(){return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(c,{method:"POST",headers:i,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n labels(first: 99) {\n nodes{\n color\n description\n color\n id\n isDefault\n name\n }\n totalCount\n }\n }\n }\n '})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}()},87:function(e,t,n){"use strict";n.d(t,"a",function(){return u});var a=n(6),r=n(7),o=n(9),c=n(8),i=n(10),s=n(0),l=n.n(s),u=function(e){function t(){var e,n;Object(a.a)(this,t);for(var r=arguments.length,i=new Array(r),s=0;s0?{after:s}:{before:i})}},n}return Object(i.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this.props,t=e.total,n=e.pagesize,a=Math.ceil(t/n),r=this.state.page;return t?l.a.createElement("nav",{className:"paginator scrollIn"},l.a.createElement("a",{className:"prev","data-hidden":1===r,onClick:this.go(-1)},l.a.createElement("i",{className:"iconfont icon-left"}),"\u4e0a\u4e00\u9875"),l.a.createElement("span",{className:"page-number"},"Page ",r," / ",a,"."),l.a.createElement("a",{className:"next","data-hidden":r===a,onClick:this.go(1)},"\u4e0b\u4e00\u9875",l.a.createElement("i",{className:"iconfont icon-right"}))):null}}]),t}(s.PureComponent)},95:function(e,t,n){e.exports=n.p+"static/media/header.9e6dc261.png"}}]); 2 | //# sourceMappingURL=6.a6d3a1ea.chunk.js.map -------------------------------------------------------------------------------- /build/static/js/7.e5d813cd.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{154:function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});var a=n(19),r=n.n(a),c=n(28),o=n(6),s=n(7),i=n(9),u=n(8),l=n(10),f=n(0),p=n.n(f),h=n(1),m=n(82),d=n(11),b=n(87),g=(n(83),n(84)),v=n(88),y=n.n(v),O=function(e){function t(){var e,n;Object(o.a)(this,t);for(var a=arguments.length,s=new Array(a),l=0;l0&&void 0!==arguments[0]?arguments[0]:"";return Object(c.a)(r.a.mark(function t(){var a,c,o,s,i,u=arguments;return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(u.length>0&&void 0!==u[0]?u[0]:1,!e){t.next=11;break}return n.setState({isrender:!0}),t.next=5,Object(g.b)({pagesize:n.pagesize,labels:e});case 5:a=t.sent,c=a.data.repository.issues,o=c.nodes,s=c.pageInfo,i=c.totalCount,n.setState({articles:o,total:i,isrender:!1,pageInfo:s,renderPage:!0});case 11:case"end":return t.stop()}},t)}))},n}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){var e=Object(c.a)(r.a.mark(function e(){var t;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=h.Control.path.split("/categories/")[1]||"",this.category=t,this.getArticle(t)();case 3:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"componentWillReceiveProps",value:function(e){if(this.category!==e.params.category&&e.pathname.indexOf("search")<0&&e.pathname.indexOf("categories/")>=0&&this.props.pathname!==e.pathname){var t=e.params.category;this.category=t,this.setState({renderPage:!1}),this.getArticle(t)()}}},{key:"render",value:function(){var e=this.state,t=e.articles,n=e.total,a=e.isrender,r=e.renderPage,c=(e.pageInfo,this.category||"");return p.a.createElement("section",{className:"slideDownMin"},a?p.a.createElement(d.a,null):t.length>0?t.map(function(e){return p.a.createElement("article",{className:"item",key:e.number},p.a.createElement("time",{className:"item-date"}," ",y()(e.createdAt).utcOffset(8).format("YYYY\u5e74M\u6708D\u65e5")),p.a.createElement(h.CacheLink,{className:"item-title",to:"/article/"+e.number},e.title))}):p.a.createElement("div",{className:"iconfont icon-nofound empty"}),r&&p.a.createElement(b.a,{total:n,pagesize:this.pagesize,fetch:this.getArticle(c)}))}}]),t}(f.PureComponent),w=function(e){function t(){var e,n;Object(o.a)(this,t);for(var a=arguments.length,r=new Array(a),c=0;c1&&void 0!==u[1]?u[1]:{},a=n.method,c=void 0===a?"GET":a,o=n.headers,s=void 0===o?{"Content-Type":"application/json"}:o,i=n.body,e.prev=1,e.next=4,fetch(t,Object.assign({method:c,headers:s},i?{body:i}:{})).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),console.err(e.t0);case 10:case"end":return e.stop()}},e,null,[[1,7]])}));return function(t){return e.apply(this,arguments)}}();t.a=o},84:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return u}),n.d(t,"c",function(){return l});var a=n(19),r=n.n(a),c=n(28),o="https://api.github.com/graphql",s={"Content-Type":"application/json",Authorization:"token ".concat("2-7-4-b-0-1-7-e-5-f-a-7-9-b-b-9-b-7-b-b-9-8-8-5-8-6-2-4-7-7-7-7-7-6-f-3-7-c-f-e".replace(/-/g,""))},i=function(){var e=Object(c.a)(r.a.mark(function e(t){var n,a,c,i,u,l,f,p;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.pageSize,a=void 0===n?5:n,c=t.after,i=void 0===c?null:c,u=t.before,l=void 0===u?null:u,f=t.labels,p=void 0===f?null:f,e.next=3,fetch(o,{method:"POST",headers:s,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issues(first: '.concat(a,", states: OPEN, orderBy: {field: UPDATED_AT, direction: DESC},after:").concat(i,",before:").concat(l,",labels:").concat(p,") {\n pageInfo {\n hasPreviousPage\n startCursor\n hasNextPage\n endCursor\n }\n totalCount\n nodes {\n number\n title\n id\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),u=function(){var e=Object(c.a)(r.a.mark(function e(t){var n;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.number,e.next=3,fetch(o,{method:"POST",headers:s,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n issue(number:'.concat(n,") {\n body\n number\n id\n title\n createdAt\n labels(first: 10) {\n nodes {\n color\n name\n id\n }\n }\n }\n }\n }\n ")})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),l=function(){var e=Object(c.a)(r.a.mark(function e(){return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(o,{method:"POST",headers:s,body:JSON.stringify({query:'\n {\n repository(owner: "XboxYan", name: "notes") {\n labels(first: 99) {\n nodes{\n color\n description\n color\n id\n isDefault\n name\n }\n totalCount\n }\n }\n }\n '})}).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}()},87:function(e,t,n){"use strict";n.d(t,"a",function(){return l});var a=n(6),r=n(7),c=n(9),o=n(8),s=n(10),i=n(0),u=n.n(i),l=function(e){function t(){var e,n;Object(a.a)(this,t);for(var r=arguments.length,s=new Array(r),i=0;i0?{after:i}:{before:s})}},n}return Object(s.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this.props,t=e.total,n=e.pagesize,a=Math.ceil(t/n),r=this.state.page;return t?u.a.createElement("nav",{className:"paginator scrollIn"},u.a.createElement("a",{className:"prev","data-hidden":1===r,onClick:this.go(-1)},u.a.createElement("i",{className:"iconfont icon-left"}),"\u4e0a\u4e00\u9875"),u.a.createElement("span",{className:"page-number"},"Page ",r," / ",a,"."),u.a.createElement("a",{className:"next","data-hidden":r===a,onClick:this.go(1)},"\u4e0b\u4e00\u9875",u.a.createElement("i",{className:"iconfont icon-right"}))):null}}]),t}(i.PureComponent)}}]); 2 | //# sourceMappingURL=7.e5d813cd.chunk.js.map -------------------------------------------------------------------------------- /build/static/js/8.95bb3363.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{156:function(e,t,a){"use strict";a.r(t),a.d(t,"default",function(){return s});var n=a(6),r=a(7),l=a(9),c=a(8),o=a(10),m=a(0),i=a.n(m),u=a(82),s=function(e){function t(){return Object(n.a)(this,t),Object(l.a)(this,Object(c.a)(t).apply(this,arguments))}return Object(o.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){return i.a.createElement("div",{className:"container"},i.a.createElement("section",{className:"main sildeUpMin"},i.a.createElement("span",{className:"page-title"},"\u5173\u4e8e"),i.a.createElement("div",{className:"post-content "},i.a.createElement("p",null,i.a.createElement("img",{className:"fadeIn",src:a(97),alt:"no img"})),i.a.createElement("blockquote",null,i.a.createElement("p",null,"Drawing by Alena Aenami.")),i.a.createElement("h2",{id:"About-Me"},"About Me"),i.a.createElement("blockquote",{className:"scrollIn"},i.a.createElement("p",null,"\u4e16\u754c\u7f8e\u597d \u4f60\u4e5f\u662f\u3002",i.a.createElement("br",null),"Theme - ",i.a.createElement("a",{href:"https://github.com/Lemonreds/hexo-theme-Nayo",rel:"noopener noreferrer",target:"_blank"},"Nayo"),i.a.createElement("br",null),"Location - HuBei | WuHan CN",i.a.createElement("br",null),"Email - ",i.a.createElement("a",{href:"mailto:yanwenbin1991@live.com",rel:"noopener noreferrer"},"yanwenbin1991@live.com"))))),i.a.createElement(u.a,null))}}]),t}(m.PureComponent)},82:function(e,t,a){"use strict";var n=a(0),r=a.n(n);t.a=function(){return r.a.createElement("footer",{id:"footer"},r.a.createElement("div",{className:"footer-copyright"},"\xa9 2018 XboxYan",r.a.createElement("br",null),"Theme By",r.a.createElement("a",{href:"https://github.com/Lemonreds/hexo-theme-Nayo",rel:"noopener noreferrer",target:"_blank"}," Nayo")))}},97:function(e,t,a){e.exports=a.p+"static/media/about.a370cc15.jpg"}}]); 2 | //# sourceMappingURL=8.95bb3363.chunk.js.map -------------------------------------------------------------------------------- /build/static/js/8.95bb3363.chunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["pages/about.js","components/footer.js","img/about.jpg"],"names":["react__WEBPACK_IMPORTED_MODULE_5___default","a","createElement","className","src","require","alt","id","href","rel","target","_components_footer__WEBPACK_IMPORTED_MODULE_6__","PureComponent","react__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","react__WEBPACK_IMPORTED_MODULE_0___default","n","__webpack_exports__","module","exports","p"],"mappings":"0XAKQ,OACIA,EAAAC,EAAAC,cAAA,OAAKC,UAAU,aACXH,EAAAC,EAAAC,cAAA,WAASC,UAAU,mBACfH,EAAAC,EAAAC,cAAA,QAAMC,UAAU,cAAhB,gBACAH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,iBAAgBH,EAAAC,EAAAC,cAAA,SAAGF,EAAAC,EAAAC,cAAA,OAAKC,UAAU,SAASC,IAAKC,EAAQ,IAAqBC,IAAI,YAC5FN,EAAAC,EAAAC,cAAA,kBACIF,EAAAC,EAAAC,cAAA,sCAEJF,EAAAC,EAAAC,cAAA,MAAIK,GAAG,YAAP,YACAP,EAAAC,EAAAC,cAAA,cAAYC,UAAU,YAClBH,EAAAC,EAAAC,cAAA,6DAAYF,EAAAC,EAAAC,cAAA,WAAZ,WACYF,EAAAC,EAAAC,cAAA,KAAGM,KAAK,+CAA+CC,IAAI,sBAAsBC,OAAO,UAAxF,QAAyGV,EAAAC,EAAAC,cAAA,WADrH,+BAEgCF,EAAAC,EAAAC,cAAA,WAFhC,WAGYF,EAAAC,EAAAC,cAAA,KAAGM,KAAK,gCAAgCC,IAAI,uBAA5C,8BAKxBT,EAAAC,EAAAC,cAACS,EAAA,EAAD,cApBaC,kDCH7B,IAAAC,EAAAC,EAAA,GAAAC,EAAAD,EAAAE,EAAAH,GAEeI,EAAA,oBACXF,EAAAd,EAAAC,cAAA,UAAQK,GAAG,UACPQ,EAAAd,EAAAC,cAAA,OAAKC,UAAU,oBAAf,oBACkBY,EAAAd,EAAAC,cAAA,WADlB,WAGIa,EAAAd,EAAAC,cAAA,KAAGM,KAAK,+CAA+CC,IAAI,sBAAsBC,OAAO,UAAxF,gCCPZQ,EAAAC,QAAiBL,EAAAM,EAAuB","file":"static/js/8.95bb3363.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\r\nimport Footer from '../components/footer';\r\n\r\nexport default class extends PureComponent {\r\n render() {\r\n return (\r\n
\r\n
\r\n 关于\r\n

\"no

\r\n
\r\n

Drawing by Alena Aenami.

\r\n
\r\n

About Me

\r\n
\r\n

世界美好 你也是。
\r\n Theme - Nayo
\r\n Location - HuBei | WuHan CN
\r\n Email - yanwenbin1991@live.com\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}","import React from 'react';\r\n\r\nexport default () => (\r\n
\r\n
\r\n © 2018 XboxYan
\r\n Theme By \r\n Nayo\r\n
\r\n
\r\n)","module.exports = __webpack_public_path__ + \"static/media/about.a370cc15.jpg\";"],"sourceRoot":""} -------------------------------------------------------------------------------- /build/static/js/9.b268cb11.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],{155:function(e,t,a){"use strict";a.r(t),a.d(t,"default",function(){return v});var n=a(19),r=a.n(n),c=a(28),s=a(6),i=a(7),o=a(9),l=a(8),u=a(10),d=a(0),p=a.n(d),h=a(11),m=a(83),f=a(1),v=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,i=new Array(n),u=0;u0?a.map(function(e){return p.a.createElement("div",{className:"search-item",key:e._id},p.a.createElement(f.Link,{to:"/article/"+e._id,className:"search-title"},e.title),p.a.createElement("p",{className:"search-content"},e.description))}):p.a.createElement("div",{className:"iconfont icon-nofound empty"})))))}}]),t}(d.PureComponent)},83:function(e,t,a){"use strict";var n=a(19),r=a.n(n),c=a(28),s=function(){var e=Object(c.a)(r.a.mark(function e(t){var a,n,c,s,i,o,l=arguments;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=l.length>1&&void 0!==l[1]?l[1]:{},n=a.method,c=void 0===n?"GET":n,s=a.headers,i=void 0===s?{"Content-Type":"application/json"}:s,o=a.body,e.prev=1,e.next=4,fetch(t,Object.assign({method:c,headers:i},o?{body:o}:{})).then(function(e){if(e.ok)return e.json()}).catch(function(e){console.warn(e)});case 4:return e.abrupt("return",e.sent);case 7:e.prev=7,e.t0=e.catch(1),console.err(e.t0);case 10:case"end":return e.stop()}},e,null,[[1,7]])}));return function(t){return e.apply(this,arguments)}}();t.a=s}}]); 2 | //# sourceMappingURL=9.b268cb11.chunk.js.map -------------------------------------------------------------------------------- /build/static/js/9.b268cb11.chunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["pages/search.js","util/Fetch.js"],"names":["state","data","keywords","isrender","getArticles","_callee","articles","F_github_notes_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","a","wrap","_context","prev","next","_this","setState","fetchData","sent","stop","search","ev","target","value","replace","timer","clearTimeout","setTimeout","_this$state","this","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","className","spellCheck","type","placeholder","onChange","onClick","Control","go","_components_loader__WEBPACK_IMPORTED_MODULE_8__","length","map","d","key","_id","react_keeper__WEBPACK_IMPORTED_MODULE_10__","to","title","description","PureComponent","_ref","Object","F_github_notes_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","mark","url","_ref2","_ref2$method","method","_ref2$headers","headers","body","_args","arguments","undefined","Content-Type","fetch","assign","then","response","ok","json","catch","err","console","warn","abrupt","t0","_x","apply"],"mappings":"4bAOIA,MAAQ,CACJC,KAAM,GACNC,SAAU,GACVC,UAAU,KAGdC,kDAAc,SAAAC,EAAOH,GAAP,IAAAI,EAAA,OAAAC,EAAAC,EAAAC,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cACVC,EAAKC,SAAS,CAAEX,UAAU,IADhBO,EAAAE,KAAA,EAEaG,YAAU,wBAA0Bb,GAFjD,OAEJI,EAFII,EAAAM,KAGVH,EAAKC,SAAS,CAAEb,KAAMK,EAASL,KAAME,UAAU,IAHrC,wBAAAO,EAAAO,SAAAZ,8DAMda,OAAS,SAACC,GAAO,IAEPjB,EADYiB,EAAGC,OAAbC,MACeC,QAAQ,OAAQ,IACvCT,EAAKC,SAAS,CAAEZ,aAChBW,EAAKU,OAASC,aAAaX,EAAKU,OAChCV,EAAKU,MAAQE,WAAW,WACpBvB,GAAUW,EAAKT,YAAYF,IAC5B,8EAGE,IAAAwB,EACgCC,KAAK3B,MAAlCE,EADHwB,EACGxB,SAAUD,EADbyB,EACazB,KAAME,EADnBuB,EACmBvB,SACxB,OACIyB,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,QACXF,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,+BACXF,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,iBACXF,EAAApB,EAAAqB,cAAA,SAAOE,YAAY,EAAOC,KAAK,OAAOC,YAAY,6CAAUC,SAAUP,KAAKT,OAAQG,MAAOnB,EAAU4B,UAAU,iBAC9GF,EAAApB,EAAAqB,cAAA,QAAMC,UAAU,qCAAqCK,QAAS,kBAAIC,UAAQC,IAAI,OAElFT,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,iBAEP5B,IACIC,EACIyB,EAAApB,EAAAqB,cAACS,EAAA,EAAD,MAGIrC,EAAKsC,OAAS,EACVtC,EAAKuC,IAAI,SAACC,GAAD,OACLb,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,cAAcY,IAAKD,EAAEE,KAChCf,EAAApB,EAAAqB,cAACe,EAAA,KAAD,CAAMC,GAAI,YAAcJ,EAAEE,IAAKb,UAAU,gBAAgBW,EAAEK,OAC3DlB,EAAApB,EAAAqB,cAAA,KAAGC,UAAU,kBAAkBW,EAAEM,gBAIzCnB,EAAApB,EAAAqB,cAAA,OAAKC,UAAU,2CAhD9BkB,+ECLvBjC,EAAS,eAAAkC,EAAAC,OAAAC,EAAA,EAAAD,CAAA3C,EAAAC,EAAA4C,KAAG,SAAA/C,EAAOgD,GAAP,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAAA,OAAAtD,EAAAC,EAAAC,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAA0C,EAAAM,EAAArB,OAAA,QAAAuB,IAAAF,EAAA,GAAAA,EAAA,GAAyF,GAAzFL,EAAAD,EAAcE,cAAd,IAAAD,EAAuB,MAAvBA,EAAAE,EAAAH,EAA8BI,eAA9B,IAAAD,EAAwC,CAAEM,eAAgB,oBAA1DN,EAAgFE,EAAhFL,EAAgFK,KAAhFjD,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEGoD,MAAMX,EAAKH,OAAOe,OAAO,CAClCT,OAAQA,EACRE,QAASA,GACXC,EAAK,CAACA,QAAM,KACbO,KAAK,SAACC,GACH,GAAIA,EAASC,GACT,OAAOD,EAASE,SAGvBC,MAAM,SAACC,GACJC,QAAQC,KAAKF,KAZP,cAAA7D,EAAAgE,OAAA,SAAAhE,EAAAM,MAAA,OAAAN,EAAAC,KAAA,EAAAD,EAAAiE,GAAAjE,EAAA,SAeV8D,QAAQD,IAAR7D,EAAAiE,IAfU,yBAAAjE,EAAAO,SAAAZ,EAAA,iBAAH,gBAAAuE,GAAA,OAAA3B,EAAA4B,MAAAlD,KAAAkC,YAAA,GAmBA9C","file":"static/js/9.b268cb11.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\r\nimport Loader from '../components/loader';\r\nimport fetchData from '../util/Fetch';\r\nimport { Control,Link } from 'react-keeper';\r\n\r\nexport default class extends PureComponent {\r\n\r\n state = {\r\n data: [],\r\n keywords: '',\r\n isrender: true\r\n }\r\n\r\n getArticles = async (keywords) => {\r\n this.setState({ isrender: true });\r\n const articles = await fetchData('/api/search?keywords=' + keywords);\r\n this.setState({ data: articles.data, isrender: false });\r\n }\r\n\r\n search = (ev) => {\r\n const { value } = ev.target;\r\n const keywords = value.replace(/\\s+/g, \"\");\r\n this.setState({ keywords });\r\n this.timer && clearTimeout(this.timer);\r\n this.timer = setTimeout(() => {\r\n keywords&&this.getArticles(keywords);\r\n }, 500)\r\n }\r\n\r\n render() {\r\n const { keywords, data, isrender } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n Control.go(-1)}>\r\n
\r\n
\r\n {\r\n keywords && (\r\n isrender ?\r\n \r\n :\r\n (\r\n data.length > 0 ?\r\n data.map((d) => (\r\n
\r\n {d.title}\r\n

{d.description}

\r\n
\r\n ))\r\n :\r\n
\r\n )\r\n )\r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","const fetchData = async (url, { method = 'GET', headers = { 'Content-Type': 'application/json' }, body } = {}) => {\r\n try {\r\n return await fetch(url, Object.assign({\r\n method: method,\r\n headers: headers,\r\n },body?{body}:{}))\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .catch((err) => {\r\n console.warn(err);\r\n })\r\n } catch (error) {\r\n console.err(error)\r\n }\r\n}\r\n\r\nexport default fetchData;"],"sourceRoot":""} -------------------------------------------------------------------------------- /build/static/js/main.1d392f0c.chunk.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],{11:function(e,n,t){"use strict";t.d(n,"a",function(){return s});var a=t(6),o=t(7),r=t(9),c=t(8),i=t(10),l=t(0),u=t.n(l),s=function(e){function n(){return Object(a.a)(this,n),Object(r.a)(this,Object(c.a)(n).apply(this,arguments))}return Object(i.a)(n,e),Object(o.a)(n,[{key:"render",value:function(){return u.a.createElement("div",{className:"loader"},u.a.createElement("span",{className:"gauge-loader"}))}}]),n}(l.PureComponent)},39:function(e,n,t){e.exports=t(80)},79:function(e,n,t){},80:function(e,n,t){"use strict";t.r(n);var a=t(0),o=t.n(a),r=t(27),c=t.n(r),i=t(19),l=t.n(i),u=t(28),s=t(6),d=t(7),h=t(9),m=t(8),f=t(10),p=t(1),v=function(e){e.loginState,e.userInfo,e.logout;return o.a.createElement("header",{className:"header",style:{opacity:"/login"===p.Control.path?0:1}},o.a.createElement("nav",{className:"header-nav"},o.a.createElement("span",{className:"iconfont icon-menu mobile-toggle"}),o.a.createElement("div",{className:"header-menu"},o.a.createElement(p.Link,{className:"header-menu-link",activeClassName:"header-menu-active",to:"/"},"\u9996\u9875"),o.a.createElement(p.Link,{className:"header-menu-link",activeClassName:"header-menu-active",to:"/categories"},"\u5206\u7c7b"),o.a.createElement(p.Link,{className:"header-menu-link",activeClassName:"header-menu-active",to:"/about"},"\u5173\u4e8e"),o.a.createElement(p.Link,{className:"iconfont icon-menu-search header-menu-link",to:("/"===p.Control.path?"/home":p.Control.path)+"/search"}," "))))},g=t(12),w=t.n(g),b=t(11),y=w()({loader:function(){return Promise.all([t.e(0),t.e(6)]).then(t.bind(null,157))},loading:b.a}),E=w()({loader:function(){return Promise.all([t.e(0),t.e(7)]).then(t.bind(null,154))},loading:b.a}),k=w()({loader:function(){return t.e(9).then(t.bind(null,155))},loading:b.a}),j=w()({loader:function(){return t.e(8).then(t.bind(null,156))},loading:b.a}),O=w()({loader:function(){return Promise.all([t.e(0),t.e(4),t.e(5)]).then(t.bind(null,158))},loading:b.a}),N=function(e){function n(){return Object(s.a)(this,n),Object(h.a)(this,Object(m.a)(n).apply(this,arguments))}return Object(f.a)(n,e),Object(d.a)(n,[{key:"render",value:function(){return o.a.createElement("div",{className:"app"},o.a.createElement(v,this.props),o.a.createElement(p.Route,{index:!0,cache:"parent",component:y,path:"/home"}),o.a.createElement(p.Route,{cache:"parent",component:E,path:"/categories"}),o.a.createElement(p.Route,{cache:"parent",component:j,path:"/about"}),o.a.createElement(p.Route,{component:O,path:"/article/:id>"}),o.a.createElement(p.Route,{cache:"false",component:k,path:"**search"}))}}]),n}(a.PureComponent),x=t(38),C=t.n(x),P=function(){document.addEventListener("click",function(e){});var e,n=document.getElementById("evanyou-canvas"),t=n.getContext("2d"),a=window.devicePixelRatio||1,o=window.innerWidth,r=window.innerHeight,c=90,i=Math,l=0,u=2*i.PI,s=i.cos,d=i.random;function h(){for(t.clearRect(0,0,o,r),e=[{x:0,y:.7*r+c},{x:0,y:.7*r-c}];e[1].xr||t<0?e(n):t}(a.y);t.lineTo(o,i),t.closePath(),l-=u/-50,t.fillStyle="#"+(127*s(l)+128<<16|127*s(l+u/3)+128<<8|127*s(l+u/3*2)+128).toString(16),t.fill(),e[0]=e[1],e[1]={x:o,y:i}}return n.width=o*a,n.height=r*a,t.scale(a,a),t.globalAlpha=.6,document.onclick=h,document.ontouchstart=h,h(),h},R=(t(79),function(e){function n(){var e,t;Object(s.a)(this,n);for(var a=arguments.length,o=new Array(a),r=0;r\r\n )\r\n }\r\n}","import React from 'react';\r\n//import User from './user';\r\nimport { Link, Control } from 'react-keeper';\r\n\r\nexport default ({loginState,userInfo,logout}) => (\r\n
\r\n \r\n
\r\n)","import React, { PureComponent } from 'react';\r\nimport { Route } from 'react-keeper';\r\nimport Header from '../components/header';\r\nimport Loadable from 'react-loadable';\r\nimport Loader from '../components/loader';\r\n\r\nconst Home = Loadable({\r\n\tloader:()=>import('./home'),\r\n\tloading:Loader\r\n})\r\n\r\n/*\r\nconst Archives = Loadable({\r\n\tloader:()=>import('./archives'),\r\n\tloading:Loader\r\n})\r\n*/\r\n\r\nconst Categories = Loadable({\r\n\tloader:()=>import('./categories'),\r\n\tloading:Loader\r\n})\r\n\r\nconst Search = Loadable({\r\n\tloader:()=>import('./search'),\r\n\tloading:Loader\r\n})\r\n\r\nconst About = Loadable({\r\n\tloader:()=>import('./about'),\r\n\tloading:Loader\r\n})\r\n\r\nconst Article = Loadable({\r\n\tloader:()=>import('./article'),\r\n\tloading:Loader\r\n})\r\n\r\nexport default class extends PureComponent {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n {\r\n //\r\n }\r\n \r\n \r\n \" />\r\n \r\n
\r\n );\r\n }\r\n}\r\n","export default function () {\r\n\r\n document.addEventListener('click', function (e) {\r\n //e.preventDefault()\r\n })\r\n \r\n var c = document.getElementById('evanyou-canvas'),\r\n x = c.getContext('2d'),\r\n pr = window.devicePixelRatio || 1,\r\n w = window.innerWidth,\r\n h = window.innerHeight,\r\n f = 90,\r\n q,\r\n m = Math,\r\n r = 0,\r\n u = m.PI*2,\r\n v = m.cos,\r\n z = m.random\r\n c.width = w*pr\r\n c.height = h*pr\r\n x.scale(pr, pr)\r\n x.globalAlpha = 0.6\r\n function i(){\r\n x.clearRect(0,0,w,h)\r\n q=[{x:0,y:h*.7+f},{x:0,y:h*.7-f}]\r\n while(q[1].xh||t<0) ? y(p) : t\r\n }\r\n document.onclick = i\r\n document.ontouchstart = i\r\n i()\r\n return i\r\n }","import React, { PureComponent, Fragment } from 'react';\r\nimport { BrowserRouter } from 'react-keeper';\r\n\r\nimport Index from './pages';\r\nimport ReactAplayer from 'react-aplayer';\r\nimport evanyou from './util/evanyou';\r\nimport './App.css';\r\n\r\n\r\n\r\nclass App extends PureComponent {\r\n\r\n\tgetPlayList = (id) => {\r\n\t\treturn fetch(`/api/playlist/${id}`)\r\n\t\t.then((response) => {\r\n if (response.ok) {\r\n return response.json() || {};\r\n }else{\r\n\t\t\t\treturn {};\r\n\t\t\t}\r\n })\r\n .catch((err) => {\r\n\t\t\tconsole.warn(err);\r\n\t\t\treturn {};\r\n })\r\n\t}\r\n\r\n\tasync componentDidMount() {\r\n\t\tevanyou();\r\n\t\t//const data = await this.getPlayList('21711688');\r\n\t\t//this.alpayer.list.add(data.data||[])\r\n\t}\r\n\t\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.alpayer = ap}\r\n\t\t\t\t\t\ttheme=\"#e26d6d\"\r\n\t\t\t\t\t\torder=\"random\"\r\n\t\t\t\t\t\tlrcType={3}\r\n\t\t\t\t\t\tfixed={true}\r\n\t\t\t\t\t\tmini={true}\r\n\t\t\t\t\t\tlistFolded={true}\r\n\t\t\t\t\t\taudio={[]}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default App;\r\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\n\nReactDOM.render(, document.getElementById('root'));\nregisterServiceWorker();\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /build/static/js/runtime~main.750e7f62.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],f=0,d=[];fXboxYan' Blog
Loading…
-------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notes", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "gitalk": "^1.5.0", 7 | "highlightjs": "^9.12.0", 8 | "moment": "^2.24.0", 9 | "pm2": "^2.10.4", 10 | "react": "^16.8.6", 11 | "react-aplayer": "^1.0.0", 12 | "react-dom": "^16.8.6", 13 | "react-keeper": "^2.1.12", 14 | "react-loadable": "^5.4.0", 15 | "react-scripts": "^3.0.1", 16 | "remarkable": "^1.7.1" 17 | }, 18 | "proxy": "https://api.github.com/graphql", 19 | "homepage": "https://blog.codelabo.cn/build", 20 | "scripts": { 21 | "start": "react-scripts start", 22 | "build": "react-scripts build", 23 | "test": "react-scripts test --env=jsdom", 24 | "eject": "react-scripts eject" 25 | }, 26 | "browserslist": { 27 | "production": [ 28 | ">0.2%", 29 | "not dead", 30 | "not op_mini all" 31 | ], 32 | "development": [ 33 | "last 1 chrome version", 34 | "last 1 firefox version", 35 | "last 1 safari version" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XboxYan/notes/8814a8957ec0f6e98f25ec547361f539c4fdb3b1/public/favicon.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | XboxYan' Blog 23 | 161 | 162 | 163 | 166 | 167 |
Loading…
168 | 178 | 179 | 180 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent, Fragment } from 'react'; 2 | import { BrowserRouter } from 'react-keeper'; 3 | 4 | import Index from './pages'; 5 | import ReactAplayer from 'react-aplayer'; 6 | import evanyou from './util/evanyou'; 7 | import './App.css'; 8 | 9 | 10 | 11 | class App extends PureComponent { 12 | 13 | getPlayList = (id) => { 14 | return fetch(`/api/playlist/${id}`) 15 | .then((response) => { 16 | if (response.ok) { 17 | return response.json() || {}; 18 | }else{ 19 | return {}; 20 | } 21 | }) 22 | .catch((err) => { 23 | console.warn(err); 24 | return {}; 25 | }) 26 | } 27 | 28 | async componentDidMount() { 29 | evanyou(); 30 | //const data = await this.getPlayList('21711688'); 31 | //this.alpayer.list.add(data.data||[]) 32 | } 33 | 34 | 35 | render() { 36 | return ( 37 | 38 | 39 | 40 | this.alpayer = ap} 42 | theme="#e26d6d" 43 | order="random" 44 | lrcType={3} 45 | fixed={true} 46 | mini={true} 47 | listFolded={true} 48 | audio={[]} 49 | /> 50 | 51 | 52 | ); 53 | } 54 | } 55 | 56 | export default App; 57 | -------------------------------------------------------------------------------- /src/admin.css: -------------------------------------------------------------------------------- 1 | .table-con{ 2 | width: 100%; 3 | } 4 | 5 | .table-con th{ 6 | 7 | background: #e26d6d; 8 | color: #fff; 9 | height: 40px; 10 | border: 0; 11 | } 12 | 13 | .table-con td{ 14 | text-align: center; 15 | word-wrap: break-word; 16 | word-break: break-all; 17 | border: 0; 18 | height: 40px; 19 | } 20 | 21 | .table-con tbody tr{ 22 | transition: .2s; 23 | border-bottom: 1px solid #eee; 24 | } 25 | 26 | .table-con tbody tr:hover{ 27 | background: #f9f9f9 28 | } 29 | 30 | .table-con tbody tr td:nth-child(2),.table-con tbody tr td:nth-child(5){ 31 | text-align: left; 32 | } 33 | 34 | .table-con .tag-wrap{ 35 | line-height: inherit; 36 | padding: 3px 12px; 37 | margin: 3px; 38 | } 39 | 40 | .table-con .article-tag{ 41 | margin: 3px; 42 | } 43 | 44 | .admin-container{ 45 | position: relative; 46 | z-index: 1; 47 | background: #fff; 48 | } 49 | 50 | .admin-container .main{ 51 | width: 98%; 52 | padding-top: 1rem; 53 | } 54 | 55 | .admin-title{ 56 | margin: 1rem 0; 57 | letter-spacing: .6px; 58 | color: rgba(0,0,0,.5); 59 | font-size: 1.25rem; 60 | } 61 | 62 | .admin-container .edit-input{ 63 | border: 1px solid #eee; 64 | padding: 15px 10px; 65 | border-radius: 5px; 66 | resize: none; 67 | } 68 | 69 | .admin-container .edit-input:focus{ 70 | border-color: #e26d6d 71 | } 72 | 73 | .checkbox{ 74 | position: absolute; 75 | clip: rect(0,0,0,0) 76 | } 77 | 78 | .checkbox+.article-tag{ 79 | position: relative; 80 | transition: .2s; 81 | } 82 | 83 | .checkbox:checked+.article-tag{ 84 | border: 1px solid #e26d6d; 85 | color: #e26d6d; 86 | } 87 | 88 | .checkbox:checked+.article-tag:after{ 89 | content: '√'; 90 | display: inline-block; 91 | margin-left: 5px; 92 | font-size: small; 93 | transform: rotate(10deg) 94 | } 95 | 96 | .article-tag-loading{ 97 | opacity: 0.6; 98 | pointer-events: none; 99 | } 100 | 101 | .admin-content{ 102 | padding-bottom: 1.5rem; 103 | } 104 | 105 | .admin-add-button{ 106 | cursor: pointer; 107 | margin-bottom: 1.5rem; 108 | display: inline-block; 109 | padding: 3px 6px; 110 | color: #e26d6d; 111 | border-radius: 4px; 112 | border: 1px solid #e26d6d; 113 | transition: .2s; 114 | font-size: .85rem; 115 | } 116 | 117 | .admin-add-button:hover{ 118 | background: #e26d6d; 119 | color: #fff; 120 | } 121 | 122 | -------------------------------------------------------------------------------- /src/admin/article.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import fetchData from '../util/Fetch'; 3 | import Footer from '../components/footer'; 4 | import Loader from '../components/loader'; 5 | import Pager from '../components/pager'; 6 | import moment from 'moment'; 7 | import { CacheLink } from 'react-keeper'; 8 | 9 | export default class extends PureComponent { 10 | pagesize = 5; 11 | 12 | state = { 13 | articles:[], 14 | total:0, 15 | isrender:true 16 | } 17 | 18 | getArticle = async (page=1) => { 19 | this.setState({isrender:true}); 20 | const articles = await fetchData(`/api/article?page=${page}&pagesize=${this.pagesize}`); 21 | this.setState({articles:articles.data,total:articles.counts,isrender:false}); 22 | } 23 | 24 | onhandle = (dir) => () => { 25 | const { total, page } = this.state; 26 | let $page = Math.max(Math.min(page + dir,Math.ceil(total/this.pagesize)),1); 27 | this.getArticle($page); 28 | } 29 | 30 | componentDidMount () { 31 | this.getArticle(1); 32 | } 33 | 34 | render() { 35 | const {articles,total,isrender} = this.state; 36 | return ( 37 |
38 |
39 | 共{total}篇文章 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | { 53 | !isrender && articles.map(article=>( 54 | 55 | 56 | 57 | 58 | 59 | 60 | 64 | 65 | )) 66 | } 67 | 68 |
_id标题发布时间访问量分类操作
{article._id}{article.title}{moment(article.createdAt).utcOffset(8).format("YYYY年M月D日 , HH:mm:ss")}{article.views}{article.categories.map((category,i)=>{category.name})} 61 | 编辑 62 | 删除 63 |
69 | { 70 | isrender&& 71 | } 72 | 现在发布 73 | 78 |
79 |
80 |
81 | ) 82 | } 83 | } -------------------------------------------------------------------------------- /src/admin/category.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import fetchData from '../util/Fetch'; 3 | import Footer from '../components/footer'; 4 | import Loader from '../components/loader'; 5 | import moment from 'moment'; 6 | import { CacheLink } from 'react-keeper'; 7 | 8 | class Edit extends PureComponent { 9 | 10 | state = { 11 | show:false, 12 | title:'', 13 | } 14 | 15 | show = (oname,title,cb) => { 16 | this.input.value = oname; 17 | this.setState({show:true,title}); 18 | this.input.focus(); 19 | this.onSubmit = (ev) => { 20 | ev.preventDefault(); 21 | cb(this.input.value.replace(/\s+/g, ""),this.hide); 22 | } 23 | } 24 | 25 | hide = () => { 26 | this.setState({show:false}); 27 | } 28 | 29 | render() { 30 | const { show,title } = this.state; 31 | return ( 32 |
33 |
34 | this.input=node} type="text" placeholder={title} className="edit-input" /> 35 | 36 |
37 |
38 | ) 39 | } 40 | } 41 | 42 | export default class extends PureComponent { 43 | 44 | state = { 45 | categories: [], 46 | isrender: true 47 | } 48 | 49 | getCategories = async () => { 50 | this.setState({ isrender: true }); 51 | const categories = await fetchData(`/api/category`); 52 | this.setState({ categories: categories.data, isrender: false }); 53 | } 54 | 55 | componentDidMount() { 56 | this.getCategories(); 57 | } 58 | 59 | onEdit = (id,oname) => () => { 60 | this.popedit.show(oname,'修改分类',async(name,cb)=>{ 61 | if(name){ 62 | const categoryInfo = await fetchData(`/api/category/${id}`,{ 63 | method:'PUT', 64 | body:JSON.stringify({name}) 65 | }); 66 | if(categoryInfo.success){ 67 | await this.getCategories(); 68 | cb&&cb(); 69 | } 70 | } 71 | }) 72 | } 73 | 74 | onAdd = () => { 75 | this.popedit.show('','新增分类',async(name,cb)=>{ 76 | if(name){ 77 | const categoryInfo = await fetchData(`/api/category`,{ 78 | method:'POST', 79 | body:JSON.stringify({name}) 80 | }); 81 | if(categoryInfo.success){ 82 | await this.getCategories(); 83 | cb&&cb(); 84 | } 85 | } 86 | }) 87 | } 88 | 89 | onDel = (id) => async () => { 90 | const categoryInfo = await fetchData(`/api/category/${id}`,{ 91 | method:'DELETE' 92 | }); 93 | if(categoryInfo.success){ 94 | await this.getCategories(); 95 | } 96 | } 97 | 98 | render() { 99 | const { categories, isrender } = this.state; 100 | return ( 101 |
102 |
103 | 共{categories.length}个分类 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | { 116 | !isrender && categories.map(category => ( 117 | 118 | 119 | 120 | 121 | 122 | 126 | 127 | )) 128 | } 129 | 130 |
_id名称创建时间更新时间操作
{category._id}{category.name}{moment(category.createdAt).utcOffset(8).format("YYYY年M月D日 , HH:mm:ss")}{moment(category.updatedAt).utcOffset(8).format("YYYY年M月D日 , HH:mm:ss")} 123 | 编辑 124 | 删除 125 |
131 | { 132 | isrender && 133 | } 134 | 添加分类 135 |
136 |
137 | this.popedit=node} /> 138 |
139 | ) 140 | } 141 | } -------------------------------------------------------------------------------- /src/admin/home.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import Footer from '../components/footer'; 3 | 4 | export default class extends PureComponent { 5 | render() { 6 | return ( 7 |
8 |
9 | Admin 10 |
11 |
12 |
13 | ) 14 | } 15 | } -------------------------------------------------------------------------------- /src/admin/index.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import { Route } from 'react-keeper'; 3 | import Loadable from 'react-loadable'; 4 | import Nav from '../components/nav'; 5 | import Loader from '../components/loader'; 6 | import '../admin.css'; 7 | 8 | const Home = Loadable({ 9 | loader:()=>import('./home'), 10 | loading:Loader 11 | }) 12 | 13 | const Article = Loadable({ 14 | loader:()=>import('./article'), 15 | loading:Loader 16 | }) 17 | 18 | const Category = Loadable({ 19 | loader:()=>import('./category'), 20 | loading:Loader 21 | }) 22 | 23 | const Publish = Loadable({ 24 | loader:()=>import('./publish'), 25 | loading:Loader 26 | }) 27 | 28 | export default class extends PureComponent { 29 | render() { 30 | return ( 31 |
32 |
38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/admin/publish.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent, Fragment } from 'react'; 2 | import { Control } from 'react-keeper'; 3 | import fetchData from '../util/Fetch'; 4 | import Markview from '../components/markview'; 5 | import BackTop from '../components/backTop'; 6 | 7 | class CategoryGroup extends PureComponent { 8 | 9 | state = { 10 | checked: this.props.checked, 11 | categories:[] 12 | } 13 | 14 | getCategories = async () => { 15 | this.setState({ isrender: true }); 16 | const categories = await fetchData(`/api/category`); 17 | this.setState({ categories: categories.data }); 18 | } 19 | 20 | componentWillReceiveProps(nextProps) { 21 | if( this.props.checked!==nextProps.checked){ 22 | this.setState({checked:nextProps.checked}) 23 | } 24 | } 25 | 26 | onChange = (ev) => { 27 | const checked = [...this.state.checked]; 28 | const target = ev.target; 29 | if (target.checked) { 30 | checked.push(target.id); 31 | } else { 32 | checked.splice(checked.findIndex((d) => d === target.id), 1); 33 | } 34 | this.props.onChange && this.props.onChange(checked); 35 | this.setState({ checked }); 36 | } 37 | 38 | componentDidMount() { 39 | this.getCategories(); 40 | } 41 | 42 | render() { 43 | const { checked,categories } = this.state; 44 | this.value = checked; 45 | return ( 46 | 47 | { 48 | categories.length > 0 ? categories.map((d) => ( 49 | 50 | = 0} id={d._id} /> 51 | 52 | 53 | )) 54 | : 55 | 56 | } 57 | 58 | ) 59 | } 60 | } 61 | 62 | class MarkdownEditor extends PureComponent { 63 | 64 | state = { 65 | value: this.props.defaultValue 66 | }; 67 | 68 | onChange = (e) => { 69 | const value = e.target.value; 70 | this.timer && clearTimeout(this.timer); 71 | this.timer = setTimeout(() => { 72 | this.setState({ value }); 73 | this.props.onChange && this.props.onChange(value); 74 | }, 300) 75 | } 76 | 77 | componentWillReceiveProps(nextProps) { 78 | if( this.props.defaultValue!==nextProps.defaultValue){ 79 | this.setState({value:nextProps.defaultValue}); 80 | this.textarea.value = nextProps.defaultValue; 81 | } 82 | } 83 | 84 | onkeydown = (e) => { 85 | if(e.keyCode===9){ 86 | e.preventDefault(); 87 | const target = e.target; 88 | const value = target.value; 89 | const positionS = target.selectionStart; 90 | const positionE = target.selectionEnd; 91 | target.value = value.substr(0,positionS)+' '+value.substr(positionE); 92 | target.selectionStart = positionS+2; 93 | target.selectionEnd = positionS+2; 94 | } 95 | } 96 | 97 | render() { 98 | const { value } = this.state; 99 | this.value = value; 100 | const { className,rows,placeholder } = this.props; 101 | return ( 102 |
103 |