Skip to content

Commit c4e7919

Browse files
feat!: routes (#136)
Co-authored-by: jer3m01 <jer3m01@jer3m01.com>
1 parent 579cb98 commit c4e7919

56 files changed

Lines changed: 2961 additions & 158 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dev/src/routes/es/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: SolidBase en español
3+
---
4+
5+
# SolidBase en español
6+
7+
Spanish content is valid for the default project on the latest version.
8+
9+
[English](/)
10+
11+
[French](/fr)

dev/src/routes/fr/index.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: SolidBase en français
3+
---
4+
5+
# SolidBase en français
6+
7+
French content for the default project and latest version.
8+
9+
[English](/)
10+
11+
[Legacy French](/v1/fr)
12+
13+
[Router French](/router/fr)

dev/src/routes/index.mdx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,26 @@ www.example.com
6666

6767
[Link internal /about](/about)
6868

69+
## Route config demo
70+
71+
[Latest English](/)
72+
73+
[Latest French](/fr)
74+
75+
[Latest Spanish](/es)
76+
77+
[Legacy English](/v1)
78+
79+
[Legacy French](/v1/fr)
80+
81+
[Router English](/router)
82+
83+
[Router French](/router/fr)
84+
85+
[Router French About](/router/fr/about)
86+
87+
[External v0](https://solidbase.dev)
88+
6989
#20 also #4 but no \\#20
7090

7191
A note[^1]

dev/src/routes/router/fr/about.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Router Demo about en français
3+
---
4+
5+
# Router Demo about en français
6+
7+
French router content with an extra page route after the route config prefix.
8+
9+
[Router French](/router/fr)
10+
11+
[Router English](/router)

dev/src/routes/router/fr/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Router Demo en français
3+
---
4+
5+
# Router Demo en français
6+
7+
Router project content for the latest French route.
8+
9+
[SolidBase French](/fr)
10+
11+
[Router English](/router)

dev/src/routes/router/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Router Demo
3+
---
4+
5+
# Router Demo
6+
7+
Router project content for the latest English route.
8+
9+
[SolidBase English](/)
10+
11+
[Router French](/router/fr)

dev/src/routes/v1/fr/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: SolidBase v1 en français
3+
---
4+
5+
# SolidBase v1 en français
6+
7+
Legacy French content for the default project.
8+
9+
[Latest French](/fr)
10+
11+
[Legacy English](/v1)

dev/src/routes/v1/index.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: SolidBase v1
3+
---
4+
5+
# SolidBase v1
6+
7+
Legacy English content for the default project.
8+
9+
[Latest English](/)
10+
11+
[Legacy French](/v1/fr)

dev/vite.config.mts

Lines changed: 124 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import { defineConfig } from "vite";
44
import Inspect from "vite-plugin-inspect";
55

66
import { createSolidBase, defineTheme } from "../src/config";
7-
import { createFilesystemSidebar } from "../src/config/sidebar";
7+
import {
8+
createFilesystemSidebar,
9+
type SidebarItemWithMeta,
10+
} from "../src/config/sidebar";
811
import defaultTheme from "../src/default-theme";
912

1013
const theme = defineTheme({
@@ -14,6 +17,21 @@ const theme = defineTheme({
1417

1518
const 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 /\.(md|mdx)$/.test(item.filePath);
31+
},
32+
});
33+
}
34+
1735
export 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 /\.(md|mdx)$/.test(item.filePath);
31-
},
32-
}),
149+
"/": createDevSidebar("./src/routes", ["es", "fr", "router", "v1"]),
33150
},
34151
},
35152
}),

docs/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"type": "module",
44
"private": "true",
55
"scripts": {
6-
"dev": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" VITE_SOLIDBASE_DEV=true vite dev",
7-
"build": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" vite build"
6+
"dev": "cross-env VITE_SOLIDBASE_DEV=true vite dev",
7+
"build": "cross-env vite build"
88
},
99
"dependencies": {
1010
"@kobalte/solidbase": "workspace:*",
@@ -13,7 +13,7 @@
1313
"@solidjs/start": "https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080",
1414
"nitro": "3.0.260311-beta",
1515
"solid-js": "^1.9.9",
16-
"vite": "^8.0.0"
16+
"vite": "8.0.0"
1717
},
1818
"engines": {
1919
"node": ">=22.12"

0 commit comments

Comments
 (0)