Skip to content

Commit 558b28d

Browse files
authored
refactor(runtime)!: use basename feature of react-router (#2322)
1 parent a5a79ad commit 558b28d

Some content is hidden

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

42 files changed

+171
-255
lines changed

packages/core/src/node/auto-nav-sidebar/locales.test.ts

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ describe('walk', () => {
1212
const mockNormalizeRoutePath = (link: string) => {
1313
return normalizeRoutePath(
1414
link,
15-
'/base',
1615
'en',
1716
'',
1817
['zh', 'en'],
@@ -23,7 +22,6 @@ describe('walk', () => {
2322
const mockGetRoutePathParts = (link: string) => {
2423
return getRoutePathParts(
2524
link,
26-
'/base',
2725
'en',
2826
'',
2927
['zh', 'en'],
@@ -46,13 +44,13 @@ describe('walk', () => {
4644
"default": [
4745
{
4846
"activeMatch": "^/guide/",
49-
"link": "/base/zh/guide/",
47+
"link": "/zh/guide/",
5048
"text": "Guide",
5149
},
5250
],
5351
},
5452
"sidebar": {
55-
"/base/zh/guide": [
53+
"/zh/guide": [
5654
{
5755
"_fileKey": "zh/guide/test-dir/index",
5856
"collapsed": undefined,
@@ -62,13 +60,13 @@ describe('walk', () => {
6260
{
6361
"_fileKey": "zh/guide/test-dir/getting-started",
6462
"context": undefined,
65-
"link": "/base/zh/guide/test-dir/getting-started",
63+
"link": "/zh/guide/test-dir/getting-started",
6664
"overviewHeaders": undefined,
6765
"tag": undefined,
6866
"text": "Getting started 页面",
6967
},
7068
],
71-
"link": "/base/zh/guide/test-dir/",
69+
"link": "/zh/guide/test-dir/",
7270
"overviewHeaders": undefined,
7371
"tag": undefined,
7472
"text": "Test dir 页面",
@@ -82,44 +80,44 @@ describe('walk', () => {
8280
{
8381
"_fileKey": "zh/guide/test-same-name-dir/index",
8482
"context": undefined,
85-
"link": "/base/zh/guide/test-same-name-dir/",
83+
"link": "/zh/guide/test-same-name-dir/",
8684
"overviewHeaders": undefined,
8785
"tag": undefined,
8886
"text": "Test same name dir 页面",
8987
},
9088
],
91-
"link": "/base/zh/guide/test-same-name-dir",
89+
"link": "/zh/guide/test-same-name-dir",
9290
"overviewHeaders": undefined,
9391
"tag": undefined,
9492
"text": "Test same name dir in file 页面",
9593
},
9694
{
9795
"_fileKey": "zh/guide/a",
9896
"context": undefined,
99-
"link": "/base/zh/guide/a",
97+
"link": "/zh/guide/a",
10098
"overviewHeaders": undefined,
10199
"tag": undefined,
102100
"text": "Page a 页面",
103101
},
104102
{
105103
"_fileKey": "zh/guide/b",
106104
"context": undefined,
107-
"link": "/base/zh/guide/b",
105+
"link": "/zh/guide/b",
108106
"overviewHeaders": undefined,
109107
"tag": undefined,
110108
"text": "Page b 页面",
111109
},
112110
{
113111
"_fileKey": "zh/guide/c",
114112
"context": undefined,
115-
"link": "/base/zh/guide/c",
113+
"link": "/zh/guide/c",
116114
"overviewHeaders": undefined,
117115
"tag": undefined,
118116
"text": "c",
119117
},
120118
{
121119
"context": undefined,
122-
"link": "/base/zh/guide/test-dir",
120+
"link": "/zh/guide/test-dir",
123121
"tag": undefined,
124122
"text": "My Link",
125123
},
@@ -131,13 +129,13 @@ describe('walk', () => {
131129
"default": [
132130
{
133131
"activeMatch": "^/guide/",
134-
"link": "/base/guide/",
132+
"link": "/guide/",
135133
"text": "Guide",
136134
},
137135
],
138136
},
139137
"sidebar": {
140-
"/base/guide": [
138+
"/guide": [
141139
{
142140
"_fileKey": "en/guide/test-dir/index",
143141
"collapsed": undefined,
@@ -147,13 +145,13 @@ describe('walk', () => {
147145
{
148146
"_fileKey": "en/guide/test-dir/getting-started",
149147
"context": undefined,
150-
"link": "/base/guide/test-dir/getting-started",
148+
"link": "/guide/test-dir/getting-started",
151149
"overviewHeaders": undefined,
152150
"tag": undefined,
153151
"text": "Getting started",
154152
},
155153
],
156-
"link": "/base/guide/test-dir/",
154+
"link": "/guide/test-dir/",
157155
"overviewHeaders": undefined,
158156
"tag": undefined,
159157
"text": "Test dir",
@@ -167,44 +165,44 @@ describe('walk', () => {
167165
{
168166
"_fileKey": "en/guide/test-same-name-dir/index",
169167
"context": undefined,
170-
"link": "/base/guide/test-same-name-dir/",
168+
"link": "/guide/test-same-name-dir/",
171169
"overviewHeaders": undefined,
172170
"tag": undefined,
173171
"text": "Test same name dir",
174172
},
175173
],
176-
"link": "/base/guide/test-same-name-dir",
174+
"link": "/guide/test-same-name-dir",
177175
"overviewHeaders": undefined,
178176
"tag": undefined,
179177
"text": "Test same name dir in file",
180178
},
181179
{
182180
"_fileKey": "en/guide/a",
183181
"context": undefined,
184-
"link": "/base/guide/a",
182+
"link": "/guide/a",
185183
"overviewHeaders": undefined,
186184
"tag": undefined,
187185
"text": "Page a",
188186
},
189187
{
190188
"_fileKey": "en/guide/b",
191189
"context": undefined,
192-
"link": "/base/guide/b",
190+
"link": "/guide/b",
193191
"overviewHeaders": undefined,
194192
"tag": undefined,
195193
"text": "Page b",
196194
},
197195
{
198196
"_fileKey": "en/guide/c",
199197
"context": undefined,
200-
"link": "/base/guide/c",
198+
"link": "/guide/c",
201199
"overviewHeaders": undefined,
202200
"tag": undefined,
203201
"text": "c",
204202
},
205203
{
206204
"context": undefined,
207-
"link": "/base/guide/test-dir",
205+
"link": "/guide/test-dir",
208206
"tag": undefined,
209207
"text": "My Link",
210208
},

packages/core/src/node/auto-nav-sidebar/walk.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import {
99
import { walk } from './walk';
1010

1111
const mockNormalizeRoutePath = (link: string) => {
12-
return normalizeRoutePath(link, '/', '', '', [], [], ['.md', '.mdx', '.tsx']);
12+
return normalizeRoutePath(link, '', '', [], [], ['.md', '.mdx', '.tsx']);
1313
};
1414

1515
const mockGetRoutePathParts = (link: string) => {
16-
return getRoutePathParts(link, '/', '', '', [], []);
16+
return getRoutePathParts(link, '', '', [], []);
1717
};
1818

1919
RouteService.__instance__ = {

packages/core/src/node/initRsbuild.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { globalStylesVMPlugin } from './runtimeModule/globalStyles';
4040
import { globalUIComponentsVMPlugin } from './runtimeModule/globalUIComponents';
4141
import { i18nVMPlugin } from './runtimeModule/i18n';
4242
import { routeListVMPlugin } from './runtimeModule/routeList';
43+
import { runtimeConfigVMPlugin } from './runtimeModule/runtimeConfig';
4344
import { searchHookVMPlugin } from './runtimeModule/searchHooks';
4445
import type { FactoryContext } from './runtimeModule/types';
4546
import { serveSearchIndexMiddleware } from './searchIndex';
@@ -149,6 +150,11 @@ async function createInternalBuildConfig(
149150
* Get virtual modules from plugins
150151
*/
151152
...(await getVirtualModulesFromPlugins(pluginDriver)),
153+
154+
/**
155+
* Serialize rspress.config.ts to runtime
156+
*/
157+
...runtimeConfigVMPlugin(context),
152158
},
153159
}),
154160
...(enableSSG

packages/core/src/node/mdx/remarkPlugins/normalizeLink.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,10 @@ function normalizeLink(
4747
if (url.startsWith('.')) {
4848
url = path.posix.join(slash(path.dirname(relativePath)), url);
4949
} else if (routeService) {
50-
const [_, pathVersion, pathLang] = routeService.getRoutePathParts(
50+
const [pathVersion, pathLang] = routeService.getRoutePathParts(
5151
slash(relativePath),
5252
);
53-
const [__, urlVersion, urlLang, urlPath] =
54-
routeService.getRoutePathParts(url);
53+
const [urlVersion, urlLang, urlPath] = routeService.getRoutePathParts(url);
5554

5655
url = addLeadingSlash(urlPath);
5756

packages/core/src/node/route/RouteService.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ export class RouteService {
5050

5151
#exclude: string[] = [];
5252

53-
#base: string = '';
54-
5553
#tempDir: string = '';
5654

5755
#pluginDriver: PluginDriver;
@@ -94,7 +92,6 @@ export class RouteService {
9492
userConfig?.themeConfig?.locales ??
9593
[]
9694
).map(item => item.lang);
97-
this.#base = userConfig?.base || '';
9895
this.#tempDir = tempDir;
9996
this.#pluginDriver = pluginDriver;
10097

@@ -239,7 +236,6 @@ ${routeMeta
239236
getRoutePathParts(routePath: string) {
240237
return getRoutePathParts(
241238
routePath,
242-
this.#base,
243239
this.#defaultLang,
244240
this.#defaultVersion,
245241
this.#langs,
@@ -250,7 +246,6 @@ ${routeMeta
250246
normalizeRoutePath(routePath: string) {
251247
return normalizeRoutePath(
252248
routePath,
253-
this.#base,
254249
this.#defaultLang,
255250
this.#defaultVersion,
256251
this.#langs,

0 commit comments

Comments
 (0)