From 205dd803f0de2fb21fbc421cdbb322c81b7487f9 Mon Sep 17 00:00:00 2001 From: Kenichiro NOGI Date: Fri, 10 Jul 2026 18:23:57 +0900 Subject: [PATCH] Update generate-site-documentation.js --- .../generate-site-documentation.js | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/ClaudePleasanter/新・稟議申請システム/generate-site-documentation.js b/ClaudePleasanter/新・稟議申請システム/generate-site-documentation.js index 23ecd448..9d28660c 100644 --- a/ClaudePleasanter/新・稟議申請システム/generate-site-documentation.js +++ b/ClaudePleasanter/新・稟議申請システム/generate-site-documentation.js @@ -37,6 +37,49 @@ function resolveSiteData(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) { if (!rows || rows.length === 0) return ""; const heads = header.map((h) => `| ${h} `).join("") + "|"; @@ -45,7 +88,7 @@ function formatMarkdownTable(header, rows) { .map((row) => { return header .map((cell) => { - const value = row[cell] != null ? row[cell] : ""; + const value = resolveTableCellValue(row, cell); return `| ${String(value).replace(/\|/g, "\\|")} `; }) .join("") + "|"; @@ -463,7 +506,7 @@ function generateAllDocs() { console.log(`[OK] 概要書生成: ${overviewPath}`); 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", cwd: ROOT, });