diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/ParkMap.astro | 8 | ||||
| -rw-r--r-- | src/components/ParksTable.astro | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/components/ParkMap.astro b/src/components/ParkMap.astro index 5a1a530..910f6d1 100644 --- a/src/components/ParkMap.astro +++ b/src/components/ParkMap.astro @@ -1252,16 +1252,22 @@ .filter((s) => DISASTER_KEEP.test(s)) .join("、"); // 水飲み場は「水飲み場x1」のように、手洗いも含めて数を示す。 + // 水飲み専用の水栓がなく手洗いだけの場合は(水飲水栓なし)と添える。 const waterText = (value: string) => { const text = String(value || "").trim(); if (!text) return "水飲み場なし"; if (/[??]/.test(text)) return "水飲み場?"; let total = 0; + let hasDrink = false; + let hasWash = false; for (const part of text.split(/[、,]/)) { const nums = [...part.matchAll(/[x×](\d+)/g)].map((m) => Number(m[1])); if (nums.length) total += nums.reduce((a, b) => a * b, 1); + if (/水飲/.test(part)) hasDrink = true; + if (/手洗/.test(part)) hasWash = true; } - return total > 0 ? `水飲み場x${total}` : "水飲み場"; + const label = !hasDrink && hasWash ? "水飲み場(水飲水栓なし)" : "水飲み場"; + return total > 0 ? `${label}x${total}` : label; }; const water = waterText(String(rec?.["水飲み場"] || "")); // ○/〇 などの表記は「〜あり」にして意味が分かるようにする。 diff --git a/src/components/ParksTable.astro b/src/components/ParksTable.astro index 81a93e2..92b21c9 100644 --- a/src/components/ParksTable.astro +++ b/src/components/ParksTable.astro @@ -173,11 +173,17 @@ const waterText = (value: string) => { if (!text) return ""; if (/[??]/.test(text)) return "水飲み場?"; let total = 0; + let hasDrink = false; + let hasWash = false; for (const part of text.split(/[、,]/)) { const nums = [...part.matchAll(/[x×](\d+)/g)].map((m) => Number(m[1])); if (nums.length) total += nums.reduce((a, b) => a * b, 1); + if (/水飲/.test(part)) hasDrink = true; + if (/手洗/.test(part)) hasWash = true; } - return total > 0 ? `水飲み場x${total}` : "水飲み場"; + // 水飲み専用の水栓がなく、手洗いだけの場合はその旨を添える。 + const label = !hasDrink && hasWash ? "水飲み場(水飲水栓なし)" : "水飲み場"; + return total > 0 ? `${label}x${total}` : label; }; function disasterText(value: string): string { return value |
