/** * 인물 열전 — 발행본. 필름 한 롤에 프레임이 이어진다. * ★ 프레임 안은 사진이 있으면 사진, 없으면 활판 이니셜이다 — 빈 회색 상자를 두지 않는다. */ import type {PeopleItem} from '@o2o/shared'; import {useSite} from '@site/lib/site-context'; import {sectionItems, sectionName} from '@site/lib/derive'; import {ITEM_INVERSE, ItemSection, Rail, SourceLine, tally} from './common'; export function PeopleSection() { const payload = useSite(); const parsed = sectionItems(payload, 'people'); if (parsed.items.length === 0) return null; return ( !person.imageUrl) ? `${tally(parsed.items.length, parsed.unverified, '명')} · 사진이 없는 인물은 이름 활자로 대신합니다` : tally(parsed.items.length, parsed.unverified, '명') } dark >
{parsed.items.map((person, index) => (
{/* 사진 출처는 카드 아래 SourceLine 옆에 붙는다(아래) — 라이선스 조건이다. */} {person.imageUrl ? ( {`${person.name} ) : ( {person.name.trim().charAt(0)} )}

{person.name} {person.aka && 호 {person.aka}}

{[person.role, person.years].filter(Boolean).join(' · ')}

{person.oneLine &&

{person.oneLine}

}
))}
); }