DeadLinkFinder เครื่องมือ CLI ตรวจลิงก์พังในไฟล์ Markdown
อูมุท กูงอร์ พัฒนา DeadLinkFinder เครื่องมือ Python CLI แบบ zero-dependency เพื่อช่วยตรวจสอบลิงก์สัมพัทธ์และแองเคอร์ที่เสียในไฟล์ Markdown ก่อนนำขึ้นสู่ระบบจริง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- DeadLinkFinder เป็น Python CLI ตรวจลิงก์ Markdown และแองเคอร์
- ทำงานแบบออฟไลน์ 100% โดยใช้ไลบรารีมาตรฐานของ Python เท่านั้น
- รองรับการสร้างรายงานในรูปแบบ SARIF และ JSON สำหรับระบบ CI/CD
- มีระบบแนะนำคำที่ใกล้เคียงด้วย difflib เมื่อพบลิงก์หรือแองเคอร์ที่ผิดพลาด
เอกสารประกอบโครงการมักเสื่อมสภาพไปตามกาลเวลาอย่างเงียบๆ เมื่อมีการเปลี่ยนชื่อไฟล์ ปรับโครงสร้างหัวข้อใน README.md หรือย้ายไดอะแกรมไปยังโฟลเดอร์ใหม่ ปัญหาลิงก์สัมพัทธ์ตายและแองเคอร์เฮดดิ้งที่ใช้งานไม่ได้มักจะตามมา ซึ่งกระบวนการตรวจโค้ด (Code Review) ทั่วไปมักมองข้ามข้อผิดพลาดเหล่านี้ เนื่องจากไม่มีใครมานั่งคลิกลิงก์และสารบัญทุกตัวในทุก Pull Request ด้วยตนเอง
ด้วยเหตุนี้ อูมุท กูงอร์ จึงได้พัฒนา DeadLinkFinder ขึ้นมา ซึ่งเป็นเครื่องมือบรรทัดคำสั่ง Python CLI ที่มีความรวดเร็วและไม่ต้องพึ่งพาภายนอก (Zero-dependency) สำหรับตรวจสอบลิงก์ไฟล์ Markdown ในเครื่อง, ไฟล์รูปภาพ, แองเคอร์หัวข้อสไตล์ GitHub และ URL ภายนอกที่เป็นทางเลือก ก่อนที่เอกสารเหล่านั้นจะถูกเผยแพร่สู่กระบวนการผลิตจริง
ก่อนหน้านี้ การมองหาเครื่องมือตรวจสอบลิงก์สำหรับคลังโค้ดมักพบปัญหาหลัก 3 ประการ เช่น เครื่องมือที่ต้องติดตั้งแพ็กเกจภายนอกจำนวนมาก หรือไม่รองรับการตรวจสอบแองเคอร์ภายในไฟล์ Markdown DeadLinkFinder จึงถูกออกแบบมาให้ใช้เฉพาะไลบรารีมาตรฐานของ Python เท่านั้น ได้แก่ re, pathlib, difflib และ urllib ทำให้ไม่มีการพึ่งพาภายนอกที่ต้องคอยตรวจสอบความปลอดภัยหรือดูแลรักษา

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ผู้ใช้งานสามารถติดตั้งเครื่องมือนี้ได้อย่างง่ายดายผ่านคำสั่ง pip install deadlinkfinder และสามารถเรียกใช้งานกับไดเรกทอรีหรือไฟล์ Markdown ใดก็ได้ เช่น deadlinkfinder docs/ README.md ซึ่งระบบจะแสดงผลลัพธ์ผ่านเทอร์มินัลพร้อมระบุข้อผิดพลาดและข้อเสนอแนะที่ถูกต้อง เช่น หากไม่พบเป้าหมาย '../guides/setup.md' ระบบจะแนะนำคำใกล้เคียงอย่าง '../guides/install-setup.md' ให้ทันที
การตรวจสอบลิงก์เอกสารอัตโนมัติก่อนนำขึ้นโปรดักชันมีความสำคัญอย่างยิ่งต่อประสบการณ์ใช้งานของนักพัฒนา โดยเฉพาะในโครงการโอเพนซอร์สขนาดใหญ่ที่เอกสารมีการเปลี่ยนแปลงบ่อย การใช้เครื่องมือประเภท CLI ที่ทำงานแบบออฟไลน์และผสานเข้ากับไปป์ไลน์ CI/CD ช่วยลดภาระงานของทีมรีวิวโค้ดได้อย่างมีประสิทธิภาพ และป้องกันปัญหาลิงก์เสียที่มักสร้างความหงุดหงิดให้แก่ผู้ใช้งานปลายทาง
นอกจากนี้ DeadLinkFinder ยังโดดเด่นด้วยฟีเจอร์การทำงานแบบออฟไลน์พร้อมระบบแนะนำคำด้วย difflib รองรับการถอดรหัสแองเคอร์ที่ตรงกับกฎการสร้าง slug ของ GitHub อย่างแม่นยำ ไม่ว่าหัวข้อจะมีอักขระพิเศษ อีโมจิ หรือเครื่องหมายแบ็กทิก สำหรับการใช้งานร่วมกับระบบอัตโนมัติ นักพัฒนาสามารถสร้างรายงาน SARIF เพื่อแสดงผลการตรวจสอบบนแดชบอร์ด GitHub Code Scanning หรือใช้รูปแบบ JSON สำหรับ pre-commit hooks ได้เช่นกัน
เครื่องมือนี้เป็นส่วนหนึ่งของชุดเครื่องมือพัฒนาซอฟต์แวร์โอเพนซอร์สแบบ zero-dependency ของผู้พัฒนา ร่วมกับ EnvDoctor สำหรับตรวจสอบสัญญา .env และ TokenGuard สำหรับสแกนความลับก่อนคอมมิต หากคุณเป็นผู้ดูแลเอกสารโอเพนซอร์สหรือวิกิภายในองค์กร สามารถทดลองใช้งาน DeadLinkFinder ใน CI pipeline ของคุณได้ทันที
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น