Skip to content

Commit ac0580c

Browse files
committed
fix: optimize language link tag insertion in HTML rendering
1 parent b0d7a97 commit ac0580c

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

src/index.js

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,6 @@ class CoCreateServerSideRender {
2121
let dbCache = new Map();
2222

2323
async function render(dom, lastKey) {
24-
let langLinks = self.createLanguageLinkTags(file);
25-
26-
// Insert language link tags into <head>
27-
const head = dom.querySelector("head");
28-
if (head && langLinks) {
29-
const linksFragment = parse(`<fragment>${langLinks}</fragment>`);
30-
for (const link of linksFragment.childNodes) {
31-
head.appendChild(link);
32-
}
33-
}
34-
3524
// Handle elements with [array][key][object]
3625
for (let el of dom.querySelectorAll("[array][key][object]")) {
3726
let meta = el.attributes;
@@ -153,14 +142,22 @@ class CoCreateServerSideRender {
153142

154143
let dom = parse(file.src);
155144
dom = await render(dom, "root");
156-
dom = translate(dom, file);
157-
let langLinkTags = createLanguageLinkTags(file);
158-
langLinkTags = parse(langLinkTags);
159-
langLinkTags = await render(langLinkTags, "root");
160-
145+
if (file.langRegion || file.lang) {
146+
dom = translate(dom, file);
147+
let langLinkTags = createLanguageLinkTags(file);
148+
const head = dom.querySelector("head");
149+
if (head && langLinkTags) {
150+
const linksFragment = parse(
151+
`<fragment>${langLinkTags}</fragment>`
152+
);
153+
for (const link of linksFragment.childNodes) {
154+
head.appendChild(link);
155+
}
156+
}
157+
}
161158
dep = [];
162159
dbCache.clear();
163-
return result.toString();
160+
return dom.toString();
164161
}
165162

166163
createLanguageLinkTags(file) {
@@ -178,7 +175,7 @@ class CoCreateServerSideRender {
178175
// Step 1: Create a lookup object that maps base language to its path.
179176
// This is done once for efficiency.
180177
const paths = {};
181-
for (const p of file.pathnames) {
178+
for (const p of file.pathname) {
182179
const secondSlashIndex = p.indexOf("/", 1);
183180
const langKey = p.substring(1, secondSlashIndex); // e.g., 'en', 'es', 'pt'
184181
const restOfPath = p.substring(secondSlashIndex);

0 commit comments

Comments
 (0)