diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 5f543fdb0..7ff08ec7b 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,4 +1,7 @@ -import { DefaultTheme, defineConfig } from 'vitepress'; +import { compareVersions } from 'compare-versions'; +import { readdirSync } from 'fs'; +import { parse } from 'path'; +import { defineConfig } from 'vitepress'; import { getSidebar } from 'vitepress-plugin-auto-sidebar'; export default defineConfig({ @@ -12,11 +15,21 @@ export default defineConfig({ { text: 'Examples', link: '/markdown-examples' }, ], - sidebar: getSidebar({ - collapsed: false, - contentDirs: ['guide', 'legal', 'changelogs'], - contentRoot: '/docs/', - }) as DefaultTheme.Sidebar, + sidebar: [ + ...getSidebar({ + collapsed: false, + contentDirs: ['guide', 'legal'], + contentRoot: '/docs/', + }), + + { + text: 'Changelogs', + items: readdirSync('./docs/changelogs') + .map((file) => parse(file).name) + .sort(compareVersions) + .map((name) => ({ text: name, link: `/changelogs/${name}.html` })), + }, + ], socialLinks: [ { icon: 'github', link: 'https://github.com/vuejs/vitepress' }, diff --git a/package.json b/package.json index 542dd167e..549684d4d 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "@types/markdown-escape": "^1.1.0", "@types/node": "^20.5.3", "@types/react": "^18.2.21", + "compare-versions": "^6.1.0", "prettier": "^3.0.2", "typescript": "^5.0.4", "vitepress": "^1.0.0-rc.4" diff --git a/yarn.lock b/yarn.lock index 16b21dc2f..41a8c079a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1037,6 +1037,11 @@ color-name@^1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +compare-versions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" + integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"