Skip to content

feat(phase-3): TIL 기반 Wiki Quiz flash card island를 추가한다 - #60

Open
gitgitWi wants to merge 14 commits into
feat/phase-2-contentfrom
feat/phase-3-quiz
Open

gitgitWi wants to merge 14 commits into
feat/phase-2-contentfrom
feat/phase-3-quiz

Conversation

@gitgitWi

@gitgitWi gitgitWi commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

스택: base feat/phase-2-content ← head feat/phase-3-quiz — #59 Phase 2가 먼저 머지돼야 이 디프가 맞다.

왜

TIL·기사를 flash card로 복습하려면 SSG HTML에 island가 항상 있어야 하고, 덱 데이터는 lazy import로 30KB gzip 목표를 지킨다. 마지막 문제 제출 후에는 완료 UI가 반드시 보여야 한다.

흐름

flowchart TD
  B1["QuizDeck hydrate"] --> B2["quizView 순서"]
  B2 --> B3["finished"]
  B2 --> B4["loading"]
  B2 --> B5["empty"]
  B2 --> B6["card"]
  B3 --> B7["다시 풀기 · 점수"]
  B6 --> B8["import deck · flash card"]
  style B7 fill:#e8f5e9,stroke:#2e7d32,color:#2e7d32
Loading

효과

flowchart LR
  P["이 PR"] --> U["사용자: 세션 완료·lazy 덱·noscript 목록"]
  P --> Q["품질: quizView vitest 28건"]
  P --> O["운영: QuizDeck entry gzip 4,610 bytes ≤ 30KB"]
Loading

범위

flowchart TD
  subgraph IN["이번 PR"]
    I1["20문항·엔진·QuizDeck·/wiki/quiz"]
    I2["lazy deck · island always ship · quizView finished fix"]
  end
  subgraph NEXT["후속"]
    N1["SRS — Phase 4 PLAN"]
  end
  subgraph OUT["제외"]
    X1["서버 저장·로그인 — SPEC 비목표"]
  end
Loading

번들 (@ e20f48a)
QuizDeck entry gzip: 4,610 bytes

dist 증명
rg dist/wiki/quiz/index.html → astro-island + component-url="/_astro/QuizDeck.*.js"

검증

$ bun run check
Result (127 files):
- 0 errors
- 0 warnings
- 0 hints

$ bunx oxfmt --check .
All matched files use the correct format.

$ bunx vitest run
Test Files  7 passed (7)
     Tests  28 passed (28)

$ bun run build
34 page(s) built in 1.28s

$ rg -o 'astro-island|component-url="/_astro/QuizDeck[^"]*"' dist/wiki/quiz/index.html
astro-island
component-url="/_astro/QuizDeck.*.js"

$ gzip -c dist/_astro/QuizDeck.*.js | wc -c
4610

@gitgitWi gitgitWi added phase-3 Phase 3 Wiki quiz astro Astro, StyleX, GitHub Pages content articles, til, MDX, wiki visibility labels Sep 9, 2026
@gitgitWi gitgitWi self-assigned this Sep 9, 2026
@bolt-new-by-stackblitz

Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

gitgitWi added a commit that referenced this pull request Sep 9, 2026
PR #60 draft·번들 13.6KB·게이트 결과를 남긴다.
@gitgitWi
gitgitWi marked this pull request as ready for review September 9, 2026 18:23
@gitgitWi
gitgitWi added this pull request to stack #62 September 13, 2026 18:38
gitgitWi and others added 14 commits October 2, 2026 13:40
Zod 스키마·4덱×5문항과 til quizRefs 링크를 연결한다.
shuffle·grade·session·localStorage progress와 vitest를 포함한다.
Preact flash card UI, 키보드·aria-live·noscript 정적 목록을 제공한다.
PR #60 draft·번들 13.6KB·게이트 결과를 남긴다.
SSG HTML에 astro-island가 포함되도록 전 덱 props를 전달한다.
bunx oxfmt --check . 게이트를 green으로 맞춘다.
deck-meta와 loadDeckItems로 island props에서 20문항 인라인을 제거한다.
deckCounts만 props로 받고 선택 시 import()로 문항을 로드한다.
quizView 헬퍼로 finished → loading → empty → card 순서를 고정한다.
Co-authored-by: Cursor <cursoragent@cursor.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

astro Astro, StyleX, GitHub Pages content articles, til, MDX, wiki visibility phase-3 Phase 3 Wiki quiz

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant