@@ -4,7 +4,10 @@ import { defineConfig } from "vite";
44import Inspect from "vite-plugin-inspect" ;
55
66import { createSolidBase , defineTheme } from "../src/config" ;
7- import { createFilesystemSidebar } from "../src/config/sidebar" ;
7+ import {
8+ createFilesystemSidebar ,
9+ type SidebarItemWithMeta ,
10+ } from "../src/config/sidebar" ;
811import defaultTheme from "../src/default-theme" ;
912
1013const theme = defineTheme ( {
@@ -14,6 +17,21 @@ const theme = defineTheme({
1417
1518const solidBase = createSolidBase ( theme ) ;
1619
20+ function getSidebarFileName ( item : SidebarItemWithMeta ) {
21+ const segments = item . filePath . split ( / [ \\ / ] / ) ;
22+ return segments [ segments . length - 1 ] ;
23+ }
24+
25+ function createDevSidebar ( route : string , hiddenFolders : string [ ] = [ ] ) {
26+ return createFilesystemSidebar ( route , {
27+ filter : ( item ) => {
28+ if ( hiddenFolders . includes ( getSidebarFileName ( item ) ?? "" ) ) return false ;
29+ if ( "items" in item ) return true ;
30+ return / \. ( m d | m d x ) $ / . test ( item . filePath ) ;
31+ } ,
32+ } ) ;
33+ }
34+
1735export default defineConfig ( {
1836 plugins : [
1937 Inspect ( ) ,
@@ -22,14 +40,113 @@ export default defineConfig({
2240 description : "Development playground for the latest SolidBase features" ,
2341 llms : true ,
2442 lang : "en" ,
43+ routes : {
44+ path : "/{project}/{version}/{locale}" ,
45+ project : {
46+ default : "solidbase" ,
47+ values : {
48+ solidbase : { path : "" , label : "SolidBase" } ,
49+ router : { path : "router" , label : "Router Demo" } ,
50+ } ,
51+ } ,
52+ version : {
53+ default : "latest" ,
54+ values : {
55+ latest : { path : "" , label : "Latest" } ,
56+ v1 : { path : "v1" , label : "v1" , status : "Legacy" } ,
57+ v0 : { href : "https://solidbase.dev" , label : "External v0" } ,
58+ } ,
59+ } ,
60+ locale : {
61+ default : "en" ,
62+ values : {
63+ en : { path : "" , label : "English" , lang : "en-US" } ,
64+ fr : { path : "fr" , label : "Français" , lang : "fr-FR" } ,
65+ es : { path : "es" , label : "Español" , lang : "es-ES" } ,
66+ } ,
67+ } ,
68+ include : [
69+ {
70+ project : [ "solidbase" , "router" ] ,
71+ version : "latest" ,
72+ locale : [ "en" , "fr" ] ,
73+ } ,
74+ {
75+ project : "solidbase" ,
76+ version : "latest" ,
77+ locale : "es" ,
78+ } ,
79+ {
80+ project : "solidbase" ,
81+ version : "v1" ,
82+ locale : [ "en" , "fr" ] ,
83+ } ,
84+ ] ,
85+ } ,
86+ overrides : [
87+ {
88+ locale : "fr" ,
89+ titleTemplate : ":title - Demo SolidBase" ,
90+ themeConfig : {
91+ sidebar : {
92+ "/" : createDevSidebar ( "./src/routes/fr" ) ,
93+ } ,
94+ } ,
95+ } ,
96+ {
97+ locale : "es" ,
98+ themeConfig : {
99+ sidebar : {
100+ "/" : createDevSidebar ( "./src/routes/es" ) ,
101+ } ,
102+ } ,
103+ } ,
104+ {
105+ project : "router" ,
106+ title : "Router Demo" ,
107+ themeConfig : {
108+ sidebar : {
109+ "/" : createDevSidebar ( "./src/routes/router" , [ "fr" ] ) ,
110+ } ,
111+ } ,
112+ } ,
113+ {
114+ version : "v1" ,
115+ title : "SolidBase v1 Demo" ,
116+ themeConfig : {
117+ sidebar : {
118+ "/" : createDevSidebar ( "./src/routes/v1" , [ "fr" ] ) ,
119+ } ,
120+ } ,
121+ } ,
122+ {
123+ project : "router" ,
124+ locale : "fr" ,
125+ themeConfig : {
126+ sidebar : {
127+ "/" : createDevSidebar ( "./src/routes/router/fr" ) ,
128+ } ,
129+ } ,
130+ } ,
131+ {
132+ version : "v1" ,
133+ locale : "fr" ,
134+ themeConfig : {
135+ sidebar : {
136+ "/" : createDevSidebar ( "./src/routes/v1/fr" ) ,
137+ } ,
138+ } ,
139+ } ,
140+ {
141+ project : "solidbase" ,
142+ version : "v1" ,
143+ locale : "fr" ,
144+ title : "SolidBase v1 en français" ,
145+ } ,
146+ ] ,
25147 themeConfig : {
26148 sidebar : {
27- "/" : createFilesystemSidebar ( "./src/routes" , {
28- filter : ( item ) => {
29- if ( "items" in item ) return true ;
30- return / \. ( m d | m d x ) $ / . test ( item . filePath ) ;
31- } ,
32- } ) ,
149+ "/" : createDevSidebar ( "./src/routes" , [ "es" , "fr" , "router" , "v1" ] ) ,
33150 } ,
34151 } ,
35152 } ) ,
0 commit comments