ตัวจัดรูปแบบ Markdown

วางเอกสาร Markdown แล้วตัวจัดรูปแบบจะเขียนใหม่เป็นสไตล์ที่สอดคล้องกัน: แก้การกระโดดระดับหัวข้อ (ไม่มี H2 หลัง H4) เติมคอลัมน์ตารางให้จัดแนวในซอร์ส บังคับใช้บรรทัดว่างเดียวระหว่างบล็อก ปรับ marker รายการให้เป็น - ยุบบรรทัดว่างหลายบรรทัด และเรียง reference-style link definition ไว้ด้านล่าง HTML ที่เรนเดอร์ไม่เปลี่ยน, มีเพียงไฟล์ซอร์สที่เป็นระเบียบขึ้น ดังนั้น diff จึงอ่านง่ายขึ้น

ตัวจัดรูปแบบเขียน Markdown ใหม่อย่างไร

  1. 1

    วาง Markdown

    ใส่เอกสารดิบ: README, หน้าเอกสาร, บันทึกการประชุม

  2. 2

    เลือกตัวเลือกสไตล์

    marker รายการ (`-`/`*`), สไตล์หัวข้อ (ATX/Setext), การจัดแนวตาราง, คอลัมน์ตัดบรรทัด

  3. 3

    จัดรูปแบบ

    เครื่องมือแยกวิเคราะห์เอกสารเป็น AST และ re-serialize ด้วยสไตล์ที่เลือก

  4. 4

    ดู diff ของเอาต์พุต

    มุมมองเทียบเคียงแสดงสิ่งที่เปลี่ยนก่อนคุณวางกลับ

สิ่งที่ตัวจัดรูปแบบแก้ไข

  • marker รายการ *, -, + ทั้งหมดถูกปรับให้เป็นอักขระเดียวที่สอดคล้องกัน (ค่าเริ่มต้น -)
  • ลำดับหัวข้อ เตือน (หรือเลื่อนระดับ) เมื่อ H2 ตามด้วย H4 โดยไม่มี H3 คั่นกลาง
  • บรรทัดว่าง บรรทัดว่างเดียวพอดีระหว่างบล็อก ไม่มีสามบรรทัดขึ้นไป
  • ตาราง เติมแต่ละคอลัมน์เพื่อให้ pipe จัดแนวในซอร์ส แม้ว่าตัวเรนเดอร์ Markdown จะไม่สนใจ
  • ช่องว่างตามหลัง ตัดช่องว่างตามหลังในทุกบรรทัดยกเว้น marker ขึ้นบรรทัดสองช่องว่างที่ตั้งใจ
  • reference link รวบรวม definition [label]: url ไว้ที่ท้ายเอกสาร เรียงตามตัวอักษร
  • code fence แท็กภาษาถูกปรับเป็นตัวพิมพ์เล็ก บล็อกโค้ดแบบเยื้องกลายเป็นบล็อกแบบ fence

ตัวเลือกสไตล์ที่คุณตั้งได้

ตัวเลือก ค่าเริ่มต้น ทางเลือก
marker รายการ - *, +
สไตล์หัวข้อ ATX Setext สำหรับ H1/H2
ตัวคั่นเน้น * _
ตัวคั่นตัวหนา ** __
คอลัมน์ตัดบรรทัด 0 (ปิด) 80, 100, 120
เรียง reference link เปิด ปิด

ทำไม Markdown ที่สอดคล้องกันจึงสำคัญ

ในรีโปของทีม Markdown ที่ไม่สอดคล้องกันสร้าง diff ที่รบกวน: ทุกครั้งที่มีคนบันทึกไฟล์ด้วย editor ที่ต่างกัน marker รายการสลับและตารางจัดเรียงใหม่ ตัวจัดรูปแบบบังคับใช้สไตล์เดียวเพื่อให้ผู้ตรวจ pull request เห็นเฉพาะการเปลี่ยนแปลงเนื้อหา คิดว่ามันเป็น prettier สำหรับงานเขียน

เมื่อใดไม่ควรจัดรูปแบบ

  • บล็อกโค้ดแบบ fence คงอยู่ทุกไบต์เหมือนเดิม, ตัวจัดรูปแบบจะไม่แตะต้องเนื้อหาของบล็อกโค้ด หากการจัดรูปแบบเปลี่ยนโค้ด นั่นเป็นบั๊ก
  • การตัดบรรทัดแบบ hard ที่ตั้งใจ ที่ความกว้างแคบ (readme.md บนโปรเจกต์เทอร์มินัล) จะถูกตัดบรรทัดใหม่หากคุณเปิดคอลัมน์ตัดบรรทัด ปิดการตัดบรรทัดหากคุณเก็บการขึ้นบรรทัดที่ปรับด้วยมือ
  • บล็อก HTML ที่ฝัง ผ่านไปโดยไม่เปลี่ยนแปลง

ตัวแทนแบบ drop-in

หากคุณชอบ CLI แบบโลคัล ตัวจัดรูปแบบใช้กฎ AST เดียวกับ remark-stringify พร้อมปลั๊กอิน remark-gfm prettier --parser markdown ให้ผลลัพธ์ที่คล้ายกัน

คำถามที่พบบ่อย

ไม่ ตัวจัดรูปแบบเขียนใหม่เฉพาะซอร์ส, เอาต์พุต HTML ที่เรนเดอร์ทั้งก่อนและหลังควรเทียบเท่ากัน หากคุณเห็นการเปลี่ยนแปลงการเรนเดอร์ ให้รายงานเป็นบั๊ก

ไม่ front-matter แบบ YAML หรือ TOML ที่ด้านบนของไฟล์ถูกตรวจจับและส่งผ่านโดยไม่แตะต้อง

ได้, ตั้งคอลัมน์ตัดบรรทัดเป็น 80, 100 หรือ 120 แล้วย่อหน้าจะถูกตัดบรรทัดใหม่ บรรทัดภายใน code fence ไม่เคยถูกแตะต้อง

ไม่ ตัวจัดรูปแบบสมมติว่าลิงก์ของคุณใช้งานได้ มันเพียงจัดระเบียบ reference-link definition ใหม่ ใช้เครื่องมือตรวจสอบลิงก์แยกต่างหาก

ไม่ การแยกวิเคราะห์และการจัดรูปแบบทำงานในเบราว์เซอร์ของคุณ เนื้อหาไม่เคยออกจากอุปกรณ์ของคุณ

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือนี้มีให้บริการในภาษาอื่น