feat(dogfood): route .mts/.cts → typescript + .mdx → markdown #147
Reference in New Issue
Block a user
Delete Branch "feat/dogfood-routing-cts-mts-mdx"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
요약
Multi-root dogfooding 의 issue #6 —
.mts/.cts/.mdx28개 파일이skipped_by_extension으로 분류되던 것 routing 추가. 모두 기존 extractor 가 처리 가능한 변종.변경
.mts(ESM TypeScript) /.cts(CommonJS TypeScript) →MediaType::Code("typescript"). tree-sitter-typescript 0.23 의LANGUAGE_TYPESCRIPTgrammar 가 모두 처리 (.tsx만 별도LANGUAGE_TSX).code_lang_for_path+module_path_for_tsjsext-strip 도 동시 확장..mdx(Markdown + JSX) →MediaType::Markdown. md parser 가 JSX islands 를 raw passthrough 로 처리.검증
cargo test -p kebab-source-fs --lib→ 44/44 (2 신규)cargo test -p kebab-parse-code --lib→ 20/20cargo test -p kebab-parse-code --test lang→ 4/4 (assertion 2개 확장)cargo clippy -p kebab-source-fs -p kebab-parse-code --all-targets -- -D warningsclean영향
다음 dogfood 후보
🤖 Generated with Claude Code
회차 1 — APPROVE (no action items)
도그푸딩에서 발견된 28개 파일의
skipped_by_extension문제를 정확히 수정한 PR입니다.검증 항목
media.rs—"mts" | "cts"를 TypeScript 아암에,"mdx"를 Markdown 아암에 추가. 두 신규 테스트(ts_variants_mts_cts,mdx_routes_to_markdown) 모두 의도에 맞게 작성됨.lang.rs::code_lang_for_path—"mts" | "cts"를 기존"ts" | "tsx"아암에 자연스럽게 합류.lang.rs::module_path_for_tsjs— strip 리스트에.mts/.cts를.ts앞에 배치. 순서가 결정적으로 중요한데 올바름 확인:a/b.mts가.mts에 먼저 매칭되어a/b로 스트립되고,.ts가 먼저 오면a/b.m이 남는 버그가 발생했을 것.typescript.rs::select_grammar— 로직 변경 없음. doc-comment 에.mts/.cts를 명시하고 tree-sitter-typescript 0.23 에서 단일 grammar 임을 기술. 적절.tests/lang.rs—known_extensions_map_to_canonical_identifiers에 2 케이스 추가.테스트 결과
kebab-source-fs --lib: 44/44 pass (회귀 없음)kebab-parse-code --lib: 20/20 passkebab-parse-code --test lang: 4/4 passclippy -p kebab-source-fs -p kebab-parse-code --all-targets -D warnings: clean크로스커팅 확인
.mdx를 Markdown 으로 라우팅할 때 pulldown-cmark 의 JSX 처리 방식을 직접 확인: 이벤트 워커의 catch-all_ => {}(blocks.rs:1103–1105) 가Html이벤트를 "dropped silently per design §3.4" 로 처리. catch_unwind 가중 적용됨. 패닉 위험 없음.kebab-source-fs,kebab-parse-code두 크레이트만. 새 의존성 없음.소규모 수술적 수정으로 완성도 높음. 즉시 머지 가능합니다.