From ffbf09cef7de3c8b747828528224acb9db9761b8 Mon Sep 17 00:00:00 2001
From: liuyx <1517482303@qq.com>
Date: Thu, 10 Nov 2022 09:39:10 +0800
Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E5=8F=B0=E6=A1=86=E6=9E=B6=E6=90=AD?=
=?UTF-8?q?=E5=BB=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog/package-lock.json | 339 ++++++++++++++++++++++++++-
blog/package.json | 2 +
blog/src/App.vue | 31 ++-
blog/src/assets/scss/element.scss | 3 +
blog/src/assets/scss/index.scss | 11 +
blog/src/components/BlogList.vue | 13 +
blog/src/components/Footer.vue | 33 +++
blog/src/components/Header.vue | 57 +++++
blog/src/main.js | 9 +-
blog/src/router/index.js | 31 +++
blog/src/store/index.js | 0
blog/src/views/about/About.vue | 7 +
blog/src/views/archive/Archive.vue | 7 +
blog/src/views/category/Category.vue | 7 +
blog/src/views/home/Home.vue | 15 ++
blog/src/views/tag/Tag.vue | 7 +
blog/vite.config.js | 9 +-
17 files changed, 570 insertions(+), 11 deletions(-)
create mode 100644 blog/src/assets/scss/element.scss
create mode 100644 blog/src/assets/scss/index.scss
create mode 100644 blog/src/components/BlogList.vue
create mode 100644 blog/src/components/Footer.vue
create mode 100644 blog/src/components/Header.vue
create mode 100644 blog/src/router/index.js
create mode 100644 blog/src/store/index.js
create mode 100644 blog/src/views/about/About.vue
create mode 100644 blog/src/views/archive/Archive.vue
create mode 100644 blog/src/views/category/Category.vue
create mode 100644 blog/src/views/home/Home.vue
create mode 100644 blog/src/views/tag/Tag.vue
diff --git a/blog/package-lock.json b/blog/package-lock.json
index 33c577d..5e6c473 100644
--- a/blog/package-lock.json
+++ b/blog/package-lock.json
@@ -8,7 +8,9 @@
"name": "blog",
"version": "0.0.0",
"dependencies": {
+ "@element-plus/icons-vue": "^2.0.10",
"axios": "^1.1.3",
+ "element-plus": "^2.2.20",
"pinia": "^2.0.23",
"vue": "^3.2.41",
"vue-router": "^4.1.6"
@@ -37,6 +39,22 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@ctrl/tinycolor": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
+ "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@element-plus/icons-vue": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz",
+ "integrity": "sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==",
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
"node_modules/@esbuild/android-arm": {
"version": "0.15.13",
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
@@ -89,6 +107,19 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.1.tgz",
+ "integrity": "sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA=="
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.4.tgz",
+ "integrity": "sha512-maYJRv+sAXTy4K9mzdv0JPyNW5YPVHrqtY90tEdI6XNpuLOP26Ci2pfwPsKBA/Wh4Z3FX5sUrtUFTdMYj9v+ug==",
+ "dependencies": {
+ "@floating-ui/core": "^1.0.1"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.7",
"resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
@@ -153,12 +184,36 @@
"node": ">= 8"
}
},
+ "node_modules/@popperjs/core": {
+ "name": "@sxzz/popperjs-es",
+ "version": "2.11.7",
+ "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+ "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ },
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
+ "node_modules/@types/lodash": {
+ "version": "4.14.188",
+ "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.188.tgz",
+ "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="
+ },
+ "node_modules/@types/lodash-es": {
+ "version": "4.17.6",
+ "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
+ "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
+ "dependencies": {
+ "@types/lodash": "*"
+ }
+ },
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.16",
+ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+ "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+ },
"node_modules/@vitejs/plugin-vue": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
@@ -279,6 +334,74 @@
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.43.tgz",
"integrity": "sha512-zPhXJ0evblbcI3qOwUxliOoH90ecp2J1171RFrHXNC58EzzxXGPJ/X0FyIvuC9SvZNe8wpX4OcWhblPDSwT8Rw=="
},
+ "node_modules/@vueuse/core": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.5.0.tgz",
+ "integrity": "sha512-6GsWBsJHEb3sYw15mbLrcbslAVY45pkzjJYTKYKCXv88z7srAF0VEW0q+oXKsl58tCbqooplInahXFg8Yo1m4w==",
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.16",
+ "@vueuse/metadata": "9.5.0",
+ "@vueuse/shared": "9.5.0",
+ "vue-demi": "*"
+ }
+ },
+ "node_modules/@vueuse/core/node_modules/vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.5.0.tgz",
+ "integrity": "sha512-4M1AyPZmIv41pym+K5+4wup3bKuYebbH8w8BROY1hmT7rIwcyS4tEL+UsGz0Hiu1FCOxcoBrwtAizc0YmBJjyQ=="
+ },
+ "node_modules/@vueuse/shared": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.5.0.tgz",
+ "integrity": "sha512-HnnCWU1Vg9CVWRCcI8ohDKDRB2Sc4bTgT1XAIaoLSfVHHn+TKbrox6pd3klCSw4UDxkhDfOk8cAdcK+Z5KleCA==",
+ "dependencies": {
+ "vue-demi": "*"
+ }
+ },
+ "node_modules/@vueuse/shared/node_modules/vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/acorn": {
"version": "8.8.1",
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz",
@@ -383,6 +506,11 @@
"node": ">= 0.4"
}
},
+ "node_modules/async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
@@ -569,6 +697,11 @@
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
},
+ "node_modules/dayjs": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.6.tgz",
+ "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
+ },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
@@ -625,6 +758,31 @@
"node": ">=6.0.0"
}
},
+ "node_modules/element-plus": {
+ "version": "2.2.20",
+ "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.20.tgz",
+ "integrity": "sha512-ludShd3f5kNRY4FLzeoNitLcwZ4qs2M/zwKeyeE7rUzZJAQ0BZtcT3SvZoEoBLmgxw9jHoonl4WIwon4UzhyRA==",
+ "dependencies": {
+ "@ctrl/tinycolor": "^3.4.1",
+ "@element-plus/icons-vue": "^2.0.6",
+ "@floating-ui/dom": "^1.0.1",
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+ "@types/lodash": "^4.14.182",
+ "@types/lodash-es": "^4.17.6",
+ "@vueuse/core": "^9.1.0",
+ "async-validator": "^4.2.5",
+ "dayjs": "^1.11.3",
+ "escape-html": "^1.0.3",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "lodash-unified": "^1.0.2",
+ "memoize-one": "^6.0.0",
+ "normalize-wheel-es": "^1.2.0"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ },
"node_modules/es-abstract": {
"version": "1.20.4",
"resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.20.4.tgz",
@@ -1040,6 +1198,11 @@
"node": ">=12"
}
},
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2030,8 +2193,22 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
+ "node_modules/lodash-unified": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
+ "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+ "peerDependencies": {
+ "@types/lodash-es": "*",
+ "lodash": "*",
+ "lodash-es": "*"
+ }
},
"node_modules/lodash.merge": {
"version": "4.6.2",
@@ -2059,6 +2236,11 @@
"sourcemap-codec": "^1.4.8"
}
},
+ "node_modules/memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
@@ -2128,6 +2310,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-wheel-es": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+ },
"node_modules/nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
@@ -2919,6 +3106,17 @@
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.3.tgz",
"integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg=="
},
+ "@ctrl/tinycolor": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
+ "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
+ },
+ "@element-plus/icons-vue": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz",
+ "integrity": "sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==",
+ "requires": {}
+ },
"@esbuild/android-arm": {
"version": "0.15.13",
"resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
@@ -2950,6 +3148,19 @@
"strip-json-comments": "^3.1.1"
}
},
+ "@floating-ui/core": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.1.tgz",
+ "integrity": "sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA=="
+ },
+ "@floating-ui/dom": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.4.tgz",
+ "integrity": "sha512-maYJRv+sAXTy4K9mzdv0JPyNW5YPVHrqtY90tEdI6XNpuLOP26Ci2pfwPsKBA/Wh4Z3FX5sUrtUFTdMYj9v+ug==",
+ "requires": {
+ "@floating-ui/core": "^1.0.1"
+ }
+ },
"@humanwhocodes/config-array": {
"version": "0.11.7",
"resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
@@ -2999,12 +3210,35 @@
"fastq": "^1.6.0"
}
},
+ "@popperjs/core": {
+ "version": "npm:@sxzz/popperjs-es@2.11.7",
+ "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+ "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ },
"@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
+ "@types/lodash": {
+ "version": "4.14.188",
+ "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.188.tgz",
+ "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w=="
+ },
+ "@types/lodash-es": {
+ "version": "4.17.6",
+ "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
+ "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
+ "requires": {
+ "@types/lodash": "*"
+ }
+ },
+ "@types/web-bluetooth": {
+ "version": "0.0.16",
+ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+ "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+ },
"@vitejs/plugin-vue": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
@@ -3116,6 +3350,46 @@
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.43.tgz",
"integrity": "sha512-zPhXJ0evblbcI3qOwUxliOoH90ecp2J1171RFrHXNC58EzzxXGPJ/X0FyIvuC9SvZNe8wpX4OcWhblPDSwT8Rw=="
},
+ "@vueuse/core": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.5.0.tgz",
+ "integrity": "sha512-6GsWBsJHEb3sYw15mbLrcbslAVY45pkzjJYTKYKCXv88z7srAF0VEW0q+oXKsl58tCbqooplInahXFg8Yo1m4w==",
+ "requires": {
+ "@types/web-bluetooth": "^0.0.16",
+ "@vueuse/metadata": "9.5.0",
+ "@vueuse/shared": "9.5.0",
+ "vue-demi": "*"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "requires": {}
+ }
+ }
+ },
+ "@vueuse/metadata": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.5.0.tgz",
+ "integrity": "sha512-4M1AyPZmIv41pym+K5+4wup3bKuYebbH8w8BROY1hmT7rIwcyS4tEL+UsGz0Hiu1FCOxcoBrwtAizc0YmBJjyQ=="
+ },
+ "@vueuse/shared": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.5.0.tgz",
+ "integrity": "sha512-HnnCWU1Vg9CVWRCcI8ohDKDRB2Sc4bTgT1XAIaoLSfVHHn+TKbrox6pd3klCSw4UDxkhDfOk8cAdcK+Z5KleCA==",
+ "requires": {
+ "vue-demi": "*"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+ "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+ "requires": {}
+ }
+ }
+ },
"acorn": {
"version": "8.8.1",
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz",
@@ -3197,6 +3471,11 @@
"es-shim-unscopables": "^1.0.0"
}
},
+ "async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ },
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
@@ -3351,6 +3630,11 @@
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
},
+ "dayjs": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.6.tgz",
+ "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
+ },
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
@@ -3390,6 +3674,28 @@
"esutils": "^2.0.2"
}
},
+ "element-plus": {
+ "version": "2.2.20",
+ "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.20.tgz",
+ "integrity": "sha512-ludShd3f5kNRY4FLzeoNitLcwZ4qs2M/zwKeyeE7rUzZJAQ0BZtcT3SvZoEoBLmgxw9jHoonl4WIwon4UzhyRA==",
+ "requires": {
+ "@ctrl/tinycolor": "^3.4.1",
+ "@element-plus/icons-vue": "^2.0.6",
+ "@floating-ui/dom": "^1.0.1",
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+ "@types/lodash": "^4.14.182",
+ "@types/lodash-es": "^4.17.6",
+ "@vueuse/core": "^9.1.0",
+ "async-validator": "^4.2.5",
+ "dayjs": "^1.11.3",
+ "escape-html": "^1.0.3",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "lodash-unified": "^1.0.2",
+ "memoize-one": "^6.0.0",
+ "normalize-wheel-es": "^1.2.0"
+ }
+ },
"es-abstract": {
"version": "1.20.4",
"resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.20.4.tgz",
@@ -3612,6 +3918,11 @@
"dev": true,
"optional": true
},
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -4401,8 +4712,18 @@
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
+ "lodash-unified": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
+ "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+ "requires": {}
},
"lodash.merge": {
"version": "4.6.2",
@@ -4427,6 +4748,11 @@
"sourcemap-codec": "^1.4.8"
}
},
+ "memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
@@ -4478,6 +4804,11 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
+ "normalize-wheel-es": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+ },
"nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
diff --git a/blog/package.json b/blog/package.json
index 31844a6..eea4c94 100644
--- a/blog/package.json
+++ b/blog/package.json
@@ -9,7 +9,9 @@
"preview": "vite preview"
},
"dependencies": {
+ "@element-plus/icons-vue": "^2.0.10",
"axios": "^1.1.3",
+ "element-plus": "^2.2.20",
"pinia": "^2.0.23",
"vue": "^3.2.41",
"vue-router": "^4.1.6"
diff --git a/blog/src/App.vue b/blog/src/App.vue
index 677f24b..80b5acf 100644
--- a/blog/src/App.vue
+++ b/blog/src/App.vue
@@ -1,7 +1,32 @@
-
+
+
+
+
+
+
-
+
-
+
diff --git a/blog/src/assets/scss/element.scss b/blog/src/assets/scss/element.scss
new file mode 100644
index 0000000..6f255bd
--- /dev/null
+++ b/blog/src/assets/scss/element.scss
@@ -0,0 +1,3 @@
+.el-menu--horizontal {
+ border: none;
+}
\ No newline at end of file
diff --git a/blog/src/assets/scss/index.scss b/blog/src/assets/scss/index.scss
new file mode 100644
index 0000000..8337fd9
--- /dev/null
+++ b/blog/src/assets/scss/index.scss
@@ -0,0 +1,11 @@
+@import './element.scss';
+
+* {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ font-family: 'Times New Roman', '仿宋', Times, serif;
+ font-size: 17px !important;
+}
\ No newline at end of file
diff --git a/blog/src/components/BlogList.vue b/blog/src/components/BlogList.vue
new file mode 100644
index 0000000..d4dbac8
--- /dev/null
+++ b/blog/src/components/BlogList.vue
@@ -0,0 +1,13 @@
+
+
+ {{ 'Blog ' + o }}
+
+
+
+
+
+
diff --git a/blog/src/components/Footer.vue b/blog/src/components/Footer.vue
new file mode 100644
index 0000000..c5f1fec
--- /dev/null
+++ b/blog/src/components/Footer.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
diff --git a/blog/src/components/Header.vue b/blog/src/components/Header.vue
new file mode 100644
index 0000000..fbad61a
--- /dev/null
+++ b/blog/src/components/Header.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
diff --git a/blog/src/main.js b/blog/src/main.js
index 2425c0f..bad396a 100644
--- a/blog/src/main.js
+++ b/blog/src/main.js
@@ -1,5 +1,10 @@
import { createApp } from 'vue'
-import './style.css'
import App from './App.vue'
+import router from '@/router'
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import '@/assets/scss/index.scss'
-createApp(App).mount('#app')
+const app = createApp(App)
+
+app.use(router).use(ElementPlus).mount('#app')
diff --git a/blog/src/router/index.js b/blog/src/router/index.js
new file mode 100644
index 0000000..53b2752
--- /dev/null
+++ b/blog/src/router/index.js
@@ -0,0 +1,31 @@
+import { createRouter, createWebHashHistory } from 'vue-router'
+
+const routes = [
+ {
+ path: '/',
+ component: () => import('@/views/home/Home.vue')
+ },
+ {
+ path: '/tags',
+ component: () => import('@/views/tag/Tag.vue')
+ },
+ {
+ path: '/categories',
+ component: () => import('@/views/category/Category.vue')
+ },
+ {
+ path: '/archives',
+ component: () => import('@/views/archive/Archive.vue')
+ },
+ {
+ path: '/about',
+ component: () => import('@/views/about/About.vue')
+ }
+]
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes
+})
+
+export default router
diff --git a/blog/src/store/index.js b/blog/src/store/index.js
new file mode 100644
index 0000000..e69de29
diff --git a/blog/src/views/about/About.vue b/blog/src/views/about/About.vue
new file mode 100644
index 0000000..79be3ef
--- /dev/null
+++ b/blog/src/views/about/About.vue
@@ -0,0 +1,7 @@
+
+ About
+
+
+
+
+
diff --git a/blog/src/views/archive/Archive.vue b/blog/src/views/archive/Archive.vue
new file mode 100644
index 0000000..bd1b19f
--- /dev/null
+++ b/blog/src/views/archive/Archive.vue
@@ -0,0 +1,7 @@
+
+ Archive
+
+
+
+
+
diff --git a/blog/src/views/category/Category.vue b/blog/src/views/category/Category.vue
new file mode 100644
index 0000000..9b8294f
--- /dev/null
+++ b/blog/src/views/category/Category.vue
@@ -0,0 +1,7 @@
+
+ Categories
+
+
+
+
+
diff --git a/blog/src/views/home/Home.vue b/blog/src/views/home/Home.vue
new file mode 100644
index 0000000..ccfa875
--- /dev/null
+++ b/blog/src/views/home/Home.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/blog/src/views/tag/Tag.vue b/blog/src/views/tag/Tag.vue
new file mode 100644
index 0000000..0c555ac
--- /dev/null
+++ b/blog/src/views/tag/Tag.vue
@@ -0,0 +1,7 @@
+
+ Tags
+
+
+
+
+
diff --git a/blog/vite.config.js b/blog/vite.config.js
index 315212d..d3f0cc6 100644
--- a/blog/vite.config.js
+++ b/blog/vite.config.js
@@ -1,7 +1,12 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
+import path from 'path'
-// https://vitejs.dev/config/
export default defineConfig({
- plugins: [vue()]
+ plugins: [vue()],
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, 'src') // 利用@代替src
+ }
+ }
})