Initial commit

This commit is contained in:
taimafanl
2026-01-20 17:27:13 +08:00
commit 619dd37464
4 changed files with 230 additions and 0 deletions

65
build.js Normal file
View File

@@ -0,0 +1,65 @@
// build.js
const fs = require('fs');
const path = require('path');
const data = require('./data.js');
const template = fs.readFileSync(path.join(__dirname, 'template.html'), 'utf-8');
data.languages.forEach(lang => {
const content = data.content[lang];
let html = template;
html = html.replace(/{{langCode}}/g, lang);
html = html.replace(/{{title}}/g, content.title);
html = html.replace(/{{metaDesc}}/g, content.metaDesc);
// 语言链接 - 动态生成
const langLinksHtml = data.languages.map(l => {
const lContent = data.content[l];
// 只有当不是当前语言时,才显示链接
if (l === lang) return `<span style="color:white; margin-left:15px; font-size:13px; font-weight:800">${lContent.langName}</span>`;
return `<a href="../${l}/index.html">${lContent.langName}</a>`;
}).join('');
html = html.replace(/{{languageLinks}}/g, langLinksHtml);
// 表头
const headersHtml = content.headers.map(h => `<th>${h}</th>`).join('');
html = html.replace(/{{tableHeaders}}/g, headersHtml);
// 表格行 + 详情行
const rowsHtml = content.cities.map((city, idx) => `
<tr class="city-row" onclick="toggleDetails(${idx})">
<td>
<strong>${city.name}</strong>
<span class="tag-region">${city.region}</span>
</td>
<td>${city.matches}</td>
<td style="font-weight:600">${city.budget}</td>
<td><span class="tag-visa ${city.vCls}">${city.visa}</span></td>
<td style="color:#64748b; font-size:13px">${city.tips}</td>
</tr>
<tr id="details-${idx}" class="detail-pane">
<td colspan="5">
<div class="detail-content">
<div class="info-box">
<h4>${content.ui_stadium}</h4>
<div class="info-text">${city.std}</div>
</div>
<div class="info-box">
<h4>${content.ui_logistics}</h4>
<div class="info-text">${city.log}</div>
</div>
</div>
</td>
</tr>
`).join('');
html = html.replace(/{{tableRows}}/g, rowsHtml);
const distDir = path.join(__dirname, 'dist');
const outputDir = path.join(distDir, lang);
if (!fs.existsSync(distDir)) fs.mkdirSync(distDir);
if (!fs.existsSync(outputDir)) fs.mkdirSync(outputDir);
fs.writeFileSync(path.join(outputDir, 'index.html'), html);
console.log(`${lang} 版生成完毕`);
});