bestserveddish/콘텐츠 제작
최근 수정 시각: 2026-07-11 00:13:16
1. 무엇을 하는가
BestServedDish에는 두 개의 제작 흐름이 있다. 베스트 리스트는 사람이 조사한 마크다운 표를 표준 카탈로그 JSON으로 변환하고, SIGNAL은 날짜별 JSON 한 파일을 정적 이슈 페이지로 만든다. 이 문서는 저장소를 편집하는 운영자를 위한 절차다.
2. 베스트 리스트 만들기
- 표 기반 원본 마크다운을
data/sources/에 둔다. data/categories.json에 카테고리 코드, 서가, 제목, 설명, 태그, 원본 파일, 스키마를 등록한다.- 한 원본에 표가 여러 개 있으면
sectionHeading으로 대상 표를 구분한다. npm run build:catalog를 실행한다.- 생성된
data/catalog.json과data/items-by-category.json의 카테고리·항목 수를 확인한다. npm run build후 카테고리 목록, 상세, 검색 링크를 미리 본다.
빌더는 마크다운 표의 열을 네 가지 스키마 중 하나로 표준 아이템 필드에 매핑한다.
music-with-artistmusic-no-artistgame-romanceplace
이름이 없는 행은 제외되고, 처리할 수 없는 행은 [category] row skip 경고를 남기고 건너뛴다. 원본에 실제 링크가 있으면 evidenceLinks로 보존되며, 화면의 자동 검색 링크와 별도로 표시된다.
3. SIGNAL 이슈 만들기
data/magazine/YYYY-MM-DD.json파일을 만든다.date,issue,weekday,edition,editorsNote를 채운다.sections[]에 AI·게임·인디 섹션과 기사를 넣는다. 섹션별 리드 기사는 최대 하나다.- 필요하면
galleryPicks[]에 커뮤니티 신호를,sources[]에 출처를 넣는다. npm run build를 실행한다./magazine/뉴스스탠드와/magazine/YYYY-MM-DD/개별 호를 확인한다.
매거진은 별도의 변환 명령이 없다. Astro의 import.meta.glob이 날짜별 JSON을 빌드 시점에 모으고 날짜 내림차순으로 정렬한다.
4. 자동 발행
저장소에는 Windows 작업 스케줄러용 실행 파일이 포함되어 있다. SIGNAL-Magazine-Daily 작업은 로컬 시간 매일 09:00에 /magazine 자동화 요청을 실행하고, logs/magazine-YYYY-MM-DD.log에 로그를 남기도록 구성되어 있다. 절전 해제와 놓친 실행 재개가 켜져 있으며 실행 제한은 2시간이다.
자동화가 파일을 만들었다고 바로 발행 완료로 보지 않는다. 날짜·호수, 기사 수, 출처 링크, 최신호 카드, 아카이브 순서를 먼저 확인한다.
5. 빌드와 배포 전 검수
npm run build는 카탈로그 빌드 후 Astro 정적 빌드를 실행한다.- 카테고리의 항목 수와 대문 총합이 맞는지 확인한다.
- 검색·순위·이름·연도 정렬이 예상대로 동작하는지 확인한다.
- 아이템의 자동 검색과 Evidence 링크를 혼동하지 않았는지 확인한다.
- SIGNAL의 최신호, 지난 호, 기사 출처와 커뮤니티 신호가 렌더되는지 확인한다.
- Cloudflare Pages 배포에는 프로덕션 브랜치
main이 사용된다.