@roottale/cms-renderer-next 0.40.0 → 0.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +78 -0
- package/README.md +6 -3
- package/dist/chunk-GOHP7RWD.js +1647 -0
- package/dist/chunk-GOHP7RWD.js.map +1 -0
- package/dist/chunk-IOYBEH6E.js +271 -0
- package/dist/chunk-IOYBEH6E.js.map +1 -0
- package/dist/cms-public.css +243 -2
- package/dist/routes.d.ts +13 -2
- package/dist/routes.js +12 -1
- package/dist/routes.js.map +1 -1
- package/dist/server.d.ts +24 -3
- package/dist/server.js +8 -3
- package/dist/templates.css +238 -7
- package/dist/templates.d.ts +414 -94
- package/dist/templates.js +63 -347
- package/dist/templates.js.map +1 -1
- package/dist/theme-css-vars-BiyHBsJG.d.ts +7 -0
- package/dist/validate.d.ts +90 -0
- package/dist/validate.js +415 -0
- package/dist/validate.js.map +1 -0
- package/package.json +10 -4
- package/dist/chunk-3JUIHMPP.js +0 -1057
- package/dist/chunk-3JUIHMPP.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,83 @@
|
|
|
1
1
|
# @roottale/cms-renderer-next
|
|
2
2
|
|
|
3
|
+
## 0.41.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 3810879: Add Turnstile-aware inquiry submission fields, rate-limit error handling, and docs for protected lead intake.
|
|
8
|
+
- Updated dependencies [3810879]
|
|
9
|
+
- @roottale/cms-client@0.41.1
|
|
10
|
+
|
|
11
|
+
## 0.41.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 3768f72: FAQ 블록 — `<details>` 아코디언 + FAQPage 구조화데이터(JSON-LD).
|
|
16
|
+
|
|
17
|
+
어드민 에디터의 FAQ 블록(`roottale/faq` → faqItem/faqQuestion/faqAnswer)이
|
|
18
|
+
발행되면 `RootTaleBlogPost`가 자동으로:
|
|
19
|
+
- `<details class="rt-cms-faq-item"><summary class="rt-cms-faq-q">…</summary>
|
|
20
|
+
<div class="rt-cms-faq-a">…</div></details>` 아코디언(0 JS)으로 렌더하고,
|
|
21
|
+
- 글 단위 `FAQPage` JSON-LD(`<script type="application/ld+json">`)를 1개 삽입한다.
|
|
22
|
+
|
|
23
|
+
추가 연동/키 불필요 — 기존 단일 API 키 위에서 동작하며, 업그레이드 시 기존 글에도
|
|
24
|
+
FAQ 블록이 있으면 즉시 반영된다. `@roottale/cms-core` 에 추출 유틸
|
|
25
|
+
`extractFaqEntries(doc)` / `faqPageJsonLd(entries)` 추가(렌더러 공유). 스타일은
|
|
26
|
+
`cms-public.css` 의 `.rt-cms-faq*` 클래스로 테마 토큰을 따른다.
|
|
27
|
+
|
|
28
|
+
- e8b1d33: 관련 글(related posts) — 글 하단에 같은 카테고리 최근 글 노출.
|
|
29
|
+
|
|
30
|
+
`RootTaleBlogPost`에 옵션 추가:
|
|
31
|
+
- `relatedPostsCount`(기본 0 = off — 기존 마크업 보존), `relatedPostsTitle`(기본
|
|
32
|
+
"관련 글"), `postHref` / `collections`(링크 라우팅, 목록과 동일 규칙).
|
|
33
|
+
- 켜면 같은 **카테고리**를 1개 이상 공유하는 최근 글을 N개 `<nav
|
|
34
|
+
class="rt-cms-related">` 로 렌더(현재 글 제외, 발행일 내림차순). 현재 글에
|
|
35
|
+
카테고리가 없거나 후보가 없으면 렌더되지 않는다.
|
|
36
|
+
|
|
37
|
+
`@roottale/cms-client` 에 순수 헬퍼 `selectRelatedPosts(current, candidates,
|
|
38
|
+
limit)` 추가(서버 카테고리 필터가 없어 최근 글 배치에서 선별). 스타일은
|
|
39
|
+
`cms-public.css` 의 `.rt-cms-related*` 클래스(테마 토큰 기반).
|
|
40
|
+
|
|
41
|
+
- 9f246f4: 목차(TOC) 사이드바 배치 opt-in — 넓은 화면에서 본문 오른쪽 sticky 목차.
|
|
42
|
+
|
|
43
|
+
블로그 설정 `toc_position`(`"inline"` | `"sidebar"`) 추가. 기본은 기존과 동일한
|
|
44
|
+
`"inline"`(본문 위 접이식). `"sidebar"` 선택 시:
|
|
45
|
+
- 넓은 화면(본문 컬럼 ≥ 60rem)에서 본문 오른쪽에 스크롤을 따라오는 sticky 목차.
|
|
46
|
+
- 좁은 화면은 CSS 컨테이너 쿼리로 자동 인라인(본문 위)로 폴백 — 마크업 동일.
|
|
47
|
+
- 뷰포트가 아닌 **본문 컬럼 폭** 기준(`@container`)이라 임베드 위치·주변
|
|
48
|
+
레이아웃과 무관하게 안전.
|
|
49
|
+
|
|
50
|
+
`RootTaleBlogPost`는 배치를 자동 반영하므로 고객 연동 코드 변경은 불필요.
|
|
51
|
+
`RootTaleBlogSettings` / `ResolvedPostDisplay` 에 `tocPosition` 필드 추가
|
|
52
|
+
(cms-client). 어드민 "블로그 설정 → 목차 위치" 에서 선택.
|
|
53
|
+
|
|
54
|
+
공개 API `GET /v1/cms/public/blog-settings` 응답에 `toc_position` 필드 추가
|
|
55
|
+
(cms-mcp api-reference 문서 동반 갱신).
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- 8838c24: 블로그 본문 조판 개선 — 균일 measure · 한글 줄바꿈 · 리스트 마커 (`cms-public.css`).
|
|
60
|
+
- **균일 읽기 폭(measure)**: 기존엔 `max-inline-size: 72ch` 가 문단(`p`)에만
|
|
61
|
+
걸려 리스트/제목/표는 컬럼 풀폭으로 퍼져 줄바꿈 폭이 어긋났다. 이제
|
|
62
|
+
`.rt-cms-body > *`(모든 최상위 블록)에 동일 measure 적용 → 문단·리스트·제목·표·FAQ
|
|
63
|
+
가 같은 폭에서 줄바꿈. 목차(`.rt-cms-toc`)도 같은 폭으로 정렬.
|
|
64
|
+
- **한글 어절 줄바꿈**: `.rt-cms-body` 에 `word-break: keep-all` +
|
|
65
|
+
`overflow-wrap: anywhere`. CJK 기본값(`normal`)이 어절 중간에서 줄을 끊던
|
|
66
|
+
문제를 어절 단위로 교정(긴 URL·토큰만 anywhere). `pre`(코드)는 예외.
|
|
67
|
+
- **리스트 마커 복원**: 고객 사이트 CSS 리셋(Tailwind Preflight 등)이
|
|
68
|
+
`list-style` 을 지워 불릿/번호가 사라지던 문제 복원(`ul→disc / ol→decimal`,
|
|
69
|
+
중첩 `circle`·`square`).
|
|
70
|
+
|
|
71
|
+
`cms-renderer-next/src/styles/cms-public.css` 한 파일 변경. 어드민 에디터
|
|
72
|
+
(`.tiptap-content`)에도 동일 규칙을 적용해 WYSIWYG 파리티 유지(에디터 FAQ 도
|
|
73
|
+
공개 아코디언과 같은 시각 언어).
|
|
74
|
+
|
|
75
|
+
- Updated dependencies [3768f72]
|
|
76
|
+
- Updated dependencies [e8b1d33]
|
|
77
|
+
- Updated dependencies [9f246f4]
|
|
78
|
+
- @roottale/cms-core@0.41.0
|
|
79
|
+
- @roottale/cms-client@0.41.0
|
|
80
|
+
|
|
3
81
|
## 0.40.0
|
|
4
82
|
|
|
5
83
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -148,9 +148,10 @@ export default function ContactPage() {
|
|
|
148
148
|
<main>
|
|
149
149
|
<h1>진단 신청</h1>
|
|
150
150
|
<RootTaleLeadForm
|
|
151
|
-
action="
|
|
151
|
+
action="/api/inquiry"
|
|
152
152
|
vertical="tax"
|
|
153
153
|
redirectUrl="https://kjmtax.roottale.app/contact"
|
|
154
|
+
turnstileSiteKey={process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY}
|
|
154
155
|
heading="무료 진단 신청"
|
|
155
156
|
description="평일 기준 1-2 영업일 내에 회신드립니다."
|
|
156
157
|
/>
|
|
@@ -159,7 +160,9 @@ export default function ContactPage() {
|
|
|
159
160
|
}
|
|
160
161
|
```
|
|
161
162
|
|
|
162
|
-
The form submits via HTML POST (no JS,
|
|
163
|
+
The form submits via HTML POST (no custom JS). In a Next.js site, point `action` to a route handler that calls `submitInquiry`; the starter app uses `/api/inquiry`. After insert, tenant-api redirects back to `redirectUrl` with `?ok=1` (or `?err=<reason>`). The API checks the URL against its `LEAD_INTAKE_ALLOWED_ORIGINS` env — if you skip `redirectUrl`, it falls back to `LEAD_INTAKE_REDIRECT_BASE`.
|
|
164
|
+
|
|
165
|
+
`turnstileSiteKey` renders the Cloudflare Turnstile widget. Set the matching tenant-api secret as `LEAD_INTAKE_TURNSTILE_SECRET_KEY`.
|
|
163
166
|
|
|
164
167
|
### vertical-specific behavior
|
|
165
168
|
|
|
@@ -172,7 +175,7 @@ The form submits via HTML POST (no JS, no `fetch`). After insert, the admin 302s
|
|
|
172
175
|
|---|---|
|
|
173
176
|
| `RootTaleBlogList` | RSC — fetches `/v1/cms/public/posts?type=post` and renders an `<ul>`. |
|
|
174
177
|
| `RootTaleBlogPost` | RSC — fetches one post, renders Tiptap doc + optional TOC. |
|
|
175
|
-
| `RootTaleLeadForm` | RSC — HTML form
|
|
178
|
+
| `RootTaleLeadForm` | RSC — HTML form for `/v1/public/inquiries` forward routes. |
|
|
176
179
|
| `RootTalePostCard` | Single card primitive (used internally by `RootTaleBlogList`). |
|
|
177
180
|
| `RootTaleTableOfContents` | Standalone TOC (heading list). |
|
|
178
181
|
| `RootTaleFloatingCta` | Floating CTA buttons. |
|