mirror of
https://github.com/Kisechan/Mainpage.git
synced 2025-07-09 14:47:18 +00:00
添加 @unhead/vue 和 vite-plugin-sitemap 依赖,更新路由元信息以包含描述标签,配置 sitemap 插件,添加 robots.txt 文件
This commit is contained in:
54
package-lock.json
generated
54
package-lock.json
generated
@ -10,6 +10,7 @@
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@fortawesome/fontawesome-free": "^6.7.2",
|
||||
"@unhead/vue": "^0.7.0",
|
||||
"element-plus": "^2.9.5",
|
||||
"github-calendar": "^2.3.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
@ -22,7 +23,8 @@
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"path": "^0.12.7",
|
||||
"unplugin-vue-components": "^28.4.1",
|
||||
"vite": "^6.2.0"
|
||||
"vite": "^6.2.0",
|
||||
"vite-plugin-sitemap": "^0.7.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
@ -799,6 +801,35 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
|
||||
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
|
||||
},
|
||||
"node_modules/@unhead/schema": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-0.7.0.tgz",
|
||||
"integrity": "sha512-AcfB3vbY7v5GxZOBNHjNiseRjtS40N+lXyuxr0Ee42/BBmPNcKa8SuAlSX4iSht7ptdSaxIjrzzTsQDOrDllYA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@zhead/schema": "1.0.1",
|
||||
"hookable": "^5.4.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/harlan-zw"
|
||||
}
|
||||
},
|
||||
"node_modules/@unhead/vue": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-0.7.0.tgz",
|
||||
"integrity": "sha512-OoJk+zoLObUaetm9yRJXmxoS8PiZgxSnr1oS6VziWm1ImBQ7/kzvOAMiaKVg63JmjOB6Knr3rKSCL7Y+VITOiw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@unhead/schema": "0.7.0",
|
||||
"hookable": "^5.4.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/harlan-zw"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": ">=2.7 || >=3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz",
|
||||
@ -991,6 +1022,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@zhead/schema": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@zhead/schema/-/schema-1.0.1.tgz",
|
||||
"integrity": "sha512-n6BDs+MjSOesuv6krG2QGyCPfdndxWX0M/G2wEGu1SPHc5jLHHi3EY1+vQvudFVXRVXquZHKsDPE7pSyeyGgHg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/harlan-zw"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.14.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
|
||||
@ -1308,6 +1348,12 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/hookable": {
|
||||
"version": "5.5.3",
|
||||
"resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
|
||||
"integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
@ -1890,6 +1936,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vite-plugin-sitemap": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/vite-plugin-sitemap/-/vite-plugin-sitemap-0.7.1.tgz",
|
||||
"integrity": "sha512-4NRTkiWytLuAmcikckrLcLl9iYA20+5v6l8XshcOrzxH1WR8H0O3S6sTQYfjMrE8su/LG6Y0cTodvOdcOIxaLw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
|
||||
|
@ -11,6 +11,7 @@
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@fortawesome/fontawesome-free": "^6.7.2",
|
||||
"@unhead/vue": "^0.7.0",
|
||||
"element-plus": "^2.9.5",
|
||||
"github-calendar": "^2.3.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
@ -23,6 +24,7 @@
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"path": "^0.12.7",
|
||||
"unplugin-vue-components": "^28.4.1",
|
||||
"vite": "^6.2.0"
|
||||
"vite": "^6.2.0",
|
||||
"vite-plugin-sitemap": "^0.7.1"
|
||||
}
|
||||
}
|
||||
|
3
public/robots.txt
Normal file
3
public/robots.txt
Normal file
@ -0,0 +1,3 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Sitemap: https://www.kisechan.space/sitemap.xml
|
13
src/App.vue
13
src/App.vue
@ -1,9 +1,22 @@
|
||||
<script setup>
|
||||
import NavBar from "./components/NavBar.vue";
|
||||
import AppFooter from "./components/AppFooter.vue";
|
||||
import { useRouter } from 'vue-router'
|
||||
import { watch } from 'vue'
|
||||
import { useHead } from '@unhead/vue'
|
||||
|
||||
const openGitHubRepo = () => {
|
||||
window.open("https://github.com/Kisechan/Mainpage", "_self");
|
||||
};
|
||||
|
||||
const router = useRouter()
|
||||
|
||||
watch(() => router.currentRoute.value, (route) => {
|
||||
useHead({
|
||||
title: route.meta.title,
|
||||
meta: route.meta.metaTags || [],
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -8,14 +8,17 @@ import './assets/styles/global.css'
|
||||
import '@fortawesome/fontawesome-free/css/all.css';
|
||||
import 'github-calendar/dist/github-calendar-responsive.css';
|
||||
import 'element-plus/theme-chalk/dark/css-vars.css'
|
||||
import { createHead } from '@unhead/vue'
|
||||
|
||||
const app = createApp(App)
|
||||
const head = createHead()
|
||||
|
||||
// 注册所有图标
|
||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(key, component)
|
||||
}
|
||||
|
||||
app.use(head)
|
||||
app.use(router)
|
||||
app.use(ElementPlus)
|
||||
app.mount('#app')
|
@ -5,19 +5,44 @@ const routes = [
|
||||
path: "/",
|
||||
name: "home",
|
||||
component: () => import("@/views/HomeView.vue"),
|
||||
meta: { hideFooter: true, title: "主页" },
|
||||
meta: {
|
||||
hideFooter: true,
|
||||
title: "主页",
|
||||
metaTags: [
|
||||
{
|
||||
name: "description",
|
||||
content: "Kisechan的个人主页。",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/links",
|
||||
name: "links",
|
||||
component: () => import("@/views/LinksView.vue"),
|
||||
meta: { title: "友链" },
|
||||
meta: {
|
||||
title: "友链",
|
||||
metaTags: [
|
||||
{
|
||||
name: "description",
|
||||
content: "Kisechan的个人主页 - 友链部分。",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/tools",
|
||||
name: "tools",
|
||||
component: () => import("@/views/ToolsView.vue"),
|
||||
meta: { title: "工具" },
|
||||
meta: {
|
||||
title: "工具",
|
||||
metaTags: [
|
||||
{
|
||||
name: "description",
|
||||
content: "Kisechan的个人主页 - 工具部分。",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/404",
|
||||
|
@ -1,12 +1,23 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import path from 'path'
|
||||
import { defineConfig } from "vite";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import path from "path";
|
||||
import sitemap from "vite-plugin-sitemap";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
plugins: [
|
||||
vue(),
|
||||
sitemap({
|
||||
hostname: "https://www.kisechan.space",
|
||||
routes: [
|
||||
{ path: "/", name: "主页" },
|
||||
{ path: "/links", name: "友链" },
|
||||
{ path: "/tools", name: "工具" },
|
||||
],
|
||||
}),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': path.resolve(__dirname, './src')
|
||||
}
|
||||
}
|
||||
})
|
||||
"@": path.resolve(__dirname, "./src"),
|
||||
},
|
||||
},
|
||||
});
|
||||
|
Reference in New Issue
Block a user