Skip to content

Commit 7c7e2e4

Browse files
committed
Improve instructions for adding new docs
1 parent 62233d9 commit 7c7e2e4

File tree

4 files changed

+102
-78
lines changed

4 files changed

+102
-78
lines changed

.vscode/extensions.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
{
2-
"recommendations": ["astro-build.astro-vscode", "biomejs.biome"],
2+
"recommendations": [
3+
"astro-build.astro-vscode",
4+
"biomejs.biome",
5+
"kyledavide.vscode-project-links"
6+
],
37
"unwantedRecommendations": []
48
}

aws/viewer-request/index.js

+82-77
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,81 @@
1+
const validSections = ['surrealdb', 'surrealml', 'surrealist', 'surrealism', 'surrealql', 'sdk', 'tutorials', 'cloud'];
2+
3+
const versionPrefixes = [
4+
'/docs/nightly/',
5+
'/docs/surrealdb/nightly/',
6+
'/docs/1.0.x/', '/docs/1.0.0/',
7+
'/docs/1.1.x/', '/docs/1.1.0/',
8+
'/docs/1.2.x/', '/docs/1.2.0/',
9+
'/docs/1.3.x/', '/docs/1.3.0/',
10+
'/docs/surrealdb/2.x/',
11+
'/docs/surrealdb/1.0.x/', '/docs/surrealdb/1.0.0/',
12+
'/docs/surrealdb/1.1.x/', '/docs/surrealdb/1.1.0/',
13+
'/docs/surrealdb/1.2.x/', '/docs/surrealdb/1.2.0/',
14+
'/docs/surrealdb/1.3.x/', '/docs/surrealdb/1.3.0/'
15+
];
16+
17+
const prefixedRedirects = {
18+
'/docs/integration/libraries/': '/docs/sdk/',
19+
'/docs/surrealdb/integration/sdks/': '/docs/sdk/',
20+
}
21+
22+
const redirects = {
23+
'/docs/integration/libraries': '/docs/surrealdb/integration/sdks',
24+
'/docs/integration/websocket/text': '/docs/surrealdb/integration/rpc',
25+
'/docs/integration/websocket/binary': '/docs/surrealdb/integration/rpc',
26+
'/docs/surrealdb/integration/websocket': '/docs/surrealdb/integration/rpc',
27+
'/docs/surrealql/statements/define/login': '/docs/surrealdb/surrealql/statements/define/user',
28+
'/docs/integration/libraries/nodejs': '/docs/sdk/javascript',
29+
'/docs/surrealdb/integration/sdks/nodejs': '/docs/sdk/javascript',
30+
'/docs/integration/libraries/deno': '/docs/sdk/javascript',
31+
'/docs/surrealdb/integration/sdks/deno': '/docs/sdk/javascript',
32+
'/docs/sdk/javascript/core/initialization': '/docs/sdk/javascript/core/create-a-new-connection',
33+
'/docs/sdk/javascript/core/authentication': '/docs/sdk/javascript/core/handling-authentication',
34+
'/docs/sdk/javascript/core/data-querying': '/docs/sdk/javascript/core/data-maniplulation',
35+
'/docs/sdk/javascript/core/methods/authenticate': '/docs/sdk/javascript/methods/authenticate',
36+
'/docs/sdk/javascript/core/methods/invalidate': '/docs/sdk/javascript/methods/invalidate',
37+
'/docs/sdk/javascript/setup': '/docs/sdk/javascript/core',
38+
'/docs/intro': '/docs/surrealdb',
39+
'/docs/surrealdb/intro': '/docs/surrealdb',
40+
'/docs/cli/overview': '/docs/surrealdb/cli',
41+
'/docs/surrealdb/cli/overview': '/docs/surrealdb/cli',
42+
'/docs/deployment/overview': '/docs/surrealdb/deployment',
43+
'/docs/surrealdb/deployment/overview': '/docs/surrealdb/deployment',
44+
'/docs/embedding/overview': '/docs/surrealdb/embedding',
45+
'/docs/surrealdb/embedding/overview': '/docs/surrealdb/embedding',
46+
'/docs/faqs/overview': '/docs/surrealdb/faqs',
47+
'/docs/surrealdb/faqs/overview': '/docs/surrealdb/faqs',
48+
'/docs/how-to/overview': '/docs/tutorials',
49+
'/docs/surrealdb/how-to/overview': '/docs/tutorials',
50+
'/docs/tutorials/overview': '/docs/tutorials',
51+
'/docs/surrealdb/tutorials/overview': '/docs/tutorials',
52+
'/docs/surrealdb/tutorials': '/docs/tutorials',
53+
'/docs/installation/overview': '/docs/surrealdb/installation',
54+
'/docs/surrealdb/installation/overview': '/docs/surrealdb/installation',
55+
'/docs/integration/overview': '/docs/surrealdb/integration',
56+
'/docs/surrealdb/integration/overview': '/docs/surrealdb/integration',
57+
'/docs/integration/sdks/overview': '/docs/surrealdb/integration/sdks',
58+
'/docs/surrealdb/integration/sdks/overview': '/docs/surrealdb/integration/sdks',
59+
'/docs/introduction/overview': '/docs/surrealdb/introduction',
60+
'/docs/surrealdb/introduction/overview': '/docs/surrealdb/introduction',
61+
'/docs/surrealql/overview': '/docs/surrealdb/surrealql',
62+
'/docs/surrealdb/surrealql/overview': '/docs/surrealdb/surrealql',
63+
'/docs/surrealql/datamodel/overview': '/docs/surrealdb/surrealql/datamodel',
64+
'/docs/surrealdb/surrealql/datamodel/overview': '/docs/surrealdb/surrealql/datamodel',
65+
'/docs/surrealql/functions/overview': '/docs/surrealdb/surrealql/functions',
66+
'/docs/surrealdb/surrealql/functions/overview': '/docs/surrealdb/surrealql/functions',
67+
'/docs/surrealql/functions/script/overview': '/docs/surrealdb/surrealql/functions/script',
68+
'/docs/surrealdb/surrealql/functions/script/overview': '/docs/surrealdb/surrealql/functions/script',
69+
'/docs/surrealql/statements/overview': '/docs/surrealdb/surrealql/statements',
70+
'/docs/surrealdb/surrealql/statements/overview': '/docs/surrealdb/surrealql/statements',
71+
'/docs/surrealdb/surrealql': '/docs/surrealql',
72+
'/docs/surrealql/statements/define/overview': '/docs/surrealdb/surrealql/statements/define',
73+
'/docs/surrealdb/surrealql/statements/define/overview': '/docs/surrealdb/surrealql/statements/define',
74+
'/docs/surrealql/statements/remove/overview': '/docs/surrealdb/surrealql/statements/remove',
75+
'/docs/surrealdb/surrealql/statements/remove/overview': '/docs/surrealdb/surrealql/statements/remove',
76+
'/docs/surrealdb/installation/upgrading/beta': '/docs/surrealdb/installation/upgrading/migrating-data-to-2x'
77+
};
78+
179
function redirect(path) {
280
return {
381
statusCode: 301,
@@ -25,95 +103,22 @@ function handler(event) {
25103
if (request.uri.endsWith('/')) return redirect(path.slice(0, -1));
26104
if (path !== request.uri) return redirect(path);
27105

28-
const redirects = {
29-
'/docs/integration/libraries': '/docs/surrealdb/integration/sdks',
30-
'/docs/integration/websocket/text': '/docs/surrealdb/integration/rpc',
31-
'/docs/integration/websocket/binary': '/docs/surrealdb/integration/rpc',
32-
'/docs/surrealdb/integration/websocket': '/docs/surrealdb/integration/rpc',
33-
'/docs/surrealql/statements/define/login': '/docs/surrealdb/surrealql/statements/define/user',
34-
'/docs/integration/libraries/nodejs': '/docs/sdk/javascript',
35-
'/docs/surrealdb/integration/sdks/nodejs': '/docs/sdk/javascript',
36-
'/docs/integration/libraries/deno': '/docs/sdk/javascript',
37-
'/docs/surrealdb/integration/sdks/deno': '/docs/sdk/javascript',
38-
'/docs/sdk/javascript/core/initialization': '/docs/sdk/javascript/core/create-a-new-connection',
39-
'/docs/sdk/javascript/core/authentication': '/docs/sdk/javascript/core/handling-authentication',
40-
'/docs/sdk/javascript/core/data-querying': '/docs/sdk/javascript/core/data-maniplulation',
41-
'/docs/sdk/javascript/core/methods/authenticate': '/docs/sdk/javascript/methods/authenticate',
42-
'/docs/sdk/javascript/core/methods/invalidate': '/docs/sdk/javascript/methods/invalidate',
43-
'/docs/sdk/javascript/setup': '/docs/sdk/javascript/core',
44-
'/docs/intro': '/docs/surrealdb',
45-
'/docs/surrealdb/intro': '/docs/surrealdb',
46-
'/docs/cli/overview': '/docs/surrealdb/cli',
47-
'/docs/surrealdb/cli/overview': '/docs/surrealdb/cli',
48-
'/docs/deployment/overview': '/docs/surrealdb/deployment',
49-
'/docs/surrealdb/deployment/overview': '/docs/surrealdb/deployment',
50-
'/docs/embedding/overview': '/docs/surrealdb/embedding',
51-
'/docs/surrealdb/embedding/overview': '/docs/surrealdb/embedding',
52-
'/docs/faqs/overview': '/docs/surrealdb/faqs',
53-
'/docs/surrealdb/faqs/overview': '/docs/surrealdb/faqs',
54-
'/docs/how-to/overview': '/docs/tutorials',
55-
'/docs/surrealdb/how-to/overview': '/docs/tutorials',
56-
'/docs/tutorials/overview': '/docs/tutorials',
57-
'/docs/surrealdb/tutorials/overview': '/docs/tutorials',
58-
'/docs/surrealdb/tutorials': '/docs/tutorials',
59-
'/docs/installation/overview': '/docs/surrealdb/installation',
60-
'/docs/surrealdb/installation/overview': '/docs/surrealdb/installation',
61-
'/docs/integration/overview': '/docs/surrealdb/integration',
62-
'/docs/surrealdb/integration/overview': '/docs/surrealdb/integration',
63-
'/docs/integration/sdks/overview': '/docs/surrealdb/integration/sdks',
64-
'/docs/surrealdb/integration/sdks/overview': '/docs/surrealdb/integration/sdks',
65-
'/docs/introduction/overview': '/docs/surrealdb/introduction',
66-
'/docs/surrealdb/introduction/overview': '/docs/surrealdb/introduction',
67-
'/docs/surrealql/overview': '/docs/surrealdb/surrealql',
68-
'/docs/surrealdb/surrealql/overview': '/docs/surrealdb/surrealql',
69-
'/docs/surrealql/datamodel/overview': '/docs/surrealdb/surrealql/datamodel',
70-
'/docs/surrealdb/surrealql/datamodel/overview': '/docs/surrealdb/surrealql/datamodel',
71-
'/docs/surrealql/functions/overview': '/docs/surrealdb/surrealql/functions',
72-
'/docs/surrealdb/surrealql/functions/overview': '/docs/surrealdb/surrealql/functions',
73-
'/docs/surrealql/functions/script/overview': '/docs/surrealdb/surrealql/functions/script',
74-
'/docs/surrealdb/surrealql/functions/script/overview': '/docs/surrealdb/surrealql/functions/script',
75-
'/docs/surrealql/statements/overview': '/docs/surrealdb/surrealql/statements',
76-
'/docs/surrealdb/surrealql/statements/overview': '/docs/surrealdb/surrealql/statements',
77-
'/docs/surrealdb/surrealql': '/docs/surrealql',
78-
'/docs/surrealql/statements/define/overview': '/docs/surrealdb/surrealql/statements/define',
79-
'/docs/surrealdb/surrealql/statements/define/overview': '/docs/surrealdb/surrealql/statements/define',
80-
'/docs/surrealql/statements/remove/overview': '/docs/surrealdb/surrealql/statements/remove',
81-
'/docs/surrealdb/surrealql/statements/remove/overview': '/docs/surrealdb/surrealql/statements/remove',
82-
'/docs/surrealdb/installation/upgrading/beta': '/docs/surrealdb/installation/upgrading/migrating-data-to-2x'
83-
};
84-
85106
if (redirects[path]) return redirect(redirects[path]);
86107

87-
const versionPrefixes = [
88-
'/docs/nightly/',
89-
'/docs/surrealdb/nightly/',
90-
'/docs/1.0.x/', '/docs/1.0.0/',
91-
'/docs/1.1.x/', '/docs/1.1.0/',
92-
'/docs/1.2.x/', '/docs/1.2.0/',
93-
'/docs/1.3.x/', '/docs/1.3.0/',
94-
'/docs/surrealdb/2.x/',
95-
'/docs/surrealdb/1.0.x/', '/docs/surrealdb/1.0.0/',
96-
'/docs/surrealdb/1.1.x/', '/docs/surrealdb/1.1.0/',
97-
'/docs/surrealdb/1.2.x/', '/docs/surrealdb/1.2.0/',
98-
'/docs/surrealdb/1.3.x/', '/docs/surrealdb/1.3.0/'
99-
];
100-
101108
for (const prefix of versionPrefixes) {
102109
if (path.startsWith(prefix)) {
103110
return redirect(`/docs/surrealdb/${path.slice(prefix.length)}`);
104111
}
105112
}
106113

107-
if (path.startsWith('/docs/integration/libraries/')) {
108-
return redirect(`/docs/sdk/${path.slice(28)}`);
109-
}
110-
if (path.startsWith('/docs/surrealdb/integration/sdks/')) {
111-
return redirect(`/docs/sdk/${path.slice(33)}`);
114+
for (const [prefix, target] of Object.entries(prefixedRedirects)) {
115+
if (path.startsWith(prefix)) {
116+
return redirect(`${target}${path.slice(prefix.length)}`);
117+
}
112118
}
113119

114120
if (path.startsWith('/docs/')) {
115121
const section = path.split('/')[2];
116-
const validSections = ['surrealdb', 'surrealml', 'surrealist', 'surrealism', 'surrealql', 'sdk', 'tutorials', 'cloud'];
117122
if (!validSections.includes(section) && path !== '/docs/llms.txt') {
118123
return redirect(`/docs/surrealdb/${path.slice(6)}`);
119124
}

src/content/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Adding a new doc
2+
3+
**READ VERY CAREFULLY**
4+
5+
When adding a new doc, you MUST update redirect logic <br />
6+
If this does not happen, you'll get endless redirects :D <br />
7+
In: project://aws/viewer-request/index.js#1,24

src/content/config.ts

+8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ const abstractDoc = defineCollection({
1313
}),
1414
});
1515

16+
///////////////////////////////////////////////////////////
17+
// //
18+
// !!!!! READ VERY CAREFULLY !!!!! //
19+
// When adding a new doc, you MUST update redirect logic //
20+
// In: project://aws/viewer-request/index.js#1,24 //
21+
// //
22+
///////////////////////////////////////////////////////////
23+
1624
export const docs = [
1725
'surrealdb',
1826
'cloud',

0 commit comments

Comments
 (0)