├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .travis.yml ├── CNAME ├── README.md ├── babel.config.js ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ ├── data.json │ ├── images │ │ ├── avatar.jpg │ │ ├── loading.gif │ │ ├── logo.png │ │ └── qrcode.png │ ├── js │ │ ├── dateFormat.js │ │ └── expirePlugin.js │ ├── logo.png │ └── styles │ │ └── styles.scss ├── components │ ├── Github.vue │ ├── InfoCard.vue │ ├── Loading.vue │ ├── ModuleTemplate.vue │ ├── Nav.vue │ └── PostTemplate.vue ├── main.js ├── mikuConfig.js ├── router.js └── views │ ├── Bangumi.vue │ ├── Friends.vue │ ├── Music.vue │ ├── Pixiv.vue │ ├── Posts.vue │ └── Twitter.vue ├── vue.config.js └── yarn.lock /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | '@vue/prettier' 9 | ], 10 | rules: { 11 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 12 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 13 | }, 14 | parserOptions: { 15 | parser: 'babel-eslint' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | script: 5 | - yarn build 6 | install: 7 | - yarn install 8 | cache: 9 | directories: 10 | - node_modules 11 | after_script: 12 | - cp -f CNAME ./dist/CNAME 13 | - cd ./dist 14 | - git init 15 | - git config user.name "Ice-Hazymoon" 16 | - git config user.email "imiku.me@gmail.com" 17 | - git add . 18 | - git commit -m "automated build" 19 | - git push --quiet --force https://${REPO_TOKEN}@github.com/Ice-Hazymoon/homepage.git master:gh-pages -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | me.imiku.me -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ice-Hazymoon 的个人展示页 2 | 3 | ## demo 4 | 5 | > [https://me.imiku.me](https://me.imiku.me) 6 | 7 | ## 运行 8 | 9 | - 修改 `./src/mikuConfig.js` 配置文件 10 | - `yarn` 或者 `npm install` 11 | - `yarn serve` 或者 `npm run serve` 12 | 13 | ## 构建 14 | 15 | `yarn build` 或 `npm run build` 16 | 17 | ## 其他 18 | 19 | > [https://imiku.me/2018/07/02/1105.html](https://imiku.me/2018/07/02/1105.html) 20 | 21 | - 友情链接的接口需要使用 [REST API Link Manager](https://wordpress.org/plugins/rest-api-link-manager/) 插件, 暂时只支持 22 | - 文章模块暂时只支持wordpress 23 | 24 | ## 自定义聚合 25 | 26 | - 待补充... -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/app"] 3 | }; 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "router", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.18.0", 12 | "normalize.css": "^8.0.0", 13 | "pangu": "^3.3.0", 14 | "store": "^2.0.12", 15 | "vue": "^2.5.16", 16 | "vue-aplayer": "^1.6.0", 17 | "vue-js-modal": "^1.3.15", 18 | "vue-loading-template": "^1.2.0", 19 | "vue-router": "^3.0.1", 20 | "zooming": "^2.1.0" 21 | }, 22 | "devDependencies": { 23 | "@vue/cli-plugin-babel": "^3.0.0-rc.3", 24 | "@vue/cli-plugin-eslint": "^3.0.0-rc.3", 25 | "@vue/cli-service": "^3.0.0-rc.3", 26 | "@vue/eslint-config-prettier": "^3.0.0-rc.3", 27 | "node-sass": "^4.9.0", 28 | "sass-loader": "^7.0.1", 29 | "vue-template-compiler": "^2.5.16" 30 | }, 31 | "browserslist": [ 32 | "> 1%", 33 | "last 2 versions", 34 | "not ie <= 8" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 喵喵喵? 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: App.vue 3 | * Project: router 4 | * File Created: Wednesday, 20th June 2018 3:30:35 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:45:34 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 29 | 30 | 57 | 58 | 142 | -------------------------------------------------------------------------------- /src/assets/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Ice-Hazymoon", 3 | "keyword": ["关键字", "关键字2"], 4 | "author": "Ice-Hazymoon", 5 | "link": "https://i.imiku.me", 6 | "githubName": "Ice-Hazymoon", 7 | "blogRssLink": "https://imiku.me/rss", 8 | "avatar": "./images/avatar.jpg", 9 | "logo": "./images/logo.png", 10 | "email": "imiku.me@gmail.com", 11 | "qrcode": "./images/qrcode.png", 12 | "searchUrl": "https://imiku.me/?s={{keyword}}", 13 | "navLinks": [{ 14 | "name": "Home", 15 | "link": "./" 16 | }, { 17 | "name": "GitHub", 18 | "link": "https://github.com/Ice-Hazymoon" 19 | }, { 20 | "name": "About", 21 | "link": "https://i.imiku.me" 22 | }, { 23 | "name": "Blog", 24 | "link": "https://imiku.me" 25 | }, { 26 | "name": "Status", 27 | "link": "https://status.imiku.me/" 28 | }], 29 | "functionSwitch": [{ 30 | "posts": true, 31 | "bilibili": true, 32 | "pixiv": true, 33 | "music": true, 34 | "friends": true 35 | }] 36 | } -------------------------------------------------------------------------------- /src/assets/images/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/src/assets/images/avatar.jpg -------------------------------------------------------------------------------- /src/assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/src/assets/images/loading.gif -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/src/assets/images/logo.png -------------------------------------------------------------------------------- /src/assets/images/qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/src/assets/images/qrcode.png -------------------------------------------------------------------------------- /src/assets/js/dateFormat.js: -------------------------------------------------------------------------------- 1 | export default function(fmt) { 2 | var o = { 3 | "M+": this.getMonth() + 1, //月份 4 | "d+": this.getDate(), //日 5 | "h+": this.getHours(), //小时 6 | "m+": this.getMinutes(), //分 7 | "s+": this.getSeconds(), //秒 8 | "q+": Math.floor((this.getMonth() + 3) / 3), //季度 9 | S: this.getMilliseconds() //毫秒 10 | }; 11 | if (/(y+)/.test(fmt)) 12 | fmt = fmt.replace( 13 | RegExp.$1, 14 | (this.getFullYear() + "").substr(4 - RegExp.$1.length) 15 | ); 16 | for (var k in o) 17 | if (new RegExp("(" + k + ")").test(fmt)) 18 | fmt = fmt.replace( 19 | RegExp.$1, 20 | RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length) 21 | ); 22 | return fmt; 23 | } 24 | -------------------------------------------------------------------------------- /src/assets/js/expirePlugin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * File: expirePlugin.js 3 | * Project: router 4 | * File Created: Tuesday, 26th June 2018 9:38:41 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Thursday, 5th July 2018 11:54:42 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | * ----- 10 | * Copyright 2017 - 2018 11 | */ 12 | // expirePlugin 13 | const namespace = "expire_mixin"; 14 | export default function expirePlugin() { 15 | let expirations = this.createStore( 16 | this.storage, 17 | null, 18 | this._namespacePrefix + namespace 19 | ); 20 | 21 | return { 22 | set: expire_set, 23 | get: expire_get, 24 | remove: expire_remove, 25 | getExpiration: getExpiration, 26 | removeExpiredKeys: removeExpiredKeys 27 | }; 28 | 29 | function expire_set(super_fn, key, val, expiration) { 30 | if (!this.hasNamespace(namespace)) { 31 | expirations.set(key, expiration); 32 | } 33 | return super_fn(); 34 | } 35 | 36 | function expire_get(super_fn, key) { 37 | if (!this.hasNamespace(namespace)) { 38 | _checkExpiration.call(this, key); 39 | } 40 | return super_fn(); 41 | } 42 | 43 | function expire_remove(super_fn, key) { 44 | if (!this.hasNamespace(namespace)) { 45 | expirations.remove(key); 46 | } 47 | return super_fn(); 48 | } 49 | 50 | function getExpiration(_, key) { 51 | return expirations.get(key); 52 | } 53 | 54 | function removeExpiredKeys() { 55 | let keys = []; 56 | this.each(function(val, key) { 57 | keys.push(key); 58 | }); 59 | for (let i = 0; i < keys.length; i++) { 60 | _checkExpiration.call(this, keys[i]); 61 | } 62 | } 63 | 64 | function _checkExpiration(key) { 65 | let expiration = expirations.get(key, Number.MAX_VALUE); 66 | if (expiration <= new Date().getTime()) { 67 | this.raw.remove(key); 68 | expirations.remove(key); 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ice-Hazymoon/homepage/55fa974f7989a3b71f691810b2b02da56a34cab9/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/styles/styles.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * File: styles.scss 3 | * Project: router 4 | * File Created: Thursday, 21st June 2018 2:59:26 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:18:47 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | * ----- 10 | * Copyright 2017 - 2018 11 | */ 12 | 13 | * { 14 | -webkit-tap-highlight-color: transparent; 15 | -webkit-font-smoothing: antialiased; 16 | } 17 | 18 | body { 19 | font-family: -apple-system, sans-serif, "Microsoft YaHei", system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue"; 20 | background-color: rgb(129, 200, 252); 21 | overflow-x: hidden; 22 | padding-left: calc(100vw - 100%); 23 | } 24 | 25 | ul, 26 | li { 27 | margin: 0; 28 | padding: 0; 29 | list-style: none; 30 | } 31 | 32 | a { 33 | color: inherit; 34 | cursor: alias; 35 | text-decoration: none; 36 | } 37 | 38 | .conectMod { 39 | position: relative; 40 | background-color: #fff; 41 | .btn-list { 42 | height: calc(100% - 55px); 43 | position: relative; 44 | display: flex; 45 | align-items: center; 46 | justify-content: space-around; 47 | flex-direction: column; 48 | } 49 | .t { 50 | color: #696969; 51 | font-size: 20px; 52 | text-align: center; 53 | border-bottom: 1px solid #f5f5f5; 54 | padding: 15px; 55 | font-family: "Microsoft YaHei"; 56 | } 57 | a{ 58 | width: 130px; 59 | z-index: 1; 60 | position: relative; 61 | display: flex; 62 | align-items: center; 63 | justify-content: flex-start; 64 | padding: 10px 20px; 65 | transition: .4s ease all; 66 | cursor: pointer; 67 | font-size: 20px; 68 | &:hover{ 69 | box-shadow: 0 0 1px 1px #2b2f32; 70 | } 71 | &::after{ 72 | content: ''; 73 | position: absolute; 74 | left: 0; 75 | width: 0px; 76 | height: 100%; 77 | background-color: #38b7ea; 78 | transition: .4s ease all; 79 | z-index: -1; 80 | } 81 | } 82 | button{ 83 | outline: none; 84 | box-shadow: none; 85 | border: none; 86 | background-color: transparent; 87 | cursor: pointer; 88 | transition: .4s ease all; 89 | } 90 | svg { 91 | margin-right: 5px; 92 | width: 25px; 93 | height: 25px; 94 | fill: #2b2f32; 95 | transition: .4s ease all; 96 | } 97 | } 98 | 99 | .qrcodeMod { 100 | background-color: #fff; 101 | .t { 102 | color: #696969; 103 | font-size: 20px; 104 | text-align: center; 105 | border-bottom: 1px solid #f5f5f5; 106 | padding: 15px; 107 | font-family: "Microsoft YaHei"; 108 | } 109 | img { 110 | display: block; 111 | margin: 10px auto; 112 | } 113 | } 114 | 115 | .scale-enter-active, 116 | .scale-leave-active { 117 | transition: all .5s ease; 118 | } 119 | 120 | .scale-leave, 121 | .scale-enter-to { 122 | transform: translateY(0); 123 | opacity: 1; 124 | } 125 | 126 | .scale-leave-to, 127 | .scale-enter { 128 | transform: translateY(24px); 129 | opacity: .8; 130 | } 131 | 132 | // 排版 133 | .qrcode-enter-active, 134 | .qrcode-leave-active { 135 | transition: all 0.5s; 136 | } 137 | 138 | .qrcode-enter, 139 | .qrcode-leave-active { 140 | opacity: 0; 141 | transform: scale(0.3) translateY(24px); 142 | } 143 | 144 | .neko { 145 | background-color: #fff; 146 | padding: 20px 30px; 147 | font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif; 148 | box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.2); 149 | a { 150 | color: #FF6464; 151 | transition: all .35s; 152 | text-decoration: none; 153 | position: relative; 154 | padding-bottom: 2px; 155 | word-wrap: break-word; 156 | &::after { 157 | content: ""; 158 | transition: width .35s; 159 | right: 0; 160 | width: 0; 161 | bottom: 0px; 162 | position: absolute; 163 | border-bottom: 1px solid #FF6464; 164 | } 165 | &:hover::after { 166 | left: 0; 167 | width: 100%; 168 | } 169 | } 170 | p { 171 | margin-bottom: 20px; 172 | line-height: 1.7; 173 | font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif; 174 | } 175 | blockquote { 176 | padding-left: 1.2em; 177 | border-left: 4px solid #e2e3e4; 178 | margin: 20px 0; 179 | color: #8a8989; 180 | } 181 | pre { 182 | margin: 1em 0; 183 | padding: 10px 15px; 184 | font-size: 14px; 185 | font-family: Menlo, Monaco, Consolas, Andale Mono, lucida console, Courier New, monospace; 186 | background-color: #f6f6f6; 187 | border-radius: 6px; 188 | overflow-x: auto; 189 | &::-webkit-scrollbar { 190 | width: 10px; 191 | height: 8px; 192 | } 193 | &::-webkit-scrollbar-thumb { 194 | border-radius: 10px; 195 | background-color: #b6b4b4; 196 | } 197 | } 198 | code { 199 | font-family: Menlo, Monaco, Consolas, Andale Mono, lucida console, Courier New, monospace; 200 | background-color: #f6f6f6; 201 | border-radius: 6px; 202 | } 203 | img { 204 | max-width: 100%; 205 | margin: 10px 0; 206 | border-radius: 6px; 207 | } 208 | h1, 209 | h2, 210 | h3, 211 | h4, 212 | h5, 213 | h6 { 214 | font-weight: normal; 215 | color: #111; 216 | margin: 20px 0; 217 | } 218 | h1 { 219 | font-size: 1.8em; 220 | } 221 | h2 { 222 | font-size: 1.5em; 223 | } 224 | h3 { 225 | font-size: 1.3em; 226 | } 227 | h4 { 228 | font-size: 1.15em; 229 | } 230 | h5 { 231 | font-size: 1em; 232 | } 233 | h6 { 234 | font-size: 0.9em; 235 | } 236 | h4, 237 | h5, 238 | h6 { 239 | font-weight: bold; 240 | } 241 | h4:before, 242 | h5:before, 243 | h6:before { 244 | display: inline-block; 245 | width: 20px; 246 | content: '#'; 247 | color: #aaa; 248 | } 249 | abbr[title] { 250 | text-decoration: none; 251 | border-bottom: 1px dotted; 252 | cursor: help; 253 | } 254 | u, 255 | ins { 256 | text-decoration: none; 257 | border-bottom: 1px solid; 258 | } 259 | mark { 260 | color: #000; 261 | padding: 2px; 262 | margin: 0 5px; 263 | background-color: #fffdd1; 264 | border-bottom: 1px solid #ffedce; 265 | } 266 | kbd { 267 | padding: 2px 6px; 268 | font-size: 90%; 269 | color: #fff; 270 | background-color: #333; 271 | border-radius: 2px; 272 | font-family: Consolas, Courier, 'Courier New', monospace; 273 | } 274 | hr { 275 | height: 10px; 276 | margin-bottom: .8em; 277 | border: none; 278 | border-bottom: 1px dashed rgba(0, 0, 0, 0.12); 279 | } 280 | ol { 281 | padding-left: 2em; 282 | margin: 0 0 1.2em 0; 283 | } 284 | ul { 285 | padding-left: 2em; 286 | margin: 0 0 1.2em 0; 287 | list-style: disc; 288 | } 289 | li { 290 | list-style: disc; 291 | margin-top: 5px; 292 | ul, 293 | ol { 294 | margin: .8em 0; 295 | } 296 | ul { 297 | list-style: circle; 298 | } 299 | } 300 | table { 301 | color: #5b6064; 302 | border-spacing: 0; 303 | border-radius: 6px; 304 | text-align: center; 305 | border-collapse: collapse; 306 | box-shadow: 0 0 0 1px #eee; 307 | display: inline-block; 308 | max-width: 100%; 309 | overflow: auto; 310 | white-space: nowrap; 311 | margin: auto; 312 | &::-webkit-scrollbar { 313 | width: 10px; 314 | height: 10px; 315 | } 316 | &::-webkit-scrollbar-thumb { 317 | border-radius: 10px; 318 | background-color: #888; 319 | } 320 | tbody { 321 | padding: 0 -2px; 322 | } 323 | thead { 324 | border-bottom: 1px solid #eee; 325 | } 326 | th { 327 | border-right: 1px solid #eee; 328 | padding: 7px 14px; 329 | font-weight: normal; 330 | } 331 | td { 332 | border-right: 1px solid #eee; 333 | padding: 8px 14px; 334 | } 335 | th:last-child, 336 | td:last-child { 337 | border: none; 338 | } 339 | tr { 340 | background-color: #fff; 341 | &:nth-child(2n) { 342 | background-color: #f8f8f8; 343 | } 344 | } 345 | } 346 | } 347 | 348 | @media (max-width: 600px) { 349 | .neko { 350 | box-shadow: none; 351 | padding: 0; 352 | } 353 | } 354 | 355 | /* 排版end */ -------------------------------------------------------------------------------- /src/components/Github.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Github.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 9:39:34 am 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:08:25 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 11 | 33 | 69 | 139 | -------------------------------------------------------------------------------- /src/components/InfoCard.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: InfoCard.vue 3 | * Project: router 4 | * File Created: Thursday, 21st June 2018 4:36:39 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Thursday, 5th July 2018 11:59:31 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | * ----- 10 | * Copyright 2017 - 2018 11 | */ 12 | 35 | 44 | 133 | -------------------------------------------------------------------------------- /src/components/Loading.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Loading.vue 3 | * Project: router 4 | * File Created: Friday, 6th July 2018 11:40:10 am 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 11:55:00 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 24 | 35 | 36 | 106 | -------------------------------------------------------------------------------- /src/components/ModuleTemplate.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: ModuleTemplate.vue 3 | * Project: router 4 | * File Created: Friday, 6th July 2018 10:20:54 am 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 10:20:54 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 20 | 46 | 51 | -------------------------------------------------------------------------------- /src/components/Nav.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Head.vue 3 | * Project: router 4 | * File Created: Thursday, 21st June 2018 2:49:46 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Monday, 2nd July 2018 4:13:37 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | * ----- 10 | * Copyright 2017 - 2018 11 | */ 12 | 56 | 70 | 238 | -------------------------------------------------------------------------------- /src/components/PostTemplate.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: PostTemplate.vue 3 | * Project: router 4 | * File Created: Tuesday, 26th June 2018 5:21:48 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Tuesday, 26th June 2018 5:41:02 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 16 | 30 | 40 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import Vue from "vue"; 3 | import App from "./App.vue"; 4 | import './assets/styles/styles.scss'; 5 | import 'normalize.css'; 6 | import axios from 'axios'; 7 | import store from 'store'; 8 | import pangu from 'pangu'; 9 | import router from "./router"; 10 | import VModal from 'vue-js-modal'; 11 | import VueLoading from 'vue-loading-template'; 12 | import expirePlugin from './assets/js/expirePlugin'; 13 | import mikuConfig from './mikuConfig'; 14 | 15 | Vue.use(VueLoading); 16 | Vue.use(VModal, { dynamic: true }); 17 | Vue.config.productionTip = false; 18 | Vue.prototype.$http = axios; 19 | Vue.prototype.$store = store; 20 | Vue.prototype.$pangu = pangu; 21 | Vue.prototype.mikuConfig = mikuConfig; 22 | 23 | store.addPlugin(expirePlugin); 24 | 25 | new Vue({ 26 | router, 27 | render: h => h(App), 28 | }).$mount("#app") -------------------------------------------------------------------------------- /src/mikuConfig.js: -------------------------------------------------------------------------------- 1 | /* 2 | * File: config.js 3 | * Project: router 4 | * File Created: Monday, 2nd July 2018 3:15:56 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Sunday, 8th July 2018 2:06:58 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | export default { 11 | name: "Ice-Hazymoon", 12 | job: "Front-end development", 13 | address: "Yunnan China", 14 | rss: "https://imiku.me/feed", 15 | email: "imiku.me@gmail.com", 16 | contact: { 17 | qq: 1733708055, 18 | telegram: "hazymoon", 19 | email: "imiku.me@gmail.com" 20 | }, 21 | pixivId: 16126035, //pixiv id 22 | pixivProxy: "https://api.imiku.me/pixivProxy.php?url={url}", // pixiv 图片代理地址, 如果没有代理服务器请填写 `https://api.pixiv.moe/v2/image/` 23 | pixivSanityLevel: 5, // 分级, 默认为5 24 | blogUrl: "https://imiku.me", // 博客链接 25 | defaultCover: "https://myblogpic.b0.upaiyun.com/2018/07/2018070516124833.jpg", // 文章默认头图 26 | blogSearchUrl: "https://imiku.me/?s={keyword}", // 博客搜索链接, {keyword} 为关键字 27 | navLinks: [ 28 | // 导航链接, 建议放 5 个 29 | { 30 | name: "Home", 31 | link: "./" 32 | }, 33 | { 34 | name: "GitHub", 35 | link: "https://github.com/Ice-Hazymoon" 36 | }, 37 | { 38 | name: "About", 39 | link: "https://i.imiku.me" 40 | }, 41 | { 42 | name: "Blog", 43 | link: "https://imiku.me" 44 | }, 45 | { 46 | name: "Status", 47 | link: "https://status.imiku.me/" 48 | } 49 | ], 50 | wyyyyId: 261910478, // 网易云音乐用户 ID 51 | playlistId: 488684458, // 播放的歌单 ID 52 | linksData: "https://imiku.me/wp-json/wp/v2/links", // 友情链接数据接口 53 | linksUrl: "https://imiku.me/links", // 友情链接页面地址 54 | bilibiliId: 21851788, // bilibili 用户ID 55 | bilibiliProxy: "https://api.imiku.me/imgProxy.php?url={url}", // bilibili 图片代理地址 56 | githubUserName: "Ice-Hazymoon", 57 | twitterId: 'Ice_Hayzmoon', 58 | modules: { 59 | // 功能开关 60 | posts: true, 61 | pixiv: true, 62 | bangumi: true, 63 | music: true, 64 | friends: true, 65 | twitter: true 66 | }, 67 | home: "posts", // 首页默认模块, 请务必选择已开启的模块 68 | catchTime: 86400000 // 数据缓存的时间(毫秒) 69 | }; 70 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | 3 | import Vue from 'vue'; 4 | import Router from 'vue-router'; 5 | import mikuConfig from './mikuConfig'; 6 | 7 | const Posts = () => import('./views/Posts.vue'); 8 | const Bangumi = () => import('./views/Bangumi.vue'); 9 | const Pixiv = () => import('./views/Pixiv.vue'); 10 | const Music = () => import('./views/Music.vue'); 11 | const Friends = () => import('./views/Friends.vue'); 12 | const Twitter = () => import('./views/Twitter.vue'); 13 | 14 | Vue.use(Router); 15 | 16 | export default new Router({ 17 | routes: [ 18 | { 19 | path: '/posts', 20 | name: 'Posts', 21 | component: Posts 22 | }, 23 | { 24 | path: '/bangumi', 25 | name: 'Bangumi', 26 | component: Bangumi 27 | }, 28 | { 29 | path: '/pixiv', 30 | name: 'Pixiv', 31 | component: Pixiv 32 | }, 33 | { 34 | path: '/music', 35 | name: 'Music', 36 | component: Music 37 | }, 38 | { 39 | path: '/friends', 40 | name: 'Friends', 41 | component: Friends 42 | }, 43 | { 44 | path: '/twitter', 45 | name: 'Twitter', 46 | component: Twitter 47 | }, 48 | { 49 | path: '*', 50 | redirect: '/'+mikuConfig.home 51 | } 52 | ] 53 | }); -------------------------------------------------------------------------------- /src/views/Bangumi.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Bangumi.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 3:34:02 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:46:34 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 22 | 62 | 90 | -------------------------------------------------------------------------------- /src/views/Friends.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Friend.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 3:56:14 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:45:03 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 31 | 76 | 151 | -------------------------------------------------------------------------------- /src/views/Music.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Music.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 3:56:00 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:47:37 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 17 | 89 | 97 | -------------------------------------------------------------------------------- /src/views/Pixiv.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Pixiv.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 3:54:10 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Sunday, 8th July 2018 2:07:01 am 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 47 | 146 | 233 | -------------------------------------------------------------------------------- /src/views/Posts.vue: -------------------------------------------------------------------------------- 1 | /* 2 | * File: Post.vue 3 | * Project: router 4 | * File Created: Friday, 22nd June 2018 9:42:36 am 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Friday, 6th July 2018 12:43:20 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | 30 | 113 | 185 | -------------------------------------------------------------------------------- /src/views/Twitter.vue: -------------------------------------------------------------------------------- 1 | 2 | 14 | 64 | 69 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * File: vue.config.js 3 | * Project: router 4 | * File Created: Monday, 2nd July 2018 2:59:17 pm 5 | * Author: Ice-Hazymoon (imiku.me@gmail.com) 6 | * ----- 7 | * Last Modified: Monday, 2nd July 2018 2:59:48 pm 8 | * Modified By: Ice-Hazymoon (imiku.me@gmail.com) 9 | */ 10 | module.exports = { 11 | lintOnSave: false 12 | }; 13 | --------------------------------------------------------------------------------