Update generate-site-documentation.js

This commit is contained in:
Kenichiro NOGI 2026-07-10 18:23:57 +09:00
parent 88a402ce0f
commit 205dd803f0

View File

@ -37,6 +37,49 @@ function resolveSiteData(json) {
throw new Error("getsiteレスポンスの想定構造が見つかりません。Response.Data を含むJSONを渡してください。"); throw new Error("getsiteレスポンスの想定構造が見つかりません。Response.Data を含むJSONを渡してください。");
} }
function resolveTableCellValue(row, header) {
if (row[header] != null) return row[header];
const normalized = String(header)
.replace(/\s+/g, "")
.replace(/[]/g, "")
.replace(//g, "/");
if (row[normalized] != null) return row[normalized];
const aliasMap = {
"順番": ["No", "Order", "Index"],
"列名": ["Column", "ColumnName", "Field", "Name"],
"列名(内部)": ["Column", "ColumnName", "Field", "Name"],
"表示ラベル": ["Label", "LabelText", "DisplayName", "Title"],
"説明/入力ガイド": ["Description", "DescriptionText", "ToolTip", "InputHelpText"],
"備考": ["Remarks", "Remark", "Notes"],
"種別": ["Type", "Kind"],
"対象": ["Target", "TargetId"],
"権限値": ["Permission", "PermissionValue", "Level", "Value"],
"タブ/キー": ["Tab", "Key", "TabKey"],
"項目一覧": ["Items", "ItemList"],
"項目": ["Field", "Column", "ColumnName"],
"権限設定": ["Permission", "PermissionSetting", "Value"],
"ファイル": ["File", "Path"],
"要約": ["Summary", "Description"],
"操作": ["Operation", "Name"],
"状態の変化": ["Change", "Transition"],
"説明": ["Description", "Detail"],
"起点列": ["From", "FromColumn", "FromField"],
"参照先SiteId": ["TargetSite", "TargetSiteId", "SiteId"],
"参照先の値→コピー先": ["To", "ToColumn", "ToField"],
"JsonFormat": ["JsonFormat", "Format"],
"ラベル": ["Label", "LabelText"],
"内容": ["Content", "Value", "Body"],
};
for (const alias of aliasMap[header] || []) {
if (row[alias] != null) return row[alias];
}
return "";
}
function formatMarkdownTable(header, rows) { function formatMarkdownTable(header, rows) {
if (!rows || rows.length === 0) return ""; if (!rows || rows.length === 0) return "";
const heads = header.map((h) => `| ${h} `).join("") + "|"; const heads = header.map((h) => `| ${h} `).join("") + "|";
@ -45,7 +88,7 @@ function formatMarkdownTable(header, rows) {
.map((row) => { .map((row) => {
return header return header
.map((cell) => { .map((cell) => {
const value = row[cell] != null ? row[cell] : ""; const value = resolveTableCellValue(row, cell);
return `| ${String(value).replace(/\|/g, "\\|")} `; return `| ${String(value).replace(/\|/g, "\\|")} `;
}) })
.join("") + "|"; .join("") + "|";
@ -463,7 +506,7 @@ function generateAllDocs() {
console.log(`[OK] 概要書生成: ${overviewPath}`); console.log(`[OK] 概要書生成: ${overviewPath}`);
try { try {
child_process.execSync("node", [path.join(ROOT, "md-to-pdf.js"), overviewPath], { child_process.execFileSync("node", [path.join(ROOT, "md-to-pdf.js"), overviewPath], {
stdio: "inherit", stdio: "inherit",
cwd: ROOT, cwd: ROOT,
}); });