Files
CTStruct/ctstruct/types.py
gm 6e3cd19b55 feat: initial CTStruct framework
- CTNode: 트리 기본 단위 (전위/후위/BFS 순회, 탐색, 분리)
- CTTree: 트리 컨테이너 (빌더 API, TOC, filter/map/merge)
- NodeType: 구조/블록/인라인/메타 노드 타입 Enum
- MarkdownParser: Markdown → CTTree 파서
- MarkdownRenderer: CTTree → Markdown 렌더러
- JSONRenderer: CTTree → JSON 직렬화
- 27개 단위/통합 테스트 전체 통과
2026-05-30 20:40:28 +09:00

56 lines
2.0 KiB
Python

"""
ctstruct/types.py
노드 타입 정의 모듈
"""
from enum import Enum, auto
class NodeType(Enum):
"""CTStruct 트리 노드 타입 정의."""
# ── 구조 노드 ────────────────────────────────────────────
ROOT = auto() # 트리의 최상위 루트
DOCUMENT = auto() # 문서 단위
SECTION = auto() # 섹션 (헤딩 + 하위 내용 묶음)
# ── 블록 노드 ────────────────────────────────────────────
HEADING = auto() # 제목 (level 1~6)
PARAGRAPH = auto() # 문단
LIST = auto() # 목록 컨테이너 (ordered / unordered)
LIST_ITEM = auto() # 목록 항목
TABLE = auto() # 표 컨테이너
TABLE_ROW = auto() # 표 행
TABLE_CELL = auto() # 표 셀
CODE_BLOCK = auto() # 코드 블록
BLOCKQUOTE = auto() # 인용구
DIVIDER = auto() # 구분선
# ── 인라인 노드 ──────────────────────────────────────────
TEXT = auto() # 순수 텍스트
BOLD = auto() # 굵게
ITALIC = auto() # 기울임
CODE = auto() # 인라인 코드
LINK = auto() # 하이퍼링크
IMAGE = auto() # 이미지
# ── 메타 노드 ────────────────────────────────────────────
METADATA = auto() # 문서 메타데이터 (frontmatter 등)
ANNOTATION = auto() # 주석 / 노트
CUSTOM = auto() # 사용자 정의 확장 노드
class ListStyle(Enum):
"""목록 스타일."""
UNORDERED = "unordered"
ORDERED = "ordered"
TASK = "task"
class Alignment(Enum):
"""표 셀 정렬."""
LEFT = "left"
CENTER = "center"
RIGHT = "right"
NONE = "none"