'use strict'; // 사용자 입력과 첨부 파일 정보를 Claude 에 전달할 프롬프트로 정리한다. const { humanSize } = require('./uploads'); const fs = require('fs'); const path = require('path'); const WIDGET_TPL = fs.readFileSync(path.join(__dirname, '..', 'templates', 'contact-widget.html'), 'utf8'); const sitemsg = require('./sitemsg'); /** * 표준 문의 위젯 코드 (사이트별 엔드포인트 삽입). * v1.3.16: 화면 글자는 코드에 두지 않고 시스템 문구 카탈로그(lib/sitemsg)에서 사이트 언어(lang)로 채운다. * @param {string} [lang] 사이트 본문(기본) 언어 — 다국어 사이트는 기본 언어, 다른 언어 페이지는 번역 단계에서 바뀐다 */ function contactWidget(site, kind = 'contact', endpointBase, lang = 'ko') { const endpoint = `${String(endpointBase || '').replace(/\/$/, '')}/api/forms/${site.id}/contact`; const t = sitemsg.forLang(lang); return sitemsg.renderTemplate(WIDGET_TPL.replace(/{{ENDPOINT}}/g, endpoint).replace(/{{SITE_ID}}/g, site.id).replace(/{{KIND}}/g, kind).replace(/{{MESSAGE_LABEL}}/g, t(kind === 'booking' ? 'contact.bookingMessageLabel' : 'contact.messageLabel')).replace(/{{BUTTON_LABEL}}/g, t(kind === 'booking' ? 'contact.bookingButton' : 'inquiry.button')), lang); } function widgetSection(site, endpointBase, opts = {}) { if (!site || !endpointBase) return ''; return `[문의·예약 접수 표준 위젯 — 반드시 이 코드 그대로 사용] 문의, 상담 신청, 예약 접수 등 사용자가 내용을 보내는 폼은 mailto: 링크나 임의의
을 만들지 말고 아래 표준 위젯 코드를 그대로 붙여 넣습니다(사이트 안에서 메일이 발송됩니다). data-* 속성과