---
sidebar_label: "출력 형식"
title: "출력 형식 - CyberGo html | Markdown·JSON 출력"
description: "CyberGo html 출력 형식 API: ExtractToMarkdown, ExtractToJSON 패키지 함수와 Processor 메서드로 바이트나 파일을 Markdown·JSON 으로 변환합니다."
sidebar_position: 1
---

# 출력 형식

HTML 라이브러리는 추출 결과를 Markdown 또는 JSON 형식으로 출력하는 것을 지원합니다.

## Markdown 출력

HTML 콘텐츠를 추출하여 Markdown 형식으로 변환합니다. 이 메서드는 캐시가 비활성화된 임시 Processor 를 사용하며, 주 Processor 의 캐시를 읽거나 쓰지 않습니다.

### 패키지 함수

```go
func ExtractToMarkdown(htmlBytes []byte, cfg ...Config) (string, error)
func ExtractToMarkdownFromFile(filePath string, cfg ...Config) (string, error)
func ExtractToMarkdownWithContext(ctx context.Context, htmlBytes []byte, cfg ...Config) (string, error)
func ExtractToMarkdownFromFileWithContext(ctx context.Context, filePath string, cfg ...Config) (string, error)
```

### Processor 메서드

```go
func (p *Processor) ExtractToMarkdown(htmlBytes []byte) (string, error)
func (p *Processor) ExtractToMarkdownFromFile(filePath string) (string, error)
func (p *Processor) ExtractToMarkdownWithContext(ctx context.Context, htmlBytes []byte) (string, error)
func (p *Processor) ExtractToMarkdownFromFileWithContext(ctx context.Context, filePath string) (string, error)
```

### 예시

```go
cfg := html.MarkdownConfig()
md, err := html.ExtractToMarkdown(data, cfg)
if err != nil {
    log.Fatal(err)
}
fmt.Println(md)
```

## JSON 출력

추출 결과를 JSON 바이트로 직렬화합니다. 이 메서드는 주 Processor 의 일반 Extract 를 거쳐 (캐시 활성화 시 적중/기록) JSON 으로 직렬화합니다.

### 패키지 함수

```go
func ExtractToJSON(htmlBytes []byte, cfg ...Config) ([]byte, error)
func ExtractToJSONFromFile(filePath string, cfg ...Config) ([]byte, error)
func ExtractToJSONWithContext(ctx context.Context, htmlBytes []byte, cfg ...Config) ([]byte, error)
func ExtractToJSONFromFileWithContext(ctx context.Context, filePath string, cfg ...Config) ([]byte, error)
```

### Processor 메서드

```go
func (p *Processor) ExtractToJSON(htmlBytes []byte) ([]byte, error)
func (p *Processor) ExtractToJSONFromFile(filePath string) ([]byte, error)
func (p *Processor) ExtractToJSONWithContext(ctx context.Context, htmlBytes []byte) ([]byte, error)
func (p *Processor) ExtractToJSONFromFileWithContext(ctx context.Context, filePath string) ([]byte, error)
```

### 예시

```go
jsonBytes, err := html.ExtractToJSON(data)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(jsonBytes))
```

:::tip Result.MarshalJSON
`Result`는 `json.Marshaler` 인터페이스를 구현합니다. `ProcessingTime`과 `ReadingTime` 필드에는 `json:"-"` 태그가 있어 표준 직렬화에서는 건너뛰지만, 커스텀 `MarshalJSON()` 메서드를 통해 밀리초 단위로 출력에 포함됩니다.
:::
