순위표 블록
스포츠 팀이나 클럽을 위한 순위가 매겨진 시즌 성적표입니다: 팀명, 경기 수/승/무/패, 득점/실점, 승점을 승점 순으로 정렬하고 상위 3위에 표시를 남깁니다. 분석 & 차트 블록 페이지의 다른 모든 블록과 달리, 이 블록은 절대 이미지로 렌더링되지 않습니다 — Outlook을 포함한 모든 이메일 클라이언트에서 실제 HTML <table> 자체가 블록 전체를 이룹니다.
작동 방식
분석 계열의 열세 개 차트 블록은 각각 텍스트 폴백과 함께 서버에서 생성된 래스터 이미지를 렌더링합니다. 막대 그래프나 선 그래프는 모든 클라이언트에서 일관되게 표시되는 동등한 HTML 마크업이 진짜로 존재하지 않기 때문입니다. 순위표에는 이런 문제가 없습니다: 정렬된 행과 열은 <table> 마크업이 이미 어디서나 일관되게 네이티브로 렌더링하는 영역이며, Word 기반 엔진을 쓰는 Outlook도 예외가 아닙니다. 여기에는 이미지-플러스-폴백의 분리가 없습니다 — 하나의 렌더링 경로만 무조건 사용됩니다.
행은 인스펙터의 행 편집기에 팀당 한 줄씩 직접 입력합니다. 아직 실시간 데이터 소스 연동은 지원되지 않으므로, 각 경기가 끝난 뒤 블록을 수동으로 업데이트해야 합니다 — 데이터 소스에 연동되기 전 KPI 스코어카드가 직접 입력한 value를 사용하는 것과 같은 수동 업데이트 모델입니다. 정렬은 렌더링 시점에 일어납니다: 행은 승점 열을 기준으로 내림차순 정렬되며, Array.prototype.sort가 안정 정렬이므로 동점인 행들은 다시 뒤섞이지 않고 원래 입력된 순서를 유지합니다. 정렬 후 상위 3개 행에는 일반 숫자 대신 순위 배지(🥇🥈🥉)가 붙고, 4위 이하의 모든 행에는 일반 순위 숫자가 붙습니다.
승점은 항상 직접 입력하는 숫자입니다. 승/무/패로부터 계산되는 일은 절대 없습니다. 리그마다 승점 부여 방식이 다르기 때문이며(단순 3점 승리, 대량 득점 패배에 대한 보너스 점수 등), 하나의 공식을 하드코딩하면 대부분의 종목에서 틀린 값이 나올 것이기 때문입니다.
농구나 대부분의 테니스 리그처럼 무승부가 없는 종목이라면 무승부 열 표시를 끄세요. 이렇게 하면 "D" 열이 단순히 시각적으로 숨겨지는 것이 아니라 헤더와 모든 행에서 실제로 제거됩니다. 팀 강조 표시는 대소문자를 구분하지 않고 행의 팀명 값과 일치시키며, 일치하는 경우 해당 행의 텍스트를 굵게 표시하고 배경에 색을 입힙니다. 학부모용 다이제스트에서 표 전체를 훑어보지 않고도 자녀의 팀을 한눈에 찾아볼 수 있어 유용합니다.
팀명이 입력된 행이 하나도 없으면, 블록은 빈 표 대신 제목과 카드 테두리만 렌더링하며 "순위표를 표시하려면 팀을 하나 이상 추가하세요"라는 일반 안내 문구를 표시합니다. 이는 다른 모든 분석 블록의 빈 데이터 분기가 따르는 "작성 도중 중간에 오류를 내지 않는다"는 것과 같은 관례입니다.
순위표는 순수한 콘텐츠입니다: 응답할 것이 없으므로 — 장소 블록과 마찬가지로 — 응답 대시보드, CSV 내보내기, 클릭 히트맵 어디에도 절대 표시되지 않습니다. 이 블록에는 링크가 전혀 없습니다.
설정 가능한 필드:
- 제목 — 표 위에 표시됩니다. 비워 두면 표만 렌더링됩니다.
- 팀 — 행 목록: 팀명, 경기 수, 승, 무, 패, 득점, 실점, 승점.
- 무승부 열 표시 — "D" 열을 켜고 끕니다.
- 팀 강조 표시(정확한 이름 일치) — 팀명 열과 대소문자를 구분하지 않고 일치시킵니다.
- 카드의 배경색, 패딩, 테두리, 모서리 반경.
- 제목의 색상/크기, 그리고 표 텍스트의 색상/크기.
예시
Subject
Season standings after Week 10
"스포츠 팀" 프로젝트 목적은 장소, 캘린더에 추가, RSVP와 함께 순위표가 이미 배치된 상태로 새 프로젝트를 시작합니다. 매주 최신 결과로 같은 블록을 업데이트하는 주간 다이제스트를 보내보세요 — 여러 팀이나 연령대에 걸쳐 하나의 공유 연락처 목록을 유지하는 방법을 포함한 전체 패턴은 스포츠 팀 & 클럽을 참고하세요. 리그 뉴스레터는 하나의 이메일로 디비전 전체의 결과를 요약하며, 특별히 강조할 "홈" 팀이 없으므로 팀 강조 표시는 비워 둡니다. 유소년 클럽은 모든 학부모에게 같은 순위표 이메일을 보내되, 팀마다 별도의 이메일을 보내는 대신 visibleWhen 오디언스 필터를 통해 팀 강조 표시를 팀별로 설정합니다.
정적 폴백의 모습
<div style="margin:12px 0;background-color:#ffffff;padding:16px;border-radius:8px">
<p style="margin:0 0 8px;font-weight:600;font-size:15px;color:#111827">Standings</p>
<table style="width:100%;border-collapse:collapse;margin-top:4px">
<tr>
<th style="text-align:left;padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:600">#</th>
<th style="text-align:left;padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:600">Team</th>
<th style="text-align:right;padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:600">Pts</th>
</tr>
<tr style="background-color:#eef2ff">
<td style="padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:700">🥇 1</td>
<td style="padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:700">Eagles</td>
<td style="text-align:right;padding:4px 8px;border-bottom:1px solid #e5e7eb;font-weight:700">23</td>
</tr>
</table>
</div>
이것이 블록의 실제 렌더링 그 자체이며, 유일한 렌더링입니다 — 표는 어떤 클라이언트에서든 같은 마크업이므로 별도의 폴백 티어가 없습니다. (지면상 경기 수/승/무/패/득점/실점 열은 여기서 생략했습니다. 메달이 표시된 행은 팀 강조 표시가 같은 행에 적용된 색조를 보여줍니다.)