ขั้นแรกให้รู้ว่าคุณทำได้ แทนที่ภาษาที่ตรวจพบไฟล์ในพื้นที่เก็บข้อมูลของคุณโดยใช้แทนที่นักภาษาศาสตร์
ตอนนี้โดยสรุป
- แต่ละพื้นที่เก็บข้อมูลมีการติดแท็กด้วยภาษาแรกจากสถิติภาษา
- สถิติภาษาจะนับขนาดทั้งหมดของไฟล์สำหรับการเขียนโปรแกรมหรือภาษามาร์กอัปที่ตรวจพบไม่นับรวมไฟล์ที่จัดจำหน่ายเอกสารและไฟล์ที่สร้างขึ้น
- ภาษาของแต่ละไฟล์จะถูกตรวจพบโดยโครงการที่มาเปิดภาษาศาสตร์
นักภาษาศาสตร์ตรวจจับภาษาได้อย่างไร?
นักภาษาศาสตร์อาศัยกลยุทธ์ต่อไปนี้ตามลำดับและส่งคืนภาษาทันทีที่พบการจับคู่ที่สมบูรณ์แบบ (กลยุทธ์ที่มีการส่งคืนภาษาเดียว)
- มองหาEmacs และเป็นกลุ่ม modelines
- ชื่อไฟล์ที่รู้จัก ชื่อไฟล์บางชื่อเกี่ยวข้องกับภาษาเฉพาะ (คิดว่า
Makefile
)
- มองหา Shebang ไฟล์ที่มี
#!/bin/bash
shebangจะถูกจัดประเภทเป็นเชลล์
- รู้จักไฟล์นามสกุล. ภาษามีชุดส่วนขยายที่เกี่ยวข้อง อย่างไรก็ตามมีความขัดแย้งมากมายกับกลยุทธ์นี้ ผลลัพธ์ที่ขัดแย้งกัน (คิดว่า C ++, C และ Objective-C สำหรับ
.h
) ได้รับการปรับปรุงโดยกลยุทธ์ที่ตามมา
- ชุดของกฎการแก้ปัญหา โดยปกติแล้วจะใช้นิพจน์ทั่วไปในเนื้อหาของไฟล์เพื่อพยายามระบุภาษา (เช่น
^[^#]+:-
สำหรับ Prolog )
- ลักษณนามเบส์ไร้เดียงสาฝึกอบรมเกี่ยวกับไฟล์ตัวอย่าง กลยุทธ์สุดท้ายความแม่นยำต่ำสุด ลักษณนามแบบเบย์จะใช้ภาษาย่อยเป็นอินพุตเสมอ ไม่ได้หมายถึงการจัดประเภทในทุกภาษา การจับคู่ที่ดีที่สุดที่พบโดยลักษณนามจะถูกส่งกลับ
ไฟล์ที่เปิดเผยและเอกสารประกอบคืออะไร?
นักภาษาศาสตร์ถือว่าไฟล์บางไฟล์เป็นผู้จำหน่ายซึ่งหมายความว่าไฟล์เหล่านี้จะไม่รวมอยู่ในสถิติภาษา ซึ่งรวมถึงไลบรารีของ บริษัท อื่นเช่น jQuery และกำหนดไว้ในvendor.yml
ไฟล์คอนฟิกูเรชัน นอกจากนี้คุณยังสามารถผู้ขายหรือไฟล์ unvendor ในพื้นที่เก็บข้อมูลของคุณโดยใช้แทนที่นักภาษาศาสตร์
ในทำนองเดียวกันไฟล์เอกสารที่กำหนดไว้ในdocumentation.yml
และสามารถเปลี่ยนแปลงได้โดยใช้การแทนที่นักภาษาศาสตร์
ไฟล์ที่สร้างขึ้นจะตรวจพบได้อย่างไร?
นักภาษาศาสตร์อาศัยกฎง่ายๆในการตรวจหาไฟล์ที่สร้างขึ้นโดยใช้ทั้งเส้นทางและเนื้อหาของไฟล์ ไฟล์ที่สร้างขึ้นจะไม่ถูกนับในสถิติภาษาและจะไม่แสดงในความแตกต่างบน github.com
สิ่งที่เกี่ยวกับการเขียนโปรแกรมและภาษามาร์กอัป?
ในนักภาษาศาสตร์แต่ละภาษาจะได้รับประเภท languages.yml
ประเภทนี้สามารถพบได้ในแฟ้มการกำหนดค่าหลัก เฉพาะภาษาโปรแกรมและภาษามาร์กอัปเท่านั้นที่จะนับในสถิติ