@roottale/cms-mcp 0.57.0 → 0.58.0

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # @roottale/cms-mcp
2
2
 
3
+ ## 0.58.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 28ef875: 콘텐츠 모델 `editor` 옵션 2개 추가 — `layout: "guided"`(ROOT-ADMIN 편집기를 분류 → 제목 →
8
+ 요약 → 본문 → 커스텀 필드 순 한 열로 배치, FAQ용)와 `requiredFields: ["excerpt"]`(요약이 비면
9
+ 발행·예약 차단, 초안 저장은 허용). 저장 구조와 공개 API 응답은 바뀌지 않는다. 문서:
10
+ `content-models-and-exposures.md` "코드로 배포하는 모델은 `editor`에서…" 절.
11
+ - dd82c92: 공통 블록 표시 형태(presentation) — 블록의 모양(본문처럼/카드·배경색·링크 버튼·버튼 색)을 어드민이
12
+ 정해 공개 API `presentation` 으로 내려준다. 사이트는 색·모양을 CSS 에 고정하지 않는다.
13
+ - `@roottale/cms-core`: `readSitePatternPresentation`·`sitePatternPresentationAttributes`·
14
+ `DEFAULT_SITE_PATTERN_PRESENTATION`.
15
+ - `@roottale/cms-client`: `CmsSitePattern.presentation`(구 서버는 기본값), `sitePatternPresentationAttributes`
16
+ (래퍼 data 속성 + `--rt-pattern-bg`·`--rt-pattern-btn-n` CSS 변수).
17
+ - `@roottale/cms-renderer-next`: `RootTaleBlogPost`·`RootTalePostPattern` 이 data 속성·변수를 얹고,
18
+ `cms-public.css` 가 카드/버튼 모양을 그 값으로만 그린다.
19
+
3
20
  ## 0.57.0
4
21
 
5
22
  ### Minor Changes
package/dist/index.js CHANGED
@@ -1559,7 +1559,7 @@ function registerTools(server) {
1559
1559
  }
1560
1560
 
1561
1561
  // src/server.ts
1562
- var VERSION = true ? "0.57.0" : "dev";
1562
+ var VERSION = true ? "0.58.0" : "dev";
1563
1563
  var SERVER_INSTRUCTIONS = `
1564
1564
  roottale-cms-mcp\uB294 RootTale CMS\uB97C \uC678\uBD80 \uC0AC\uC774\uD2B8(\uC8FC\uB85C Next.js)\uC5D0 \uC5F0\uB3D9\uD558\uACE0
1565
1565
  \uAE00\xB7\uC378\uB124\uC77C\xB7\uBCF8\uBB38 \uC774\uBBF8\uC9C0\uB97C \uC790\uB3D9\uD654\uD558\uAE30 \uC704\uD55C \uBB38\uC11C\xB7\uC608\uC2DC \uCF54\uB4DC\xB7API tool\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
@@ -457,10 +457,15 @@ settings.siteProfile.defaultOgImageUrl` 순으로 우선합니다. `logo_url`·
457
457
  { "tenant_id": "…", "site_id": "…",
458
458
  "patterns": [ { "id": "…", "key": "clinic-guide", "name": "병원 안내",
459
459
  "description": "글 하단 공통 안내", "body_json": { "type": "doc", "content": [ … ] },
460
+ "presentation": { "layout": "card", "background": "#f8f9fa",
461
+ "link_style": "buttons", "button_colors": ["#03c75a", "#1a1a1a", "#666666"] },
460
462
  "status": "published", "updated_at": "…" } ] }
461
463
  ```
462
464
 
463
465
  - 자리 key: `post_footer`(글 하단, 본문 바로 아래). 새 자리는 문서와 함께 추가됩니다.
466
+ - `presentation` = 어드민이 정한 표시 형태(`layout` plain|card, `background` hex, `link_style`
467
+ text|buttons, `button_colors` hex 순서 — 마지막 문단의 링크에 차례로, 모자라면 마지막 색 반복).
468
+ 사이트는 이 값을 래퍼의 data 속성·CSS 변수로 옮겨 그리고, 색·모양을 따로 고정하지 않습니다.
464
469
  - 캐시: `Cache-Control: private, max-age=10`. 어드민에서 블록·배치 규칙을 저장하면
465
470
  `theme.updated` 웹훅이 오므로 설정류 캐시와 함께 지우세요(`revalidation-webhooks.md`).
466
471
 
@@ -173,6 +173,26 @@ ROOT-ADMIN은 발행·예약 시 선언한 깊이의 말단 분류인지 다시
173
173
  `categoryLevels`의 개수는 `categoryDepth`와 같아야 합니다. 최종 선택에서는 말단
174
174
  분류 ID 하나만 기존 카테고리 관계로 저장됩니다.
175
175
 
176
+ FAQ처럼 **요약이 본문보다 앞서고 분류가 주소를 정하는 모델**은 `editor.layout`을
177
+ `"guided"`로 두면 ROOT-ADMIN 편집 화면이 작성 순서 한 열로 바뀝니다 — 분류 →
178
+ 제목 → 요약 → 본문 → 커스텀 필드. 주소·검색결과·공유 이미지·표시 옵션은 "공개
179
+ 설정" 한 곳으로 접히고, 오른쪽 발행 설정에는 작성자·태그만 남습니다. 생략하거나
180
+ `"default"`면 일반 글 배치(제목 → 본문 → 발행 설정 → 검색·공유 설정)입니다.
181
+ `editor.requiredFields`에 `"excerpt"`를 적으면 요약이 비어 있을 때 발행·예약을
182
+ 막고(초안 저장은 됩니다) 편집기에 필수 표시(`*`)를 붙입니다. 제목은 항상 필수라
183
+ 적지 않습니다. 저장 구조·공개 API 응답은 두 옵션 모두 바꾸지 않습니다.
184
+
185
+ ```json
186
+ {
187
+ "editor": {
188
+ "layout": "guided",
189
+ "requiredFields": ["excerpt"],
190
+ "labels": { "title": "질문", "excerpt": "요약 답변", "body": "상세 답변" },
191
+ "categoryLevels": ["영역", "질환"]
192
+ }
193
+ }
194
+ ```
195
+
176
196
  관계형 커스텀 필드는 `postType`과 함께 `modelKey`를 지정하면 선택 대상을 같은
177
197
  콘텐츠 모델로 좁힐 수 있습니다. 예를 들어 `relationship` 필드에
178
198
  `"postType": "post", "modelKey": "faq"`를 선언하면 관련 FAQ만 표시됩니다.
@@ -177,6 +177,13 @@ import { RootTalePostPattern } from "@roottale/cms-renderer-next/server";
177
177
  <RootTalePostPattern apiKey={apiKey} post={post} />
178
178
  ```
179
179
 
180
+ 블록의 **표시 형태**(`presentation`: `layout` 본문처럼/카드, `background` 카드 배경색,
181
+ `linkStyle` 글자/버튼, `buttonColors` 버튼 색 순서)도 어드민이 정해 내려줍니다. 사이트
182
+ CSS 에 색·모양을 고정하지 말고 `sitePatternPresentationAttributes(pattern.presentation)`
183
+ 가 주는 data 속성(`data-pattern-layout`, `data-pattern-link-style`)과 CSS 변수
184
+ (`--rt-pattern-bg`, `--rt-pattern-btn-1..n`)를 래퍼에 얹은 뒤 그 값만 읽으세요.
185
+ `RootTaleBlogPost`·`RootTalePostPattern` 은 이미 그렇게 그립니다.
186
+
180
187
  블록 목록은 `rt-site-patterns` 캐시 이름표를 가지며, 어드민에서 블록·배치 규칙을
181
188
  저장하면 `theme.updated` 웹훅이 다른 설정과 함께 지웁니다(`createRevalidateRoute`
182
189
  에 `revalidateTag` 주입 필요 — 위 "저장 즉시 반영" 참고). 미발행·삭제된 블록은
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roottale/cms-mcp",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "type": "module",
5
5
  "description": "RootTale CMS MCP server and CLI for models, entries, exposures, media, integration docs, and public API access.",
6
6
  "bin": {