Skip to content

업데이트 로그: 버전 기록 및 변경 사항

학습 후 할 수 있는 것

  • 플러그인의 버전 진화 과정 추적
  • 각 버전의 새로운 기능 및 수정 사항 이해
  • 알려진 제한 사항 및 기술 세부사항 파악
  • 향후 기능 향상 가능성 이해

[0.1.0] - 2025-01-07

새로운 기능

이것은 opencode-md-table-formatter의 초기 릴리스 버전으로, 다음 핵심 기능이 포함되어 있습니다:

  • 자동 테이블 포맷팅: experimental.text.complete 훅을 통해 AI가 생성한 Markdown 테이블을 자동으로 포맷팅
  • 숨김 모드 지원: 너비를 계산할 때 숨겨진 Markdown 기호(**, * 등)를 올바르게 처리
  • 중첩 Markdown 처리: 다중 패스 스트리핑 알고리즘을 사용하여 임의 깊이의 중첩 Markdown 구문 지원
  • 코드 블록 보호: 인라인 코드(`code`) 내의 Markdown 기호는 리터럴 형식으로 유지되며 너비 계산에 참여하지 않음
  • 정렬 방식 지원: 왼쪽 정렬(--- 또는 :---), 가운데 정렬(:---:), 오른쪽 정렬(---:) 지원
  • 너비 캐싱 최적화: 문자열 표시 너비 계산 결과를 캐싱하여 성능 향상
  • 유효하지 않은 테이블 검증: 테이블 구조를 자동으로 검증하고 유효하지 않은 테이블에 오류 주석 추가
  • 다중 문자 지원: Emoji, Unicode 문자, 빈 셀, 초과 길이 콘텐츠 지원
  • 조용한 오류 처리: 포맷팅 실패가 OpenCode 워크플로우를 중단하지 않음

기술 세부사항

이 버전은 약 230줄의 프로덕션 준비된 TypeScript 코드를 포함합니다:

  • 12개 함수: 명확한 책임과 잘 분리된 구조
  • 타입 안전성: Hooks 인터페이스를 올바르게 사용
  • 스마트 캐시 정리: 작업 수가 100회를 초과하거나 캐시 항목이 1000개를 초과할 때 정리 트리거
  • 다중 패스 정규식 처리: 임의 중첩 깊이의 Markdown 기호 스트리핑 지원

캐싱 메커니즘

캐시는 반복 콘텐츠의 너비 계산을 최적화하도록 설계되었습니다. 예를 들어, 테이블에서 동일한 셀 텍스트가 여러 번 나타나는 경우 너비는 한 번만 계산되며 이후에는 캐시에서 직접 읽습니다.

알려진 제한 사항

이 버전은 다음 시나리오를 지원하지 않습니다:

  • HTML 테이블: Markdown 파이프 테이블(Pipe Table)만 지원
  • 다중 행 셀: <br> 태그를 포함하는 셀은 지원하지 않음
  • 구분선 없는 테이블: 테이블이 구분선(|---|)을 포함해야 포맷팅됨
  • 종속성 요구사항: @opencode-ai/plugin >= 0.13.7 필요(공개되지 않은 experimental.text.complete 훅 사용)

버전 요구사항

플러그인은 OpenCode >= 1.0.137 및 @opencode-ai/plugin >= 0.13.7이 필요합니다.


향후 계획

다음 기능은 향후 버전에서 구현될 예정입니다:

  • 구성 옵션: 사용자 정의 최소/최대 열 너비, 특정 기능 비활성화 지원
  • 헤더 없는 테이블 지원: 헤더 행이 없는 테이블 포맷팅
  • 성능 최적화: 대규모 테이블(100+ 행)에 대한 성능 분석 및 최적화
  • 추가 정렬 옵션: 정렬 방식의 구문 및 기능 확장

기여하기

기능 제안이 있거나 코드를 기여하고 싶다면 GitHub Issues에서 아이디어를 제출해 주세요.


변경 기록 형식 설명

이 프로젝트의 업데이트 로그는 Keep a Changelog 형식을 따르며, 버전 번호는 시맨틱 버전 관리(Semantic Versioning)을 따릅니다.

버전 번호 형식: MAJOR.MINOR.PATCH

  • MAJOR: 호환되지 않는 API 변경
  • MINOR: 호환되는 새로운 기능
  • PATCH: 호환되는 문제 수정

변경 유형:

  • Added: 새로운 기능
  • Changed: 기존 기능의 변경
  • Deprecated: 곧 제거될 기능
  • Removed: 제거된 기능
  • Fixed: 문제 수정
  • Security: 보안 관련 수정

권장 읽기 순서

새로운 사용자라면 다음 순서대로 학습하는 것을 권장합니다:

  1. 1분 빠른 시작: 설치 및 구성 — 빠르게 시작하기
  2. 기능 개요: 자동 포맷팅의 마법 — 핵심 기능 이해
  3. 자주 묻는 질문: 테이블이 포맷팅되지 않는 문제 해결 — 문제 해결
  4. 알려진 제한 사항: 플러그인의 경계는 어디까지인가 — 제한 사항 이해