spark11 downloadsEnables D2Coding programming ligatures (->, =>, !=, <=, >=) in Hangul context, including headings, by fixing the theme letter-spacing that disables ligatures.
한글 문맥에서 프로그래밍 ligature(결합 문자)가 표시되지 않는 문제를 해결하는 Obsidian 플러그인입니다.
D2Coding에서는 ->, =>, !=, <=, >= 같은 programming ligature가 지원됩니다. 하지만 Obsidian 기본 설정에서는 일부 헤딩에서 이 ligature가 표시되지 않습니다. 그 원인은 테마가 헤딩에 적용하는 letter-spacing 때문입니다. Chromium 렌더러는 letter-spacing이 0이 아닌 요소에서 OpenType ligature(feature liga)를 비활성화하기 때문입니다.
이 플러그인은 헤딩의 letter-spacing을 normal로 되돌려 헤딩에서도 ligature가 정상 렌더링되도록 하는 CSS-only 플러그인입니다.
letter-spacing을 normal로 보정하여 ligature가 비활성화되는 문제(LIGA-CSS-001)를 해결합니다.Obsidian → Settings → Community plugins → Browse → D2 LigaFix 검색 → Install → Enable.
수동 설치는
manifest.json,main.js,styles.css를.obsidian/plugins/dcoding-ligafix/폴더에 복사하고 플러그인을 활성화합니다.
이 플러그인은 폰트 파일을 포함하지 않으며 파생 폰트를 직접 배포하지 않습니다. NAVER 원본(D2Coding)에서 다운로드한 뒤 converter로 D2_LigaFix 파생 폰트를 만들어 설치합니다. 폰트가 설치되어 있어야 ligature가 표시됩니다.
D2Coding-Ver1.3.3-*.zipconverter/ 폴더에서 아래 명령을 실행해 파생 폰트를 생성합니다 (Python 3.10+ 필요).pip install fonttools
python converter/build_d2_ligafix.py --archive <다운로드한 ZIP 경로>
out/D2_LigaFix-Regular.ttf, out/D2_LigaFix-Bold.ttfglyf/loca/hmtx/cmap)이 원본과 동일함을 확인한 뒤에만 폰트를 내보냅니다.아래를 그대로 입력해 보세요. 모든 줄이 ligature(결합된 화살표 등)로 보여야 합니다.
한 -> 한
한 1 -> 한
한 _ -> 한
a -> a
x => y
a != b
이 저장소는 Obsidian 플러그인과 함께 D2Coding ligature 폰트를 만드는 converter도 포함하고 있습니다.
converter/): D2Coding ligature 폰트에 DFLT/dflt liga route를 추가해 D2_LigaFix-*.ttf를 만드는 Python-only converter.converter/verify_structure.py): 폰트 구조·해시를 검증하는 도구.converter 사용 방법은 위 폰트 설치 가이드를 참고하세요. 플러그인 자체는 위의 설치 방법만으로 동작합니다.
D2Coding)과의 충돌을 피하기 위해 파생 폰트는 D2_LigaFix family name을 사용합니다.