diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 5301d24..51c4ca5 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -7,4 +7,18 @@ export default defineUserConfig({
...meta,
theme,
plugins,
-})
+ locales:{
+ // The key is the path for the locale to be nested under.
+ // As a special case, the default locale can use '/' as its path.
+ '/': {
+ lang: 'en-US', // this will be set as the lang attribute on
+ title: 'Ocelot.Social',
+ // description: ''
+ },
+ '/de/': {
+ lang: 'de-DE',
+ title: 'Ocelot.Social',
+ // description: ''
+ }
+ }
+})
\ No newline at end of file
diff --git a/docs/.vuepress/config/meta.js b/docs/.vuepress/config/meta.js
index 058b289..8963c52 100644
--- a/docs/.vuepress/config/meta.js
+++ b/docs/.vuepress/config/meta.js
@@ -1,5 +1,5 @@
export default {
- title: 'Ocelot-Social',
+ title: 'Ocelot.Social',
// description: 'Free and open-source social network for active citizenship.',
head: [
['meta', {name: 'viewport', content: 'width=device-width,initial-scale=1'}]
diff --git a/docs/.vuepress/config/plugins.js b/docs/.vuepress/config/plugins.js
index c4d4eae..fa303d1 100644
--- a/docs/.vuepress/config/plugins.js
+++ b/docs/.vuepress/config/plugins.js
@@ -1,4 +1,5 @@
import { searchProPlugin } from 'vuepress-plugin-search-pro'
+import { redirectPlugin } from 'vuepress-plugin-redirect'
export default [
searchProPlugin({
@@ -15,4 +16,7 @@ export default [
},
],
}),
+ redirectPlugin({
+ autoLocale: true,
+ })
]
\ No newline at end of file
diff --git a/docs/.vuepress/config/theme.js b/docs/.vuepress/config/theme.js
index 535e3c8..50763b7 100644
--- a/docs/.vuepress/config/theme.js
+++ b/docs/.vuepress/config/theme.js
@@ -11,15 +11,23 @@ export default hopeTheme({
contributors: false,
displayFooter: true,
print: false,
- copyright: 'CC BY busFaktor() e.V. & Authors',
+ copyright: '© by busFaktor() e.V. & Authors | Impressum',
footer: 'Released under the MIT License.',
navbar: [
- { text: 'Documentation', link: 'https://docs.ocelot.social/' },
- { text: 'Demo', link: 'https://stage.ocelot.social/' },
+ {
+ text: 'Documentation', link: 'https://docs.ocelot.social/'
+ },
+ {
+ text: 'Demo', link: 'https://stage.ocelot.social/'
+ },
{
text: 'Github',
link: 'https://github.com/Ocelot-Social-Community'
},
+ {
+ text: 'Impressum',
+ link: '/impressum/'
+ },
],
plugins: {
mdEnhance: {
diff --git a/docs/de/README.md b/docs/de/README.md
new file mode 100644
index 0000000..ded46b2
--- /dev/null
+++ b/docs/de/README.md
@@ -0,0 +1,19 @@
+---
+home: true
+# layout: BlogHome
+icon: home
+title: Ocelot.Social
+heroFullScreen: false
+heroImage: /logo.svg
+heroText: Das freie soziale Open-Source-Netzwerk für eine aktive Zivilgesellschaft.
+tagLine:
+# actions:
+# - text: Demo
+# link: https://stage.ocelot.social/
+---
+## Wir bauen um
+
+Unsere Website wird gerade überarbeitet und erweitert. Schau bald wieder rein!
+
+Inzwischen findest du uns auf [GitHub](https://github.com/Ocelot-Social-Community/) oder [Discord](https://discord.gg/AGPJ7YgC).
+
diff --git a/docs/README.md b/docs/de/impressum/README.md
similarity index 66%
rename from docs/README.md
rename to docs/de/impressum/README.md
index 29e3817..9c62ec4 100644
--- a/docs/README.md
+++ b/docs/de/impressum/README.md
@@ -1,8 +1,8 @@
---
-home: true
+home: false
# layout: BlogHome
icon: home
-title: Ocelot-Social
+title: Impressum | Ocelot.Social
heroFullScreen: false
heroImage: /logo.svg
heroText: Free and open-source social network for active citizenship.
@@ -10,4 +10,7 @@ tagLine:
# actions:
# - text: Demo
# link: https://stage.ocelot.social/
----
\ No newline at end of file
+---
+## Coming soon
+
+We are rebuilding our website. Check back soon.
\ No newline at end of file
diff --git a/docs/en/README.md b/docs/en/README.md
new file mode 100644
index 0000000..c8ad2b5
--- /dev/null
+++ b/docs/en/README.md
@@ -0,0 +1,19 @@
+---
+home: true
+# layout: BlogHome
+icon: home
+title: Ocelot.Social
+heroFullScreen: false
+heroImage: /logo.svg
+heroText: Free and open-source social network for active citizenship.
+tagLine:
+# actions:
+# - text: Demo
+# link: https://stage.ocelot.social/
+---
+## Coming soon
+
+Unsere Website wird gerade überarbeitet und erweitert. Schau bald wieder rein!
+
+Inzwischen findest du uns auf [GitHub](https://github.com/Ocelot-Social-Community/) oder [Discord](https://discord.gg/AGPJ7YgC).
+
diff --git a/docs/en/impressum/README.md b/docs/en/impressum/README.md
new file mode 100644
index 0000000..9c62ec4
--- /dev/null
+++ b/docs/en/impressum/README.md
@@ -0,0 +1,16 @@
+---
+home: false
+# layout: BlogHome
+icon: home
+title: Impressum | Ocelot.Social
+heroFullScreen: false
+heroImage: /logo.svg
+heroText: Free and open-source social network for active citizenship.
+tagLine:
+# actions:
+# - text: Demo
+# link: https://stage.ocelot.social/
+---
+## Coming soon
+
+We are rebuilding our website. Check back soon.
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index bc01e04..8757068 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -25,6 +25,7 @@
"textlint-rule-period-in-list-item": "^1.0.1",
"textlint-rule-write-good": "^2.0.0",
"vuepress": "^2.0.0-rc.0",
+ "vuepress-plugin-redirect": "^2.0.0-rc.1",
"vuepress-plugin-search-pro": "^2.0.0-rc.0",
"vuepress-theme-hope": "^2.0.0-rc.0"
}
@@ -3475,39 +3476,39 @@
}
},
"node_modules/@vue/compiler-core": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.8.tgz",
- "integrity": "sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.9.tgz",
+ "integrity": "sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==",
"dev": true,
"dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/shared": "3.3.8",
+ "@babel/parser": "^7.23.3",
+ "@vue/shared": "3.3.9",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz",
- "integrity": "sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.9.tgz",
+ "integrity": "sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==",
"dev": true,
"dependencies": {
- "@vue/compiler-core": "3.3.8",
- "@vue/shared": "3.3.8"
+ "@vue/compiler-core": "3.3.9",
+ "@vue/shared": "3.3.9"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz",
- "integrity": "sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.9.tgz",
+ "integrity": "sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==",
"dev": true,
"dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/compiler-core": "3.3.8",
- "@vue/compiler-dom": "3.3.8",
- "@vue/compiler-ssr": "3.3.8",
- "@vue/reactivity-transform": "3.3.8",
- "@vue/shared": "3.3.8",
+ "@babel/parser": "^7.23.3",
+ "@vue/compiler-core": "3.3.9",
+ "@vue/compiler-dom": "3.3.9",
+ "@vue/compiler-ssr": "3.3.9",
+ "@vue/reactivity-transform": "3.3.9",
+ "@vue/shared": "3.3.9",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5",
"postcss": "^8.4.31",
@@ -3515,13 +3516,13 @@
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz",
- "integrity": "sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.9.tgz",
+ "integrity": "sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==",
"dev": true,
"dependencies": {
- "@vue/compiler-dom": "3.3.8",
- "@vue/shared": "3.3.8"
+ "@vue/compiler-dom": "3.3.9",
+ "@vue/shared": "3.3.9"
}
},
"node_modules/@vue/devtools-api": {
@@ -3531,65 +3532,65 @@
"dev": true
},
"node_modules/@vue/reactivity": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.8.tgz",
- "integrity": "sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.9.tgz",
+ "integrity": "sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==",
"dev": true,
"dependencies": {
- "@vue/shared": "3.3.8"
+ "@vue/shared": "3.3.9"
}
},
"node_modules/@vue/reactivity-transform": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz",
- "integrity": "sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.9.tgz",
+ "integrity": "sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==",
"dev": true,
"dependencies": {
- "@babel/parser": "^7.23.0",
- "@vue/compiler-core": "3.3.8",
- "@vue/shared": "3.3.8",
+ "@babel/parser": "^7.23.3",
+ "@vue/compiler-core": "3.3.9",
+ "@vue/shared": "3.3.9",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.8.tgz",
- "integrity": "sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.9.tgz",
+ "integrity": "sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==",
"dev": true,
"dependencies": {
- "@vue/reactivity": "3.3.8",
- "@vue/shared": "3.3.8"
+ "@vue/reactivity": "3.3.9",
+ "@vue/shared": "3.3.9"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz",
- "integrity": "sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.9.tgz",
+ "integrity": "sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==",
"dev": true,
"dependencies": {
- "@vue/runtime-core": "3.3.8",
- "@vue/shared": "3.3.8",
+ "@vue/runtime-core": "3.3.9",
+ "@vue/shared": "3.3.9",
"csstype": "^3.1.2"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.8.tgz",
- "integrity": "sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.9.tgz",
+ "integrity": "sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==",
"dev": true,
"dependencies": {
- "@vue/compiler-ssr": "3.3.8",
- "@vue/shared": "3.3.8"
+ "@vue/compiler-ssr": "3.3.9",
+ "@vue/shared": "3.3.9"
},
"peerDependencies": {
- "vue": "3.3.8"
+ "vue": "3.3.9"
}
},
"node_modules/@vue/shared": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.8.tgz",
- "integrity": "sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.9.tgz",
+ "integrity": "sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==",
"dev": true
},
"node_modules/@vuepress/bundler-vite": {
@@ -10088,16 +10089,16 @@
}
},
"node_modules/vue": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.8.tgz",
- "integrity": "sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.9.tgz",
+ "integrity": "sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==",
"dev": true,
"dependencies": {
- "@vue/compiler-dom": "3.3.8",
- "@vue/compiler-sfc": "3.3.8",
- "@vue/runtime-dom": "3.3.8",
- "@vue/server-renderer": "3.3.8",
- "@vue/shared": "3.3.8"
+ "@vue/compiler-dom": "3.3.9",
+ "@vue/compiler-sfc": "3.3.9",
+ "@vue/runtime-dom": "3.3.9",
+ "@vue/server-renderer": "3.3.9",
+ "@vue/shared": "3.3.9"
},
"peerDependencies": {
"typescript": "*"
@@ -10699,6 +10700,169 @@
}
}
},
+ "node_modules/vuepress-plugin-redirect": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/vuepress-plugin-redirect/-/vuepress-plugin-redirect-2.0.0-rc.1.tgz",
+ "integrity": "sha512-bmRKSEDPKjx1mkaJ6AOGUOtKvmS9yVbnwdGPe7FqjeD/bbTMPDSPrER1V+ztPqK8yzZDYf/oroGiWFwdBhr/Tg==",
+ "dev": true,
+ "dependencies": {
+ "@vuepress/cli": "2.0.0-rc.0",
+ "@vuepress/client": "2.0.0-rc.0",
+ "@vuepress/core": "2.0.0-rc.0",
+ "@vuepress/shared": "2.0.0-rc.0",
+ "@vuepress/utils": "2.0.0-rc.0",
+ "@vueuse/core": "^10.6.1",
+ "cac": "^6.7.14",
+ "vue": "^3.3.9",
+ "vue-router": "^4.2.5",
+ "vuepress-plugin-sass-palette": "2.0.0-rc.1",
+ "vuepress-shared": "2.0.0-rc.1"
+ },
+ "bin": {
+ "vp-redirect": "lib/cli/index.js"
+ },
+ "engines": {
+ "node": ">=18.16.0",
+ "npm": ">=8",
+ "pnpm": ">=7",
+ "yarn": ">=2"
+ },
+ "peerDependencies": {
+ "sass-loader": "^13.3.2",
+ "vuepress": "2.0.0-rc.0",
+ "vuepress-vite": "2.0.0-rc.0",
+ "vuepress-webpack": "2.0.0-rc.0"
+ },
+ "peerDependenciesMeta": {
+ "sass-loader": {
+ "optional": true
+ },
+ "vuepress": {
+ "optional": true
+ },
+ "vuepress-vite": {
+ "optional": true
+ },
+ "vuepress-webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vuepress-plugin-redirect/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vuepress-plugin-redirect/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vuepress-plugin-redirect/node_modules/vuepress-plugin-sass-palette": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/vuepress-plugin-sass-palette/-/vuepress-plugin-sass-palette-2.0.0-rc.1.tgz",
+ "integrity": "sha512-3QI7mYFaCI6ynbW0EJ8Qf/3hJiryPOI0B+AJ8iJj06VCZTutQBpQvnsu4LfF02h3j2YNuWWs0UqIqc5fCi+Czg==",
+ "dev": true,
+ "dependencies": {
+ "@vuepress/shared": "2.0.0-rc.0",
+ "@vuepress/utils": "2.0.0-rc.0",
+ "chokidar": "^3.5.3",
+ "sass": "^1.69.5",
+ "vuepress-shared": "2.0.0-rc.1"
+ },
+ "engines": {
+ "node": ">=18.16.0",
+ "npm": ">=8",
+ "pnpm": ">=7",
+ "yarn": ">=2"
+ },
+ "peerDependencies": {
+ "sass-loader": "^13.3.2",
+ "vuepress": "2.0.0-rc.0",
+ "vuepress-vite": "2.0.0-rc.0",
+ "vuepress-webpack": "2.0.0-rc.0"
+ },
+ "peerDependenciesMeta": {
+ "sass-loader": {
+ "optional": true
+ },
+ "vuepress": {
+ "optional": true
+ },
+ "vuepress-vite": {
+ "optional": true
+ },
+ "vuepress-webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vuepress-plugin-redirect/node_modules/vuepress-shared": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/vuepress-shared/-/vuepress-shared-2.0.0-rc.1.tgz",
+ "integrity": "sha512-WhtuaP3LCW42Xtu1pK6+NY3oe8BVpPzMgaVn5OnDBqupula0IViY6YgTI86YhCSarhl56sMmvnq1KeuLXPt7uA==",
+ "dev": true,
+ "dependencies": {
+ "@vuepress/client": "2.0.0-rc.0",
+ "@vuepress/shared": "2.0.0-rc.0",
+ "@vuepress/utils": "2.0.0-rc.0",
+ "@vueuse/core": "^10.6.1",
+ "cheerio": "1.0.0-rc.12",
+ "dayjs": "^1.11.10",
+ "execa": "^8.0.1",
+ "fflate": "^0.8.1",
+ "gray-matter": "^4.0.3",
+ "semver": "^7.5.4",
+ "striptags": "^3.2.0",
+ "vue": "^3.3.9",
+ "vue-router": "^4.2.5"
+ },
+ "engines": {
+ "node": ">=18.16.0",
+ "npm": ">=8",
+ "pnpm": ">=7",
+ "yarn": ">=2"
+ },
+ "peerDependencies": {
+ "vuepress": "2.0.0-rc.0",
+ "vuepress-vite": "2.0.0-rc.0",
+ "vuepress-webpack": "2.0.0-rc.0"
+ },
+ "peerDependenciesMeta": {
+ "vuepress": {
+ "optional": true
+ },
+ "vuepress-vite": {
+ "optional": true
+ },
+ "vuepress-webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vuepress-plugin-redirect/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/vuepress-plugin-rtl": {
"version": "2.0.0-rc.0",
"resolved": "https://registry.npmjs.org/vuepress-plugin-rtl/-/vuepress-plugin-rtl-2.0.0-rc.0.tgz",
diff --git a/package.json b/package.json
index 4a06c50..337ec5e 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"textlint-rule-period-in-list-item": "^1.0.1",
"textlint-rule-write-good": "^2.0.0",
"vuepress": "^2.0.0-rc.0",
+ "vuepress-plugin-redirect": "^2.0.0-rc.1",
"vuepress-plugin-search-pro": "^2.0.0-rc.0",
"vuepress-theme-hope": "^2.0.0-rc.0"
}