다국어 블로그를 위한 콘텐츠 저장소입니다. MDX 형식으로 작성된 포스트와 페이지를 관리하며, GitHub Actions를 통해 자동으로 포스트 인덱스를 생성합니다.
blog-contents/
├── ko/ # 한국어 콘텐츠
│ ├── (post.md) # 블로그 포스트
│ └── index.json # 자동 생성된 포스트 인덱스
├── en/ # English Contents
│ ├── (post.md)
│ └── index.json
├── ja/ # 日本語コンテンツ
│ ├── (post.md)
│ └── index.json
├── scripts/
│ └── generate-index.ts # 인덱스 생성 스크립트
└── .github/workflows/
└── generate-index.yml # 자동화 워크플로우
- 한국어(ko), 영어(en), 일본어(ja) 콘텐츠를 별도 폴더로 관리
- 각 언어별로 독립적인 페이지 구성
- Markdown + JSX를 사용한 풍부한 콘텐츠 작성
- Front-matter를 통한 메타데이터 관리
- GitHub Actions를 통해
main브랜치 push 시 자동 실행 - 각 언어별 문서 목록을
index.json으로 자동 생성 - 생성일 기준 내림차순 정렬
각 MDX 파일의 상단에 다음과 같은 front-matter를 포함해야 합니다:
---
title: "문서 제목"
createdAt: 2025-12-06
updatedAt: 2025-12-06
tags: ["tag1", "tag2"]
published: true
---title: 문서 제목createdAt: 생성 날짜 (YYYY-MM-DD 형식)updatedAt: 최종 수정 날짜tags: 태그 배열published: 공개 여부 (true/false)
---
title: "GitHub Actions로 블로그 자동화하기"
createdAt: 2025-12-06
updatedAt: 2025-12-06
tags: ["github", "automation", "devops"]
published: true
---
# GitHub Actions로 블로그 자동화하기
이 포스트에서는 GitHub Actions를 활용한 블로그 자동화 방법을 소개합니다.
## 목차
...main브랜치에 push 발생- GitHub Actions workflow 자동 실행
scripts/generate-index.ts실행- 각 언어 폴더의 MDX 파일 스캔
- Front-matter 파싱 및 메타데이터 추출
{locale}/index.json파일 생성- 자동 커밋 및 push (
[skip ci]플래그로 무한 루프 방지)
[
{
"id": "post-slug",
"title": "포스트 제목",
"createdAt": "2025-12-06T00:00:00.000Z",
"updatedAt": "2025-12-06T00:00:00.000Z",
"tags": ["tag1", "tag2"],
"published": true,
"path": "/post-slug"
}
]- Node.js 22.x 이상
npm installnpx tsx scripts/generate-index.ts이 명령어를 실행하면 모든 언어의 index.json 파일이 생성됩니다.
GitHub Actions가 리포지터리에 커밋할 수 있도록 workflow에 다음 권한이 설정되어 있습니다:
permissions:
contents: write이 리포지터리는 별도의 블로그 프론트엔드 프로젝트와 연동하여 사용됩니다.
- chan-ok/blog - 블로그 프론트엔드 애플리케이션
MIT License
주의: index.json 파일은 자동으로 생성되므로 직접 수정하지 마세요. 포스트를 추가하거나 수정한 후 GitHub에 push하면 자동으로 업데이트됩니다.