Files
..

공통 기능 모듈 (재사용 코드 보관소)

생성 사이트에 반복해서 들어가는 기능을 표준 코드로 보관한다. AI 가 사이트를 만들거나 수정할 때 켜진 모듈의 widget.html 이 프롬프트에 그대로 들어가고, 사이트 디자인에 맞게 CSS 만 바꿔서 쓴다.

구조

  • modules/<id>/widget.html — 사이트에 삽입되는 표준 마크업. 맨 위 주석 블록 "재사용 설정" 에 바꿔도 되는 값(데이터 속성)과 바꾸면 안 되는 값을 적는다. v1.3.16: 화면에 보이는 글자는 템플릿에 직접 쓰지 않고 {{t:문구id}} 로 쓴다(원문은 locales/site/ko.json, 사이트 본문 언어로 채워짐 — lib/sitemsg.js renderTemplate). 런타임(public/wm-modules.js)도 L('문구id', {값}) 만 쓰고, API 오류는 sitemsg.err('err.…') 로 만든다. 새 문구는 scripts/site-msg-catalog.py 에 추가하고 실행한다.
  • public/wm-modules.js — 모든 모듈의 브라우저 런타임(목록 조회·전송·렌더). 사이트는 <script src="<서비스>/wm-modules.js"> 로 불러오고, 동작은 data-* 속성으로만 설정한다. 사이트별 하드코딩이 없으므로 한 번 고치면 모든 사이트에 반영된다. 사이트 안에 복사해 쓰고 싶으면 파일을 그대로 js/wm-modules.js 로 두고 src 만 바꾼다.
  • lib/modules.js — 서버(API·저장소·권한·관리자 기능). 모듈 목록(CATALOG)에 설정 스키마와 관리자 표 열이 정의되어 있다.
  • 관리자 페이지 — /site-admin/<사이트ID>/ (별도 페이지, 사이트 관리자 계정 또는 빌더 로그인) 와 빌더 관리 탭 안의 "여기서 관리"(같은 페이지를 내장) 두 방식 모두 가능.

치환 토큰

{{SITE_ID}} 사이트 ID, {{API}} 이 사이트의 모듈 API 주소(<서비스>/api/m/<사이트ID>), {{SCRIPT}} 런타임 스크립트 주소. 그 밖의 {{대문자}} 는 모듈 설정값(소문자 키) 으로 치환된다(예: {{STYLE}} → settings.style).

모듈

id 기능 데이터
members 회원가입·로그인(사이트 범위 토큰) members
board 게시판: 리스트형/포럼형, 읽기·쓰기·댓글 권한, 비밀글, 댓글·답글·비밀댓글 posts, comments
inquiry 문의폼: 유형·발신자·제목·내용·첨부 → 관리자 페이지·빌더·이메일 (빌더 inquiries 저장소)
survey 설문/참가 신청 양식(구글폼식 문항) → 관리자 페이지·xlsx·이메일 surveys, responses
booking 예약: 가능 요일·시간대·간격·정원, 예약 접수·확정 bookings
gallery 사진·포트폴리오 격자 + 크게 보기 gallery
map 주소 → 지도(OpenStreetMap/Leaflet, 확대·축소) 설정만
reviews 후기 접수 → 승인 → 리스트/칸반 reviews
faq 질문·답변 아코디언 faq
blog 블로그: 글·검색·분류·태그·댓글 (v1.4.0) blogPosts, blogComments
library 자료실: 파일 올리기·내려받기 (v1.4.0) libraryFiles
calendar 일정관리: 월간·주간·일간 캘린더, 음력·만세력 간지·24절기 표시, 시·분/일/주 단위 일정, 반복, 음력 기준 일정 (v1.4.18, lib/calendar.js·lib/lunar.js, docs/CALENDAR.md) events

새 모듈 추가 방법

  1. lib/modules.js CATALOG 에 항목(label, desc, feature, options, collections) 추가, 필요한 API 함수 작성.
  2. modules/<id>/widget.html 작성(재사용 설정 주석 포함).
  3. public/wm-modules.js 에 렌더러 추가(R.<id>), public/site-admin.js 에 관리 화면(대부분 범용 표로 충분).