""" 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" class DataType(Enum): """ CTNode.value 의 자료형 힌트. 파서·렌더러가 값을 해석할 때 참조하는 타입 태그입니다. 추후 타입이 추가될 수 있으며, 미지정 시 UNSET 을 사용합니다. """ UNSET = "unset" # 자료형 미지정 (기본값) # ── 스칼라 ──────────────────────────────────────────────── STRING = "string" # 문자열 INTEGER = "integer" # 정수 FLOAT = "float" # 부동소수점 BOOLEAN = "boolean" # 참/거짓 NULL = "null" # 빈 값 # ── 날짜/시간 ───────────────────────────────────────────── DATE = "date" # 날짜 (YYYY-MM-DD) DATETIME = "datetime" # 날짜+시간 (ISO 8601) TIME = "time" # 시간 (HH:MM:SS) # ── 컬렉션 ──────────────────────────────────────────────── LIST = "list" # 배열/목록 DICT = "dict" # 키-값 맵 SET = "set" # 집합 # ── 텍스트 특화 ─────────────────────────────────────────── MARKDOWN = "markdown" # Markdown 서식 문자열 HTML = "html" # HTML 서식 문자열 JSON = "json" # JSON 직렬화 문자열 CODE = "code" # 소스 코드 문자열 # ── 확장 ────────────────────────────────────────────────── CUSTOM = "custom" # 사용자 정의 타입