- Obsidian
notes/에서 작성 →npm run migrate:blog로src/content/에 정리 →npm run build로dist/생성 → GitHub Pages 배포. - 이미지/위키 링크를 자동 변환하므로 원본 노트 형식을 크게 바꿀 필요가 없습니다.
notes/: 작성 원본. 예)notes/blog/<카테고리>/<글>.md,notes/project/Project Showcase/<글>.md,notes/retrospectives/<분류>/<글>.mdscripts/migrate-tech-blog.mjs: 노트 → content 변환 스크립트. 첨부 이미지는../../9.Settings/Attachments에서 복사합니다.src/content/posts/<카테고리>/slug.mdprojects/Project-Showcase/slug.mdretrospectives/<분류>/slug.mdassets/: 변환된 이미지가 해시 프리픽스로 저장
src/pages/: 라우트 (/,/posts,/post/[slug],/projects,/retrospectives,/about)src/components/,src/layouts/,src/plugins/remarkWikiLinks.ts: UI/플러그인 레이어public/: 정적 자산 (favicon, robots.txt)
- 필수 frontmatter:
title,created(ISO 또는YYYY-MM-DD HH:mm). 선택:modified,tags,summary. - 파일명은 슬러그 형태로 작성(공백 대신 하이픈).
- 이미지: Obsidian에서는
![[file.png]]그대로 사용 가능. 마이그레이션 시src/content/assets/<해시>-file.png로 복사되고, 본문 경로는../../assets/...로 치환됩니다. - 내부 링크:
[[대상]]또는[[대상|표시]]사용 시 slug에 매핑되어 Astro 페이지 링크로 변환됩니다.
notes/와 첨부(기본:../../9.Settings/Attachments)를 최신 상태로 준비- 실행:
npm run migrate:blog - 스크립트가
src/content/{posts,projects,retrospectives,assets}를 초기화 후 다시 채웁니다. - 로그에서 누락된 이미지 경고가 없는지 확인
- 필요 시 수동으로
assets/에 추가 후 본문 경로를../../assets/파일명으로 수정
astro.config.mjs의site값이 실제 배포 URL(https://kmsk99.github.io)과 일치하는지 확인npm run build→dist/생성- GitHub Pages 워크플로 또는 수동으로
dist/를 Pages 대상 브랜치에 업로드