feat: 도구 쇼케이스 페이지 + 네이버 블로그 AI 자동화 툴
- 사이드바 "이베이 부품 검색" → "여긴 뭐 만들어요?" (DEMO 배지, /tools) - /tools 쇼케이스: 완성형 레퍼런스 데모 카드 그리드 + 상담 CTA - /tools/naver-blog: 주제·키워드·형식·톤·분량 선택 → AI 블로그 글 자동 생성 - 결과 3탭 (글 미리보기·SEO 정보·이미지 가이드) + 전체 복사 - Claude API 연동 SEO 최적화 프롬프트 + fallback 지원 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
61
lib/blog-tools/types.ts
Normal file
61
lib/blog-tools/types.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
export interface BlogRequest {
|
||||
topic: string;
|
||||
keywords: string[];
|
||||
style: BlogStyle;
|
||||
tone: BlogTone;
|
||||
length: BlogLength;
|
||||
imageGuide: boolean;
|
||||
sections: number;
|
||||
}
|
||||
|
||||
export type BlogStyle =
|
||||
| 'informational' // 정보 전달
|
||||
| 'review' // 리뷰/후기
|
||||
| 'howto' // 방법/튜토리얼
|
||||
| 'listicle' // 리스트형
|
||||
| 'comparison' // 비교 분석
|
||||
| 'story'; // 에세이/스토리
|
||||
|
||||
export type BlogTone =
|
||||
| 'professional' // 전문적
|
||||
| 'friendly' // 친근한
|
||||
| 'casual' // 캐주얼
|
||||
| 'formal'; // 격식체
|
||||
|
||||
export type BlogLength =
|
||||
| 'short' // 800~1200자
|
||||
| 'medium' // 1500~2500자
|
||||
| 'long'; // 3000~4500자
|
||||
|
||||
export interface BlogResult {
|
||||
success: true;
|
||||
data: {
|
||||
title: string;
|
||||
subtitle: string;
|
||||
content: BlogSection[];
|
||||
tags: string[];
|
||||
seoTitle: string;
|
||||
seoDescription: string;
|
||||
imageGuides: ImageGuide[];
|
||||
meta: {
|
||||
charCount: number;
|
||||
sectionCount: number;
|
||||
estimatedReadTime: string;
|
||||
generatedAt: string;
|
||||
model: string;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export interface BlogSection {
|
||||
heading: string;
|
||||
body: string;
|
||||
imageSlot?: boolean;
|
||||
}
|
||||
|
||||
export interface ImageGuide {
|
||||
position: string;
|
||||
description: string;
|
||||
searchKeyword: string;
|
||||
altText: string;
|
||||
}
|
||||
Reference in New Issue
Block a user