diff options
author | sun6eal <jacob.sun.meta@gmail.com> | 2019-05-25 17:43:36 +0300 |
---|---|---|
committer | sun6eal <jacob.sun.meta@gmail.com> | 2019-05-25 17:43:36 +0300 |
commit | 5b00790eb1cb4e6d2efeb103efd0c6cbc30912f7 (patch) | |
tree | 0f2714c5bf5919ef99cbb0cf1fe4ba6c7c615239 | |
parent | f58e2a3a6f7549475adc54c7b609468af0bfa37f (diff) |
update
-rw-r--r-- | layouts/404.html | 12 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | static/css/main.css | 199 | ||||
-rw-r--r-- | static/js/main.js | 113 |
4 files changed, 323 insertions, 3 deletions
diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..e25eb89 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,12 @@ +{{ partial "head.html" . }} + +<body> + {{ partial "header.html" . }} + <main class="not-found"> + <h1>404</h1> + <p>Nothing found.</p> + </main> + {{ partial "js.html" . }} + {{ partial "footer.html" .}} +</body> +</html> diff --git a/package.json b/package.json index 9b9ac22..1c6b4d0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "scripts": { "start": "npm run build && NODE_ENV=development webpack --watch", - "build": "NODE_ENV=production webpack --config webpack.config.js" + "build": "rimraf static/images/* && NODE_ENV=production webpack --config webpack.config.js" }, "author": "", "license": "ISC", diff --git a/static/css/main.css b/static/css/main.css index 078127e..3c65045 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -1 +1,198 @@ -html{font-size:calc(1vh + 1vw)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif}img{height:auto;width:100%;max-width:40vw}.no-break{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control{list-style-type:none;margin:0;padding:0}.btn{cursor:pointer;text-decoration:none}.list,.pagination ul{list-style-type:none;margin:0 auto;padding:0}body{color:#001d21;width:80vw;margin:0 auto}.list{min-height:80vh;margin:0 auto 1rem;background:#333 url(/images/greenbox.jpg) no-repeat top/cover content-box content-box;-webkit-perspective:calc(100vw + 100vh);perspective:calc(100vw + 100vh)}.list li{padding:1em 0;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.list li:first-child{padding-top:0}.list span{position:absolute;left:-3.5em}.list a{color:#001d21;background:#fff;width:100%;display:block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-transform:rotate(0deg) skew(0deg);transform:rotate(0deg) skew(0deg)}.list li:hover a{-webkit-transform:rotate(5deg) skew(20deg);transform:rotate(5deg) skew(20deg);-webkit-transition:-webkit-transform .5s ease 0s;transition:-webkit-transform .5s ease 0s;transition:transform .5s ease 0s;transition:transform .5s ease 0s,-webkit-transform .5s ease 0s;-webkit-animation:slide 15s ease .5s 1 normal forwards running;animation:slide 15s ease .5s 1 normal forwards running;-webkit-box-shadow:.3rem .3rem 0 0 #01a290;box-shadow:.3rem .3rem 0 0 #01a290}.list a:active{outline:none}.list a,.list span{vertical-align:super;line-height:2em}@-webkit-keyframes slide{0%{-webkit-transform:rotate(5deg) skew(20deg) translateX(0);transform:rotate(5deg) skew(20deg) translateX(0)}to{-webkit-transform:rotate(5deg) skew(20deg) translateX(-10rem);transform:rotate(5deg) skew(20deg) translateX(-10rem)}}@keyframes slide{0%{-webkit-transform:rotate(5deg) skew(20deg) translateX(0);transform:rotate(5deg) skew(20deg) translateX(0)}to{-webkit-transform:rotate(5deg) skew(20deg) translateX(-10rem);transform:rotate(5deg) skew(20deg) translateX(-10rem)}}.pagination a{font-size:2rem;color:#01a290;line-height:1}.pagination ul{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.pagination li{margin-left:2rem}.header{margin:0 auto;padding:1rem 0 .5rem;min-height:2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header img{max-width:6rem}.header .menu{display:-webkit-box;display:-ms-flexbox;display:flex}.header .menu li{margin-left:1rem}.header .menu a{color:#01a290}.footer{text-align:center;margin:.5rem 0}.footer a{text-decoration:none;color:#333}.content{min-height:70vh;color:#001d21}.content .no-content{width:100%;background:#01a290 url(/images/greenbox.jpg) no-repeat 50%/100% content-box content-box;color:#fff;font-size:2rem;line-height:2;text-align:center;text-indent:-999vw;height:40vh}.content h1.title a{display:block;background:#fff;color:#001d21;border-bottom:none}.content a{color:#01a290}.content dl,.content ol,.content ul{line-height:2}.content .meta{border-bottom:1px solid #333;margin:1.5rem 0;font-style:italic;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:flow-end;-ms-flex-pack:flow-end;justify-content:flow-end}.content .meta ul{margin:1rem 1rem 1rem 0;line-height:normal}.content .meta li{display:inline-block}.content .meta li a{line-height:normal}.content .meta p{margin-right:1rem}pre{padding:.8rem 1rem}code,pre{overflow:auto}code{font-size:.8rem;font-family:Fira Code,Inconsolata,Deja Vu Sans Mono,Source Code Pro,Consolas,monospace;padding:.2rem .6rem}@media screen and (max-width:600px){.content .meta{display:block}}
\ No newline at end of file +html { + font-size: calc(1vh + 1vw); } + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif; } + +img { + height: auto; + width: 100%; + max-width: 40vw; } + +.no-break { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.control { + list-style-type: none; + margin: 0; + padding: 0; } + +.btn { + cursor: pointer; + text-decoration: none; } + +.pagination ul, +.list { + list-style-type: none; + margin: 0 auto; + padding: 0; } + +body { + color: #001D21; + width: 80vw; + margin: 0 auto; } + +.list { + min-height: 80vh; + margin: 0 auto 1rem auto; + background: #333 url(/images/greenbox.jpg) no-repeat top/cover content-box content-box; + -webkit-perspective: calc(100vw + 100vh); + perspective: calc(100vw + 100vh); } + .list li { + padding: 1em 0; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .list li:first-child { + padding-top: 0; } + .list span { + position: absolute; + left: -3.5em; } + .list a { + color: #001D21; + background: #FFF; + width: 100%; + display: block; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + -webkit-transform: rotate(0deg) skew(0deg); + transform: rotate(0deg) skew(0deg); } + .list li:hover a { + -webkit-transform: rotate(5deg) skew(20deg); + transform: rotate(5deg) skew(20deg); + -webkit-transition: -webkit-transform .5s ease 0s; + transition: -webkit-transform .5s ease 0s; + transition: transform .5s ease 0s; + transition: transform .5s ease 0s, -webkit-transform .5s ease 0s; + -webkit-animation: slide 15s ease .5s 1 normal forwards running; + animation: slide 15s ease .5s 1 normal forwards running; + -webkit-box-shadow: 0.3rem 0.3rem 0rem 0rem #01A290; + box-shadow: 0.3rem 0.3rem 0rem 0rem #01A290; } + .list a:active { + outline: none; } + .list span, + .list a { + vertical-align: super; + line-height: 2em; } + +@-webkit-keyframes slide { + 0% { + -webkit-transform: rotate(5deg) skew(20deg) translateX(0rem); + transform: rotate(5deg) skew(20deg) translateX(0rem); } + 100% { + -webkit-transform: rotate(5deg) skew(20deg) translateX(-10rem); + transform: rotate(5deg) skew(20deg) translateX(-10rem); } } + +@keyframes slide { + 0% { + -webkit-transform: rotate(5deg) skew(20deg) translateX(0rem); + transform: rotate(5deg) skew(20deg) translateX(0rem); } + 100% { + -webkit-transform: rotate(5deg) skew(20deg) translateX(-10rem); + transform: rotate(5deg) skew(20deg) translateX(-10rem); } } + +.pagination a { + font-size: 2rem; + color: #01A290; + line-height: 1; } + +.pagination ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.pagination li { + margin-left: 2rem; } + +.header { + margin: 0 auto; + padding: 1rem 0 0.5rem 0; + min-height: 2rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .header img { + max-width: 6rem; } + .header .menu { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .header .menu li { + margin-left: 1rem; } + .header .menu a { + color: #01A290; } + +.footer { + text-align: center; + margin: 0.5rem 0 0.5rem 0; } + .footer a { + text-decoration: none; + color: #333; } + +.content { + min-height: 70vh; + color: #001D21; } + .content .no-content { + width: 100%; + background: #01A290 url(/images/greenbox.jpg) no-repeat center/100% content-box content-box; + color: #FFF; + font-size: 2rem; + line-height: 2; + text-align: center; + text-indent: -999vw; + height: 40vh; } + .content h1.title a { + display: block; + background: #FFF; + color: #001D21; + border-bottom: none; } + .content a { + color: #01A290; } + .content ul, .content ol, .content dl { + line-height: 2; } + .content .meta { + border-bottom: 1px solid #333; + margin: 1.5rem 0; + font-style: italic; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: flow-end; + -ms-flex-pack: flow-end; + justify-content: flow-end; } + .content .meta ul { + margin: 1rem 1rem 1rem 0; + line-height: normal; + line-height: initial; } + .content .meta li { + display: inline-block; } + .content .meta li a { + line-height: normal; } + .content .meta p { + margin-right: 1rem; } + +pre { + overflow: auto; + padding: 0.8rem 1rem; } + +code { + overflow: auto; + font-size: 0.8rem; + font-family: 'Fira Code', Inconsolata, 'Deja Vu Sans Mono', 'Source Code Pro', Consolas, monospace; + padding: 0.2rem 0.6rem; } + +@media screen and (max-width: 600px) { + .content .meta { + display: block; } } + diff --git a/static/js/main.js b/static/js/main.js index 190efff..d41ff4a 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -1 +1,112 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);n(1);console.log("hello")},function(e,t,n){}]);
\ No newline at end of file +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./src/css/main.scss": +/*!***************************!*\ + !*** ./src/css/main.scss ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/css/main.scss?"); + +/***/ }), + +/***/ "./src/index.js": +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _css_main_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css/main.scss */ \"./src/css/main.scss\");\n/* harmony import */ var _css_main_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_main_scss__WEBPACK_IMPORTED_MODULE_0__);\n\n\nconsole.log(\"hello\")\n\n\n//# sourceURL=webpack:///./src/index.js?"); + +/***/ }) + +/******/ });
\ No newline at end of file |