CJK 환경에서 마크다운 강조가 깨지는 이유?

by DD
5개월 전
조회수 8

CommonMark의 강조 표기법이 CJK 언어 환경에서 구두점 및 공백 처리 문제로 인해 제대로 렌더링되지 않는 문제 발생

CommonMark의 델리미터 규칙은 주변 문자를 고려하지 않아, CJK 환경의 특수한 텍스트 구조를 제대로 반영하지 못함

HTML 태그 사용, 헤어 스페이스 삽입 등의 해결책 제시, Djot과 같은 대안 마크업 언어의 등장을 통해 문제 해결 시도

CommonMark 델리미터 규칙의 기술적 한계

CommonMark는 강조 표기를 위해 델리미터 런(delimiter runs) 개념을 사용하지만, 델리미터가 좌/우측 플랭킹되는지 여부를 주변 문자만으로 판단한다. 구체적으로, CJK 환경에서 괄호나 문장 부호가 단어 내에 빈번하게 사용되면서, 델리미터 규칙이 적용되지 않아 강조 표기가 실패하는 경우가 발생한다. 따라서, 중첩된 강조를 지원하기 위한 규칙이 CJK 환경에서는 오히려 문제를 야기한다.

CJK 환경에서의 마크다운 문제점과 대안

CJK 언어는 공백의 부재 또는 구두점 사용 빈도가 높아, 기존 마크다운의 델리미터 규칙에 문제를 발생시킨다. 반면, HTML 태그를 사용하거나 헤어 스페이스(U+200A)를 삽입하는 방법으로 문제를 해결할 수 있다. 결과적으로, Djot과 같은 CJK 환경에 특화된 마크업 언어를 사용하는 것도 좋은 대안이 될 수 있다.

실무 적용 가이드: CJK 환경에서의 마크다운 활용

마크다운을 CJK 환경에서 사용할 때, 강조 표기 오류를 피하기 위해 몇 가지 전략을 고려해야 한다. 구체적으로, HTML 태그 사용을 허용하거나, 헤어 스페이스를 삽입하여 렌더링 문제를 해결할 수 있다. 따라서, CommonMark의 한계를 인지하고, Djot과 같은 대안을 검토하여 CJK 환경에 적합한 마크업 방식을 선택하는 것이 중요하다.

Why Markdown emphasis fails in CJK: A deep dive into CommonMark's delimiter rules