Skip to content

Commit 439b6b6

Browse files
committed
README: 리드미에 project.json 구조 설명 추가
1 parent 77d68b3 commit 439b6b6

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

README.md

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,13 +541,80 @@ series: 나의 맞춤 블로그 만들기
541541

542542
`publish`의 값은 문자열이어야 하며 할당된 값이 블로그 내의 주소 구조로 활용되며 카테고리를 만드는 역할을 한다. 즉 `블로그주소/posts/publish 값/파일이름` 의 주소를 갖게 된다.
543543

544+
### 프로젝트 포트폴리오 구조
545+
546+
포트폴리오 페이지의 프로젝트들은 각 프로젝트 폴더에 개별 `project.json` 파일로 관리됩니다.
547+
548+
#### 프로젝트 파일 구조
549+
550+
```
551+
public/projects/
552+
├── 프로젝트명/
553+
│ ├── project.json # 프로젝트 정보
554+
│ └── (이미지/영상 파일들)
555+
```
556+
557+
#### project.json 스키마
558+
559+
```typescript
560+
interface Project {
561+
projectType: "project" | "study"; // 프로젝트 타입
562+
id: string; // 고유 ID
563+
title: string; // 프로젝트 제목
564+
description: string; // 간단한 설명
565+
thumbnail: string; // 썸네일 경로 (상대경로 가능: "./이미지.png")
566+
thumbnailOptions?: {
567+
// 썸네일 옵션 (비디오인 경우)
568+
playbackRate?: number; // 재생 속도
569+
};
570+
tags: string[]; // 태그 목록
571+
technologies: string[]; // 사용 기술 목록
572+
githubUrl?: string; // GitHub 저장소 URL
573+
serviceUrl?: string; // 서비스 URL
574+
featured: boolean; // 주요 프로젝트 여부
575+
createdAt: string; // 생성일 (YYYY-MM-DD)
576+
overview: string; // 프로젝트 개요
577+
features: string[]; // 주요 기능 목록
578+
lessons: string; // 배운 점
579+
challenges: string[]; // 도전 과제 목록
580+
demoType: "images" | "video"; // 데모 타입
581+
demoImages?: {
582+
// 데모 이미지/영상 목록
583+
url: string; // 파일 경로 (상대경로 가능: "./파일.mp4")
584+
description: string; // 설명
585+
showControls?: boolean; // 비디오 컨트롤 표시 여부
586+
playbackRate?: number; // 재생 속도
587+
}[];
588+
demoVideo?: string; // 데모 비디오 URL (demoType이 "video"인 경우)
589+
inDevelopment?: boolean; // 개발 중 여부
590+
futurePlans?: string[]; // 향후 계획
591+
publishPath: string; // 블로그 포스트 경로
592+
}
593+
```
594+
595+
#### 프로젝트 추가 방법
596+
597+
1. `/public/projects/새프로젝트명/` 폴더 생성
598+
2. 해당 폴더에 `project.json` 파일 생성
599+
3. 프로젝트 에셋(이미지, 영상) 추가
600+
4. `npm run build-projects` 실행 (또는 `bun run build` 시 자동 실행)
601+
602+
#### 경로 작성 방법
603+
604+
- **상대 경로 사용**: `"./파일명.png"` - 빌드 시 자동으로 절대 경로로 변환됨
605+
- **절대 경로 사용**: `"/projects/프로젝트명/파일명.png"`
606+
607+
#### 정렬 순서
608+
609+
프로젝트는 `createdAt` 날짜 기준으로 최신순으로 정렬됩니다.
610+
544611
## 추가해야할 기능혹은 페이지
545612

546613
- [ ] contents layer 로 대체
547614
- [ ] 소개 패이지
548615
- [x] 포트폴리오 페이지
549616
- [ ] 댓글 기능
550-
- [ ] 옵시디언 스타일의 콜아웃 적용
617+
- [x] 옵시디언 스타일의 콜아웃 적용
551618
- [ ] 비디오 임베드
552619
- [ ] D3.js를 홀용한 그래프 뷰
553620
- [ ] 연결된 관련 노트 리스트 추가

0 commit comments

Comments
 (0)