Markdown 文档 (.md)

CommonMark มาตรฐาน

Markdown (MD) คือภาษามาร์กอัปแบบน้ำหนักเบาที่ได้รับความนิยมมากที่สุดในโลก ออกแบบโดย John Gruber เพื่อให้อ่านและเขียนเป็นข้อความธรรมดาได้อย่างง่ายดาย พร้อมทั้งสามารถแปลงเป็น HTML ที่มีโครงสร้างได้อย่างสะอาดตา

ตรวจสอบและดู Metadata

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ Markdown โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ Markdown โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

23 20 / 2D 2D 2D

การแสดงผลรูปแบบ ASCII: # / ---

มาตรฐาน: CommonMark Specification / GitHub Flavored Markdown (GFM)

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์Plain UTF-8 text file utilizing lightweight punctuation formatting (headings, lists, bold, italics, code blocks)
การบีบอัดUncompressed text (readily compressed with Gzip or Brotli)
การจัดลำดับไบต์ (Byte Endianness)UTF-8 / Unicode text stream
พื้นที่สีN/A (Plaintext Markup)
ช่องสัญญาณและโครงสร้างHeadings, blockquotes, unordered/ordered lists, code fences, hyperlinks, images, and tables
ขนาดสูงสุดUnbounded text document length
ความโปร่งใสNone (pure text)
การสตรีมและแบบโปรเกรสซีฟStreaming line-by-line block and inline tokenization

ตารางเปรียบเทียบทางเทคนิค: Markdown กับคู่แข่ง

คุณลักษณะทางเทคนิคMarkdown (ปัจจุบัน)HTMLTXTPDF
ความง่ายในการเขียนพิมพ์ข้อความธรรมดาได้เร็วมากไวยากรณ์แท็กที่ยืดยาว (<p>, <div>)พิมพ์เร็ว (ไม่มีการจัดรูปแบบ)ต้องใช้โปรแกรมแก้ไขเลย์เอาต์แบบกราฟิก
ความสามารถในการอ่านโดยมนุษย์ (แบบดิบ)อ่านข้อความธรรมชาติได้อย่างบริสุทธิ์รกด้วยแท็กและวงเล็บอ่านข้อความได้อย่างบริสุทธิ์ไบต์ดิบแบบไบนารีที่อ่านไม่ออก
การแปลงเป็น HTMLผลลัพธ์แบบ 1 ต่อ 1 ที่แน่นอนตรงไปตรงมาภาษาเว็บดั้งเดิมต้องจัดรูปแบบด้วยตนเองผลลัพธ์กราฟิกแบบตายตัว
เครื่องมือนักพัฒนาสากลใน Git, GitHub, Docsสากลในการพัฒนาเว็บการจัดเก็บพื้นฐานระดับสากลการแจกจ่ายเอกสาร

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

บล็อกโค้ดแสดงผลเป็นย่อหน้าปกติ หรือหัวข้อไม่สามารถจัดรูปแบบได้

สาเหตุหลัก: เว้นวรรคหลังสัญลักษณ์หัวข้อ '#' ไม่ถูกต้อง หรือลืมปิดเครื่องหมายแบ็กทิกสามตัว (```) ของบล็อกโค้ด

การกู้คืน: ตรวจสอบความถูกต้องและจัดรูปแบบไวยากรณ์ Markdown ใหม่โดยใช้ File2File Markdown Linter

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

ตัวแปลง Markdown มักอนุญาตให้ใช้ HTML แบบอินไลน์ดิบได้โดยค่าเริ่มต้น ซึ่งอาจนำไปสู่ช่องโหว่ Cross-Site Scripting (XSS) หากไม่ผ่านการทำความสะอาดข้อมูล

เวกเตอร์การโจมตีที่ทราบ

  • การฉีดสคริปต์ XSS ผ่านองค์ประกอบ HTML ดั้งเดิม (เช่น '<script>' หรือ '<img onerror=...>') ที่ฝังอยู่ภายในข้อความ Markdown
  • การปฏิเสธการให้บริการ (Denial of Service) ผ่านโครงสร้างบล็อกอ้างอิงหรือรายการที่ซ้อนกันลึกเกินไปในตัวแยกวิเคราะห์ที่ไม่เป็นไปตามมาตรฐาน
  • ชุดรูปแบบไฮเปอร์ลิงก์อันตราย ('javascript:') ภายในไวยากรณ์ลิงก์ของ Markdown

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2017GitHub Flavored Markdown (GFM) ได้รับการกำหนดมาตรฐานตามข้อกำหนด CommonMark อย่างเป็นทางการ
2014ริเริ่มโครงการ CommonMark โดย Jeff Atwood และ John MacFarlane เพื่อสร้างมาตรฐานให้กับกรณีการใช้งาน Markdown ที่มีความคลุมเครือ
2004John Gruber และ Aaron Swartz เผยแพร่ข้อกำหนด Markdown 1.0 ดั้งเดิมและสคริปต์การแปลงภาษา Perl

ข้อได้เปรียบและจุดเด่นสำคัญ

  • มนุษย์อ่านง่ายสูงสุด: ข้อความที่จัดรูปแบบจะดูสะอาดและเป็นธรรมชาติแม้จะดูในเทอร์มินัลพื้นฐานหรือโปรแกรมแก้ไขข้อความธรรมดา
  • มาตรฐานอุตสาหกรรมซอฟต์แวร์สากล: ขับเคลื่อนไฟล์ README ของ GitHub, ข้อความใน Discord, ความเห็นใน Reddit, เอกสาร (Obsidian, Notion) และเครื่องมือสร้างเว็บไซต์สถิต
  • ไม่มีการผูกขาดกับผู้ให้บริการรายใด: ไฟล์ข้อความธรรมดาจะยังคงสามารถอ่านได้นานนับศตวรรษโดยไม่ต้องอาศัยซอฟต์แวร์แสดงผลเฉพาะกรรมสิทธิ์

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ข้อกำหนดดั้งเดิมในปี 2004 มีกฎการแยกวิเคราะห์ที่กำกวม ส่งผลให้เกิดความแตกፋายเป็นภาษาย่อยเล็กๆ น้อยๆ (CommonMark กับ GFM กับ Kramdown)
  • ไม่รองรับฟีเจอร์การจัดหน้าเว็บที่ซับซ้อนโดยปริยาย เช่น เลย์เอาต์นิตยสารหลายคอลัมน์ การตัดข้อความ หรือหมายเลขหน้า
  • รูปภาพที่ฝังอยู่จะใช้วิธีลิงก์จากภายนอกแทนที่จะถูกจัดเก็บไว้ภายในไฟล์เอกสาร

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • Aaron Swartz ผู้ร่วมพัฒนา Markdown กับ John Gruber ตอนอายุ 17 ปี ยังเป็นผู้ร่วมก่อตั้ง Reddit และสร้าง RSS 1.0 อีกด้วย
  • ที่เก็บโค้ด GitHub ทุกแห่งในโลกต่างใช้ไฟล์ 'README.md' เพื่อแนะนำชุดโค้ดของตนเองให้กับนักพัฒนา
  • ปรัชญาการออกแบบ Markdown ระบุไว้ว่า: 'เป้าหมายการออกแบบหลักสำหรับไวยากรณ์การจัดรูปแบบของ Markdown คือการทำให้อ่านง่ายที่สุดเท่าที่จะเป็นไปได้'

คำถามทางเทคนิคที่พบบ่อย

Markdown ใช้สำหรับทำอะไร?

Markdown ใช้สำหรับการเขียนเอกสาร, ไฟล์ README บน GitHub, บล็อกโพสต์, จดบันทึกในแอปพลิเคชันอย่าง Obsidian และ Notion รวมถึงการเขียนข้อความบนแพลตฟอร์มอย่าง Discord และ Slack

ฉันสามารถแปลง Markdown เป็น PDF หรือ HTML ได้อย่างไร?

คุณสามารถแปลงไฟล์ Markdown (.md) เป็นเอกสาร PDF ที่จัดรูปแบบแล้วหรือโค้ด HTML ที่สะอาดตาได้ด้วยคลิกเดียวโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณโดยตรง

GitHub Flavored Markdown (GFM) คืออะไร?

GFM คือเวอร์ชันขยายของ Markdown จาก GitHub ซึ่งเพิ่มการรองรับตาราง, รายการงานที่มีช่องทำเครื่องหมาย ([x]), ข้อความขีดฆ่า (~~text~~) และบล็อกโค้ดที่ไฮไลต์ไวยากรณ์