Files
Aislo/resources/tester/helper_538_help_render.cjs
T

63 lines
2.1 KiB
JavaScript

/* 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
'<script>alert("x")</script>', // 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)),
}),
);