프로젝트 소개
nfuwari는 Astro의 Fuwari 테마를 기반으로 구축되어 GitHub Pages에 배포된 Lucius7의 블로그(blog.lucius7.cn) 소스 저장소입니다.
중국어와 영어 콘텐츠는 분리되어 관리됩니다. 포스트는 src/content/posts/zh/ 및 src/content/posts/en/ 경로에 저장되며, 각각 독립적인 리스트, 카테고리 및 태그 수, 포스트 내비게이션, RSS 피드 및 검색 인덱스를 가집니다. 루트 URL은 /zh/로 리다이렉트됩니다. 인터페이스 문자열은 src/i18n/에 있으며, About 페이지는 src/content/spec/ 하위에 언어별로 존재합니다. 번역본은 동일한 상대 경로로 매칭하거나 translationKey로 연결할 수 있으며, 언어 전환 시 대상 언어의 홈 페이지로 폴백됩니다.
글쓰기는 Markdown 기반으로 이루어집니다. 생성 스크립트(pnpm new-post zh/name 또는 pnpm new-post en/name)를 통해 lang: zh_CN 또는 lang: en이 포함된 프론트매터 기본값이 설정된 초안을 생성합니다. 포스트는 기본적으로 draft: true로 설정되어 로컬 개발 환경에서만 보이며, 프로덕션 빌드에서는 초안이 제외됩니다. 프론트매터 필드 및 검증은 src/content/config.ts에 정의되어 있습니다. 수식은 remark-math와 rehype-katex를 통해 지원되며, 스타일과 폰트는 사이트에서 함께 제공됩니다.
독자는 라이트 및 다크 테마, 카테고리, 태그, Pagefind 검색, RSS 및 사이트맵 출력을 이용할 수 있습니다. 사이트 정체성, 테마 색조, 프로필, 내비게이션, 소셜 링크 및 포스트 라이선스는 src/config.ts에서 설정하며, 배너 이미지, 아바타(Tencent QQ 아바타 엔드포인트), 사이트 아이콘 및 푸터 등록 링크 또한 해당 파일이나 public/ 및 src/assets/를 통해 설정 가능합니다.
저자의 OJFlare 공개 API에서 데이터를 읽어오는 두 가지 선택적 대시보드 기능이 있습니다. 하나는 최신 3개의 Codeforces/AtCoder 통과 제출물을 보여주는 사이드바 위젯이며, 다른 하나는 About 페이지의 AC 기여 캘린더입니다. 캘린더는 problemId를 기준으로 통과 이력을 중복 제거하고 Asia/Taipei (UTC+8) 날짜를 사용하며 연도 및 플랫폼 필터를 제공합니다. 두 기능 모두 하나의 폴링 루프를 공유하여 페이지가 보일 때 5분마다 새로 고침하며, 새로 고침 실패 시 이전에 로드된 기록을 유지합니다. 이 기능들은 설정에서 비활성화할 수 있으며, 블로그 빌드는 API 연결 여부에 의존하지 않습니다.
툴링으로는 초안이 포함된 미리보기를 위한 pnpm dev, pnpm lint, Astro/Svelte/TypeScript 검사를 위한 pnpm check, Pagefind 인덱스를 생성하는 pnpm build, 빌드된 사이트 확인을 위한 pnpm preview가 있습니다. 테스트 스크립트는 실제 서비스에 접속하지 않고 언어 라우팅, MacFlare 활동 위젯 및 OJFlare 파싱을 검증합니다. GitHub Actions는 main 브랜치 업데이트 시 스타일 검사, 타입 검사, 빌드 및 배포를 수행하여 GitHub Pages에 게시하며, 커스텀 도메인은 Alibaba Cloud ESA를 통해 서비스되고 CNAME 파일에 기록됩니다. Dependabot이 매주 npm 및 GitHub Actions를 점검합니다. 글쓰기, 이국어 콘텐츠, LaTeX, 배포 및 의존성 검토 가이드는 docs/에 있으며, 프로젝트 코드는 MIT 라이선스와 업스트림 속성을 유지합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.