Skip to content

markdown: #670 병합 후 남은 코드펜스·제목 끝 # 원문 손실 수정 #674

Open

Description

@airmang

요약

우선순위 제안: P2. #670으로 들어간 Markdown 입력에서 fenced code 본문과 공백 없이 제목에 붙은 #가 원문대로 남도록 후속 수정을 요청합니다.

확인일: 2026-11-07. 기준은 main 병합 커밋 168fe9815b769e706e25b242ad9ea5c1a1531ca8입니다. 이번 확인은 공개 소스·테스트·리뷰의 정적 대조이며, 코드 실행·독립 재현·한컴 렌더 검증은 하지 않았습니다. 아래 실제 결과는 기존 PR 리뷰의 보고와 이번 정적 추적을 구분해 적었습니다. 아직 PyPI 배포판 6.11.0의 결함이라고 주장하지 않습니다.

1. fenced code 본문이 인라인 Markdown으로 다시 해석됨

  • parse_blocks L253–262는 코드펜스의 본문을 일반 _Paragraph로 만듭니다.
  • _Writer.paragraph L372–373는 이를 write_runs에 넘기고, L341–347은 <br> 치환과 parse_inline을 실행합니다.
  • 기존 리뷰 재현은 코드펜스 안의 **literal** and [label](url)가 literal and label이 되고 굵게 서식까지 적용된다고 보고했습니다.
  • 병합 코드에도 이 경로가 남아 있습니다. 정적 추적상 코드 안 <br>도 글자 그대로가 아니라 줄바꿈으로 바뀌는 경로입니다.

2. 제목에 붙은 #가 삭제됨

  • _HEADING L186은 닫는 # 앞 공백을 필수로 요구하지 않습니다.
  • 기존 리뷰 재현은 # C#가 C, # topic#가 topic으로 바뀐다고 보고했습니다.
  • 11월 6일 후속 리뷰도 두 문제가 남았다고 기록했습니다. 11월 7일 병합 커밋의 해당 구현을 다시 대조했으며 수정 경로를 찾지 못했습니다.

제안과 수용 기준

  • 코드펜스 본문에는 평문 작성 경로 또는 별도 블록 종류를 사용하여 인라인 서식·링크·HTML 줄바꿈을 재해석하지 않습니다.
  • 코드펜스 안 **literal**, [label](url), <br>, 역슬래시·백틱·들여쓰기·빈 줄을 포함하는 합성 사례를 추가합니다. 기존 줄 끝 정규화 계약은 별도로 명시합니다.
  • 제목의 닫는 # 묶음은 문법상 필요한 앞 공백이 있을 때만 제거합니다. # C#, # topic#, # 제목 ###를 함께 검사합니다.
  • from_markdown과 doc.text.append_markdown 양쪽에서 생성 직후 및 저장·재열기 후 텍스트를 대조하고, 코드 본문에 의도하지 않은 굵게·기울임이 생기지 않는지 확인합니다.
  • 일반 Markdown 제목·강조·링크·표 칸의 <br> 동작은 유지합니다. 평문 처리를 모든 문단에 적용하는 수정은 하지 않습니다.
  • 수정 전 실패·수정 후 통과를 실제 실행으로 확인한 뒤 재현 완료로 기록합니다. open-safety 통과만으로 원문 보존이나 렌더 동일성을 판정하지 않습니다.

현재 코드 블록 테스트는 Markdown 기호 없는 code kept 사례입니다. 이 경계를 넓힐 필요가 있습니다.

중복 확인

열린·닫힌 이슈와 PR에서 markdown, markdown_import, fenced, literal, 코드 블록, 제목 관련 항목 및 최근 생성 목록을 확인했습니다. #669는 기능 요청이며 #670 병합으로 닫혔습니다. 정확한 결함은 병합된 #670의 리뷰에 이미 있으므로 새 발견으로 주장하지 않고 그 리뷰를 연결합니다. 이번 검색에서는 이를 수정하는 별도 열린 작업 이슈나 후속 PR을 찾지 못해, 병합 후 남은 원문 보존 문제를 추적하는 이슈로 등록합니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions