├── .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 |
11 |
12 |
13 |
14 |

15 |
少女祈祷中···
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
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 |
12 |
32 |
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 |
13 |
14 |
15 | 联系方式
16 |
21 |
22 |
23 |

24 |
25 |
{{ mikuConfig.name }}
26 |
{{ mikuConfig.job }}
27 |
{{ mikuConfig.address }}
28 |
32 |
33 |
34 |
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 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
LOADING
21 |
22 |
23 |
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 |
11 |
12 |
13 |
14 |
{{ subTitle }}
15 |
16 |
17 |
18 |
19 |
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 |
13 |
55 |
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 |
11 |
12 |
{{ title }}
13 |
14 |
15 |
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 |
11 |
12 |
13 |
14 | -
15 |
16 |
17 |
18 |
19 |
20 |
21 |
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 |
11 |
12 |
13 |
14 | -
15 |
16 |
![]()
17 |
18 |
19 |
20 | {{ item.name }}
21 |
22 |
25 |
26 |
27 |
28 |
29 |
30 |
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 |
11 |
16 |
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 |
11 |
12 |
13 |
14 |
15 | -
16 |
23 |
24 |
29 |
30 |
31 | {{ item.user.name }}
32 |
33 |
34 |
35 | {{ handleDate(item.create_date) }}
36 |
37 |
38 |
39 | {{ item.total_bookmarks }}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
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 |
11 |
29 |
30 |
113 |
185 |
--------------------------------------------------------------------------------
/src/views/Twitter.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
{{ item }}
8 |
9 |
10 |
11 |
12 |
13 |
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 |
--------------------------------------------------------------------------------