bug: PushMD - path conflict on duplicate slug for posts in draft
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 76/100
Hướng nghiên cứu
Bắt đầu trong class-push-md-plugin.php tại export_wordpress_content() và xem xét cách các bài viết trở thành các đường dẫn Markdown trong repository. Sau đó kiểm tra ExportPathTest.php và bổ sung coverage cho nhiều bài viết nháp hoặc đang chờ duyệt dùng chung một slug, bao gồm cả mức ưu tiên của bài viết đã xuất bản. Hoàn thành khi quá trình export kết thúc mà không xảy ra xung đột đường dẫn và các mục trùng lặp sử dụng các đường dẫn fallback dựa trên ID.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
WordPress allows multiple non-published posts (e.g. draft, pending) to share the exact same post_name slug (e.g., my-draft-post). When exporting via Git (git clone / git fetch), PushMD attempts to write both posts to post/my-draft-post.md, causing a file path collision exception: Git export rejected because multiple WordPress entities map to the same PushMD path.
We can disambiguate duplicate slug collisions during export by falling back to ID-based paths (e.g., post/post-202.md) for colliding entries (giving published posts priority).
Proposed Changes
Push MD Plugin
[MODIFY] class-push-md-plugin.php
Update export_wordpress_content() to handle slug collisions gracefully.
Sort posts during export prioritize published posts before draft/pending/private posts.
When two or more posts resolve to the exact same repository markdown path, assign the human-readable slug path to the primary post and fallback to build_id_fallback_markdown_path($post) (post/post-.md or page/page-.md) for duplicate entries.
[MODIFY] ExportPathTest.php
Add unit tests verifying that multiple draft posts with identical slugs export cleanly without throwing exceptions, using ID fallback paths for duplicates.
- Ngôn ngữ chính
- PHP
- Star
- 22
- Fork
- 5
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
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 Automattic/php-toolkit
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Automattic/php-toolkit#89 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Automattic/php-toolkit#102 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Automattic/php-toolkit#91 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Automattic/php-toolkit#88 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Automattic/php-toolkit#87 ·
Tất cả issue của Automattic/php-toolkit
Issue tương tự
-
Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Automattic/safe-publish#594 ·
-
HttpClient
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
symfony/symfony-docs#23092 ·
-
sync-en
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
sync-en
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
-
Перевод устарел
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100