/* PLAN 538 단위검증 헬퍼 — 진짜 `ui_template_help.ts` 의 `renderHelpMarkdown` 을 Node 로 돌려 변환 글을 JSON 으로 냄. * 화면 모듈(단추 · 모달 · 고침)은 빈 가짜로 끼움. */ const path = require("path"); const { makeLoader } = require("./helper_ts_stub_loader.cjs"); const ROOT = path.join(__dirname, "..", ".."); const STUBS = { "@config/config_frontend": { API_BASE_URL: "/api", ROUTES: {}, PLAN_STEP_ROUTES: [], STAB_STEP_ROUTES: [], }, "./ui_template_elements": {}, "./ui_template_modal": {}, "./ui_template_help_edit": {}, }; const { load } = makeLoader({ root: ROOT, stubs: STUBS }); const { renderHelpMarkdown } = load("ui_template", "ui_template_help.ts"); const ctx = (admin) => ({ page: "B05", images: { "b05_full.webp": "abc" }, admin }); const DOC = [ "# 종단 설계", // 0 "", // 1 "첫 문단 [표준 횡단](B06/00_설명서) · [돌쌓기](B05/구조물_돌쌓기(메))", // 2 "둘째 줄", // 3 "", // 4 "- 하나", // 5 "- 둘", // 6 "", // 7 "| 칸 | 뜻 |", // 8 "| --- | --- |", // 9 "| a | b |", // 10 "", // 11 "> 주의: 저장 전 확인", // 12 "> 둘째 줄", // 13 "", // 14 "> 참고: 알아 둘 것", // 15 "", // 16 "![화면 통째](b05_full.webp)", // 17 "![없는 그림](none.webp)", // 18 "![나쁜 이름](../x.webp)", // 19 '', // 20 ].join("\n"); // 설명 속 대괄호 — [저장] 꼴 단추 이름 · 굵게 · 링크가 섞여도 그림 줄은 그림 const BRACKET = [ "![[저장] 단추 누름](b05_full.webp)", // 0 "![[저장]·[확정] **굵게** [글](B06/00_설명서)](b05_full.webp)", // 1 "[글](B06/00_설명서) 와 [저장] 문단", // 2 "![[저장] 뒤에 글](b05_full.webp) 덧글", // 3 ].join("\n"); process.stdout.write( JSON.stringify({ plain: renderHelpMarkdown(DOC), admin: renderHelpMarkdown(DOC, ctx(true)), user: renderHelpMarkdown(DOC, ctx(false)), bracket: renderHelpMarkdown(BRACKET, ctx(true)), crlf: renderHelpMarkdown("# 가\r\n\r\n- 나\r\n- 다\r\n", ctx(false)), }), );