@rspress/shared 0.0.0-nightly-20230923160129 → 0.0.0-nightly-20230924160319
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +31 -1
- package/dist/index.js +23 -13
- package/dist/index.mjs +22 -13
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -339,6 +339,7 @@ interface RouteMeta {
|
|
339
339
|
relativePath: string;
|
340
340
|
pageName: string;
|
341
341
|
lang: string;
|
342
|
+
version: string;
|
342
343
|
}
|
343
344
|
interface ReplaceRule {
|
344
345
|
search: string | RegExp;
|
@@ -455,12 +456,29 @@ interface UserConfig<ThemeConfig = Config$1> {
|
|
455
456
|
* Add some extra builder plugins
|
456
457
|
*/
|
457
458
|
builderPlugins?: BuilderPlugin[];
|
459
|
+
/**
|
460
|
+
* Multi version config
|
461
|
+
*/
|
462
|
+
multiVersion?: {
|
463
|
+
/**
|
464
|
+
* The default version
|
465
|
+
*/
|
466
|
+
default?: string;
|
467
|
+
/**
|
468
|
+
* The version list, such as ['v1', 'v2']
|
469
|
+
*/
|
470
|
+
versions: string[];
|
471
|
+
};
|
458
472
|
}
|
459
473
|
type BaseRuntimePageInfo = Omit<PageIndexInfo, 'id' | 'content' | 'domain'>;
|
460
474
|
interface SiteData<ThemeConfig = NormalizedConfig> {
|
461
475
|
root: string;
|
462
476
|
base: string;
|
463
477
|
lang: string;
|
478
|
+
locales: {
|
479
|
+
lang: string;
|
480
|
+
label: string;
|
481
|
+
}[];
|
464
482
|
title: string;
|
465
483
|
description: string;
|
466
484
|
icon: string;
|
@@ -474,6 +492,10 @@ interface SiteData<ThemeConfig = NormalizedConfig> {
|
|
474
492
|
markdown: {
|
475
493
|
showLineNumbers: boolean;
|
476
494
|
};
|
495
|
+
multiVersion: {
|
496
|
+
default: string;
|
497
|
+
versions: string[];
|
498
|
+
};
|
477
499
|
}
|
478
500
|
type PageIndexInfo = {
|
479
501
|
id: number;
|
@@ -483,6 +505,7 @@ type PageIndexInfo = {
|
|
483
505
|
content: string;
|
484
506
|
frontmatter: Record<string, unknown>;
|
485
507
|
lang: string;
|
508
|
+
version: string;
|
486
509
|
domain: string;
|
487
510
|
_filepath: string;
|
488
511
|
_relativePath: string;
|
@@ -616,7 +639,14 @@ declare function removeLeadingSlash(url: string): string;
|
|
616
639
|
declare function removeTrailingSlash(url: string): string;
|
617
640
|
declare function normalizeSlash(url: string): string;
|
618
641
|
declare function isExternalUrl(url: string): boolean;
|
619
|
-
declare function replaceLang(rawUrl: string,
|
642
|
+
declare function replaceLang(rawUrl: string, lang: {
|
643
|
+
current: string;
|
644
|
+
target: string;
|
645
|
+
default: string;
|
646
|
+
}, version: {
|
647
|
+
current: string;
|
648
|
+
default: string;
|
649
|
+
}, base?: string): string;
|
620
650
|
declare const omit: (obj: Record<string, unknown>, keys: string[]) => {
|
621
651
|
[x: string]: unknown;
|
622
652
|
};
|
package/dist/index.js
CHANGED
@@ -1159,26 +1159,36 @@ function normalizeSlash(url) {
|
|
1159
1159
|
function isExternalUrl(url) {
|
1160
1160
|
return url.startsWith("http://") || url.startsWith("https://") || url.startsWith("mailto:") || url.startsWith("tel:");
|
1161
1161
|
}
|
1162
|
-
function replaceLang(rawUrl,
|
1162
|
+
function replaceLang(rawUrl, lang, version, base = "") {
|
1163
1163
|
let url = removeBase(rawUrl, base);
|
1164
1164
|
if (!url) {
|
1165
1165
|
url = "/index.html";
|
1166
1166
|
}
|
1167
|
-
|
1168
|
-
|
1169
|
-
let
|
1170
|
-
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
|
1167
|
+
let versionPart = "";
|
1168
|
+
let langPart = "";
|
1169
|
+
let purePathPart = "";
|
1170
|
+
const parts = url.split("/").filter(Boolean);
|
1171
|
+
if (version.current && version.current !== version.default) {
|
1172
|
+
versionPart = parts.shift() || "";
|
1173
|
+
}
|
1174
|
+
if (lang.target !== lang.default) {
|
1175
|
+
langPart = lang.target;
|
1176
|
+
if (lang.current !== lang.default) {
|
1177
|
+
parts.shift();
|
1175
1178
|
}
|
1176
|
-
} else if (targetLang === defaultLang) {
|
1177
|
-
result = url.replace(`/${originalLang}`, "");
|
1178
1179
|
} else {
|
1179
|
-
|
1180
|
+
parts.shift();
|
1181
|
+
}
|
1182
|
+
purePathPart = parts.join("/") || "";
|
1183
|
+
if ((versionPart || langPart) && !purePathPart) {
|
1184
|
+
purePathPart = "index.html";
|
1180
1185
|
}
|
1181
|
-
return withBase(
|
1186
|
+
return withBase(
|
1187
|
+
addLeadingSlash(
|
1188
|
+
[versionPart, langPart, purePathPart].filter(Boolean).join("/")
|
1189
|
+
),
|
1190
|
+
base
|
1191
|
+
);
|
1182
1192
|
}
|
1183
1193
|
var omit = (obj, keys) => {
|
1184
1194
|
const ret = { ...obj };
|
package/dist/index.mjs
CHANGED
@@ -1113,26 +1113,35 @@ function normalizeSlash(url) {
|
|
1113
1113
|
function isExternalUrl(url) {
|
1114
1114
|
return url.startsWith("http://") || url.startsWith("https://") || url.startsWith("mailto:") || url.startsWith("tel:");
|
1115
1115
|
}
|
1116
|
-
function replaceLang(rawUrl,
|
1116
|
+
function replaceLang(rawUrl, lang, version, base = "") {
|
1117
1117
|
let url = removeBase(rawUrl, base);
|
1118
1118
|
if (!url) {
|
1119
1119
|
url = "/index.html";
|
1120
1120
|
}
|
1121
|
-
|
1122
|
-
|
1123
|
-
let
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1121
|
+
let versionPart = "";
|
1122
|
+
let langPart = "";
|
1123
|
+
let purePathPart = "";
|
1124
|
+
const parts = url.split("/").filter(Boolean);
|
1125
|
+
if (version.current && version.current !== version.default) {
|
1126
|
+
versionPart = parts.shift() || "";
|
1127
|
+
}
|
1128
|
+
if (lang.target !== lang.default) {
|
1129
|
+
langPart = lang.target;
|
1130
|
+
if (lang.current !== lang.default) {
|
1131
|
+
parts.shift();
|
1129
1132
|
}
|
1130
|
-
} else if (targetLang === defaultLang) {
|
1131
|
-
result = url.replace(`/${originalLang}`, "");
|
1132
1133
|
} else {
|
1133
|
-
|
1134
|
+
parts.shift();
|
1135
|
+
}
|
1136
|
+
purePathPart = parts.join("/") || "";
|
1137
|
+
if ((versionPart || langPart) && !purePathPart) {
|
1138
|
+
purePathPart = "index.html";
|
1134
1139
|
}
|
1135
|
-
return withBase(
|
1140
|
+
return withBase(addLeadingSlash([
|
1141
|
+
versionPart,
|
1142
|
+
langPart,
|
1143
|
+
purePathPart
|
1144
|
+
].filter(Boolean).join("/")), base);
|
1136
1145
|
}
|
1137
1146
|
var omit = (obj, keys) => {
|
1138
1147
|
const ret = {
|