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 install

Step 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/.envINBLOG_API_KEY)
      • 409: 동일 slug 존재 (다른 slug로 재시도 안내)
      • 400: 요청 데이터 검증 실패

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의 descriptionmeta_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 키가 설정되어 있는가
  • 스크립트가 올바른 인자로 실행되었는가
  • 결과(성공/실패)가 사용자에게 명확히 보고되었는가