# Study Blog Pipeline
AI Summary
Purpose:
- A Korean tech-study blog built from Markdown -> static HTML and deployed to a dedicated public Cloudflare Pages project.
Key points:
- Source:
human/study/content/<tech>/series.json+NN-<slug>.md(Korean). - Build:
node scripts/build-study.mjs->human/study/dist/(CF Pages output dir; build-free on CF). - Reader: book layout (sidebar TOC + body + prev/next + progress). Home: card grid + pure-CSS category filter + "오늘의 글" banner.
- Publish model: auto-publish, NO approval gate.
status:draftis an optional hold (renders underdist/_drafts/, excluded from home/sidebar). - Daily routine (KST 12:00) picks the next chapter from
ai/study/curriculum.md(user-requested items first), researches deeply with web sources, writes one chapter as published, builds, commits, pushes. - Accuracy is the agent's responsibility: deep web research + a
## Referencessection; mark uncertainty as Open question. This is general IT education, not portfolio facts.
Markdown subset the routine MUST stay within (converter: scripts/lib/md.mjs):
##/###headings, paragraphs,**bold**,*italic*, `code,text`,
- / 1. lists, ``` `lang `` code fences, > blockquote, ---` hr, GFM tables.
Diagrams (DEFAULT — every chapter should include at least one architecture/explanatory figure):
- ```
`svg <caption>``→ inline SVG emitted verbatim inside<figure class="diagram">`.
Best for precise architecture diagrams (boxes + arrows + labels). Self-contained, no JS, no external assets.
- ```
`figure <caption>``(alias```html-fig```) → raw HTML emitted verbatim inside the figure.
Use the built-in CSS kit so figures look consistent (defined in templates/assets/study.css): - .flow (row), .col (column), .group (dashed container) + .group .lbl (group label) - .node (box), .node.alt (teal), .node.dim (muted), .arrow (→ / ⇄ / ↓)
- Passthrough content is emitted UNESCAPED, so it must be self-contained: inline SVG or the CSS kit only.
Do NOT reference external images/scripts; any href/src must be relative (checked by check-relative-links).
- For code SAMPLES (showing HTML/source to the reader), keep using a normal ```
`lang``` fence — those stay escaped.
Known limitations:
- Draft pages live at depth 2 (
dist/_drafts/<slug>/NN.html); their prev/next links to published siblings are a preview convenience and may not resolve. Published-reader navigation is always correct.
Relevant when:
- Running the daily study routine, adding a chapter, or changing the build.
Linked documents:
ai/study/curriculum.mddocs/superpowers/specs/2026-06-10-study-blog-design.mdhuman/study/README.md
Verify after any change
node --test scripts/test/*.test.mjs # all study unit/integration tests
node scripts/build-study.mjs # content -> dist
node scripts/check-relative-links.mjs human/study/distRoutine prompt (for /schedule)
Read
ai/study/curriculum.md. Take the topPriority queueitem, else the first unchecked backlog chapter. Research it deeply with web sources for accuracy. Write one Korean chapter tohuman/study/content/<tech>/NN-<slug>.mdwithstatus: publishedand a## Referencessection, staying within the documented Markdown subset (seeai/study/index.md). Include AT LEAST ONE architecture or explanatory diagram using a ````svg``or```figure``block (this is the default — a chapter without a diagram is incomplete). Add/append the chapter to the series'series.jsonand tick it incurriculum.mdwith today's date. Runnode scripts/build-study.mjs, thennode scripts/check-relative-links.mjs human/study/dist. Commit and push tomain`. Report the topic and the public URL.