Posts 폴더의 블로그 글을 Inblog API를 통해 발행한다. 발행할 파일을 사용자에게 선택받고, 초안(Draft) 또는 즉시 발행 여부를 확인한 후 API를 호출한다.
Blog Publish
Posts 폴더의 마크다운 블로그 글을 Inblog 플랫폼에 발행하는 스킬이다.
Process
Step 1: Posts 폴더 스캔 및 파일 선택
Glob 도구로 다음 경로의 마크다운 파일을 검색한다:
1knowledges/marketing/blog-marketing/posts/**/*.md.gitkeep은 제외하고, 발견된 마크다운 파일 목록을 AskUserQuestion으로 사용자에게 제시한다.
Q1. 발행할 파일 선택
| 옵션 | 설명 |
|---|---|
| [파일 1 경로] | [frontmatter의 title 또는 파일명] |
| [파일 2 경로] | [frontmatter의 title 또는 파일명] |
| ... | ... |
파일이 하나의 글에 대해 원본과 수정본이 있을 경우(예: 수정본_*.md), 수정본을 먼저 제시한다.
Q2. 발행 상태
| 옵션 | 설명 |
|---|---|
| Draft (Recommended) | 초안으로 저장. Inblog 대시보드에서 확인 후 수동 발행 |
| 즉시 발행 | API 호출 시 바로 공개 발행 |
Q3. Slug 지정 (선택)
| 옵션 | 설명 |
|---|---|
| 자동 생성 (Recommended) | 날짜 + 제목에서 자동으로 slug 생성 |
| 직접 입력 | 사용자가 slug를 직접 지정 (영문 소문자, 숫자, 하이픈만 허용) |
Step 2: 의존성 설치 확인
Bash 도구로 scripts/inblog/ 디렉토리에 node_modules가 존재하는지 확인하고, 없으면 설치한다:
1cd scripts/inblog && [ -d node_modules ] || npm installStep 3: 발행 스크립트 실행
Bash 도구로 scripts/inblog/publish.mjs를 실행한다:
1cd scripts/inblog && node publish.mjs "<selected-file-path>" [--published] [--slug <slug>]<selected-file-path>: Step 1에서 선택된 파일의 절대 경로--published: 즉시 발행을 선택한 경우에만 추가--slug <slug>: 사용자가 slug를 직접 입력한 경우에만 추가
Step 4: 결과 보고
API 호출 결과를 사용자에게 보고한다:
-
성공 시:
- 발행된 포스트 제목
- Slug
- 발행 상태 (Draft / Published)
- API 응답에 URL이 포함되어 있으면 함께 안내
-
실패 시:
- 에러 코드와 메시지
- 가능한 원인 안내:
- 401: API 키 확인 필요 (
scripts/inblog/.env의INBLOG_API_KEY) - 409: 동일 slug 존재 (다른 slug로 재시도 안내)
- 400: 요청 데이터 검증 실패
- 401: API 키 확인 필요 (
Prerequisites
scripts/inblog/.env파일에INBLOG_API_KEY가 설정되어 있어야 한다- Node.js 18 이상 (native fetch 사용)
Important Notes
- 공개 페이지에서 본문 정상 렌더링 확인됨. 단, Inblog 관리자 에디터(TipTap)에서는 API로 생성한 콘텐츠의 본문이 비어 보일 수 있음 (Inblog 플랫폼 제한). 공개 페이지 렌더링에는 영향 없음.
- 마크다운 본문의 로컬 이미지(상대 경로)는 자동으로 base64로 변환 → Inblog가 자체 스토리지 URL로 치환
- Frontmatter의
title과 본문 첫 번째 H1이 동일하면 H1을 제거하여 중복을 방지한다 - Frontmatter의
meta_description은 API의description과meta_description필드에 매핑된다 - Slug는 영문 소문자, 숫자, 하이픈만 허용(
^[a-z0-9-]+$)하며, 한글은 자동 제거된다 - API 엔드포인트:
https://inblog.ai/api/v1/posts(Content-Type:application/json)
Example Usage
기본 사용 (Draft)
1/blog-publish
2→ Q1: 수정본_2026-02-27-신인-보험-설계사-이탈-AI-교육-전략.md
3→ Q2: Draft
4→ Q3: 자동 생성즉시 발행 + 커스텀 Slug
1/blog-publish
2→ Q1: 2026-02-27-신인-보험-설계사-이탈-AI-교육-전략.md
3→ Q2: 즉시 발행
4→ Q3: 직접 입력 → "2026-02-27-ai-training-strategy-insurance"Quality Checklist
- Posts 폴더의 마크다운 파일이 정확히 스캔되었는가
- 사용자에게 파일 목록이 올바르게 제시되었는가
- 의존성(node_modules)이 설치되었는가
- API 키가 설정되어 있는가
- 스크립트가 올바른 인자로 실행되었는가
- 결과(성공/실패)가 사용자에게 명확히 보고되었는가