63 lines
2.1 KiB
JavaScript
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
|
|
"", // 17
|
|
"", // 18
|
|
"", // 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)),
|
|
}),
|
|
);
|