[ BUG ] --insert writes LF line endings into a file with CRLF line endings
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 80/100
Hướng nghiên cứu
Bắt đầu với internal/core/usecase/insertmd/markers.go và theo dõi cách replaceBetweenMarkers xử lý ký tự kết thúc dòng; issue cũng nói quy tắc tương tự áp dụng cho --stdout (#95). Tái hiện bằng đầu vào CRLF được cung cấp, sau đó kiểm tra rằng các dòng được chèn dùng CRLF khi dấu đánh dấu bắt đầu có \r ở cuối, còn các dòng khác vẫn giữ nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
In a file with CRLF line endings, --insert finds the markers, but every line it writes
between them ends with \n only, so the file ends up with mixed line endings. The Bash
version writes these lines with \r\n when the <!--ts--> line ends with \r
(ekalinin/github-markdown-toc#119, fixed in ekalinin/github-markdown-toc#195).
To Reproduce
printf '<!--ts-->\r\n<!--te-->\r\n\r\n# Title\r\n\r\n## Section\r\n' > crlf.md
gh-md-toc --insert --no-backup crlf.md
od -c crlf.md
Actual, line by line:
<!--ts-->\r\n
* [Title](#title)\n
* [Section](#section)\n
\n
<!-- Created by https://github.com/ekalinin/github-markdown-toc.go -->\n
<!-- Added by: <user>, at: <date> -->\n
<!--te-->\r\n
\r\n
# Title\r\n
\r\n
## Section\r\n
Expected behavior
When the <!--ts--> line ends with \r, every line written between the markers (the TOC
entries, the empty line and the footer lines) ends with \r\n. Otherwise they end with
\n, as now. All other lines are kept as they are.
Environment (please complete the following information):
- OS: macOS (darwin/arm64)
- Version: 2.0.1, current
master(dd680f7)
Additional context
replaceBetweenMarkers(internal/core/usecase/insertmd/markers.go) splits the file on
\nand joins the TOC block with\n. The marker lines already keep their\r.- The same rule applies to
--stdout(#95).
- Ngôn ngữ chính
- Go
- Star
- 525
- Fork
- 89
- Merge trung bình
- 6 phút
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ekalinin/github-markdown-toc.go
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
Tất cả issue của ekalinin/github-markdown-toc.go
Issue tương tự
-
/shutdown/ready can fail to return an HTTP response when readiness takes longer than the server write timeoutCó thể đã có người làm @floriankoch đã nhận hôm nay. Đang mởtriage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
envoyproxy/gateway#10562 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Adding an LDAP group reports every search failure as "LDAP Group DN is not found"Có thể đã có người làm @Daksha1611 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
[Bug] K8s reconcile still resets explicit 0 to defaults for response_api, memory and flow stateCó thể đã có người làm @Bevisy đã nhận hôm nay. Đang mởneeds-acceptance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
vllm-project/semantic-router#5998 ·
Maintainer thường phản hồi trong vòng 2 ngày