อักขระหลีกเลี่ยง (Escaping)
อักขระหลีกเลี่ยงช่วยให้คุณแสดงสัญลักษณ์ที่โดยปกติมีความหมายพิเศษใน Markdown ได้ โดยเติมแบ็กสแลช \ ไว้หน้าสัญลักษณ์นั้น ๆ เพื่อยกเลิกความหมายพิเศษ
แนวคิดพื้นฐาน
อะไรคือการหลีกเลี่ยง (Escape)
ใน Markdown สัญลักษณ์บางตัวมีความหมายพิเศษ (เช่น * ใช้สำหรับเน้น) หากต้องการแสดงตัวอักษรดิบ ให้ใช้การหลีกเลี่ยง
นี่คือ *ตัวเอียง*
นี่คือ \*เครื่องหมายดอกจันปกติ\*ผลลัพธ์การเรนเดอร์:
นี่คือ ตัวเอียง นี่คือ *เครื่องหมายดอกจันปกติ*
สัญลักษณ์ที่ต้องหลีกเลี่ยง
รายการเต็ม
สัญลักษณ์ต่อไปนี้มักมีความหมายพิเศษใน Markdown:
| สัญลักษณ์ | คำอธิบาย | รูปแบบหลีกเลี่ยง | การใช้งาน |
|---|---|---|---|
\\ | แบ็กสแลช | \\\\ | อักขระหลีกเลี่ยง |
` | แบ็กทิก | \` | โค้ดในบรรทัด |
* | ดอกจัน | \* | เน้น/รายการ |
_ | ขีดล่าง | \_ | เน้น |
{} | วงเล็บปีกกา | \{ \} | ไวยากรณ์เสริม |
[] | วงเล็บเหลี่ยม | \[ \] | ลิงก์/รูปภาพ |
() | วงเล็บกลม | \( \) | ลิงก์/รูปภาพ |
# | เครื่องหมาย # | \# | หัวเรื่อง |
+ | เครื่องหมายบวก | \+ | รายการ |
- | ยัติภังค์ | \- | รายการ/เส้นคั่น |
. | จุด | \. | รายการมีลำดับ |
! | เครื่องหมายอัศเจรีย์ | \! | รูปภาพ |
ตัวอย่างที่พบบ่อย
ดอกจันและขีดล่าง
❌ ไม่หลีกเลี่ยง:
ชื่อไฟล์คือ file_name_v2.txt
นิพจน์คือ 2*3*4 = 24
✅ หลีกเลี่ยง:
ชื่อไฟล์คือ file\_name\_v2.txt
นิพจน์คือ 2\*3\*4 = 24ผลลัพธ์การเรนเดอร์:
❌ ไม่หลีกเลี่ยง: ชื่อไฟล์คือ file_name_v2.txt นิพจน์คือ 234 = 24
✅ หลีกเลี่ยง: ชื่อไฟล์คือ file_name_v2.txt นิพจน์คือ 2*3*4 = 24
หัวเรื่องด้วยเครื่องหมาย
❌ ไม่หลีกเลี่ยง:
# TODO: ทำงานให้เสร็จ
✅ หลีกเลี่ยง:
\# TODO: ทำงานให้เสร็จผลลัพธ์การเรนเดอร์:
❌ ไม่หลีกเลี่ยง:
TODO: ทำงานให้เสร็จ
✅ หลีกเลี่ยง: # TODO: ทำงานให้เสร็จ
สัญลักษณ์รายการ
❌ ไม่หลีกเลี่ยง:
ราคา: 100 - 200 บาท
ขั้นตอน: 1. เตรียมการ 2. ดำเนินการ
✅ หลีกเลี่ยง:
ราคา: 100 \- 200 บาท
ขั้นตอน: 1\. เตรียมการ 2\. ดำเนินการผลลัพธ์การเรนเดอร์:
❌ ไม่หลีกเลี่ยง: ราคา: 100 - 200 บาท ขั้นตอน: 1. เตรียมการ 2. ดำเนินการ
✅ หลีกเลี่ยง: ราคา: 100 - 200 บาท ขั้นตอน: 1. เตรียมการ 2. ดำเนินการ
ไวยากรณ์ลิงก์
❌ ไม่หลีกเลี่ยง:
ดูเอกสาร [ที่นี่](http://example.com)
✅ หลีกเลี่ยง (แสดงไวยากรณ์ดิบ):
ดูเอกสาร \[ที่นี่\]\(http://example.com\)ผลลัพธ์การเรนเดอร์:
❌ ไม่หลีกเลี่ยง: ดูเอกสาร ที่นี่
✅ หลีกเลี่ยง (แสดงไวยากรณ์ดิบ): ดูเอกสาร [ที่นี่](http://example.com)
กรณีพิเศษ
ตัวแบ็กสแลชเอง
เพื่อแสดงแบ็กสแลช ให้ใช้สองตัว:
พาธไฟล์: C:\\Users\\Username\\Documents
พาธของ Unix: /home/user/documentsผลลัพธ์การเรนเดอร์:
พาธไฟล์: C:\Users\Username\Documents พาธของ Unix: /home/user/documents
การหลีกเลี่ยงแบ็กทิก
แสดงแบ็กทิกในโค้ด:
ใช้ `` \` `` ครอบโค้ดในบรรทัด
ใช้ ``` \`\`\` ``` เพื่อสร้างโค้ดบล็อกผลลัพธ์การเรนเดอร์:
ใช้ \` ครอบโค้ดในบรรทัด ใช้ \`\`\` เพื่อสร้างโค้ดบล็อก
แบ็กสแลชท้ายบรรทัด
แบ็กสแลชที่ท้ายบรรทัดใช้เพื่อบังคับขึ้นบรรทัดใหม่:
บรรทัดแรก\
บรรทัดที่สอง (ขึ้นบรรทัดใหม่แบบบังคับ)
บรรทัดแรก\\
บรรทัดที่สอง (แสดงแบ็กสแลช)ผลลัพธ์การเรนเดอร์:
บรรทัดแรก
บรรทัดที่สอง (ขึ้นบรรทัดใหม่แบบบังคับ)
บรรทัดแรก\ บรรทัดที่สอง (แสดงแบ็กสแลช)
การหลีกเลี่ยงในโค้ด
โค้ดในบรรทัด
ภายในโค้ดในบรรทัด ส่วนใหญ่ไม่จำเป็นต้องหลีกเลี่ยง:
โค้ด: `let result = 2 * 3 + 1;`
พาธ: `C:\Users\*\Documents`ผลลัพธ์การเรนเดอร์:
โค้ด: let result = 2 * 3 + 1; พาธ: C:\Users\*\Documents
โค้ดบล็อก
ในโค้ดบล็อก อักขระจะถูกแสดงตามจริง:
```javascript
// ไม่ต้องหลีกเลี่ยงสัญลักษณ์เหล่านี้
const pattern = /[.*+?^${}()|[\]\\]/g;
const path = "C:\\Users\\*\\Documents";
```ผลลัพธ์การเรนเดอร์:
// ไม่ต้องหลีกเลี่ยงสัญลักษณ์เหล่านี้
const pattern = /[.*+?^${}()|[\]\\]/g;
const path = "C:\\Users\\*\\Documents";กรณีใช้งานจริง
1. เอกสารทางเทคนิค
## ไวยากรณ์ไฟล์คอนฟิก
ไฟล์คอนฟิกใช้รูปแบบดังนี้:# บรรทัดคอมเมนต์ key = value [section]
หมายเหตุ:
- ใช้ \# สำหรับคอมเมนต์
- ใช้ \[\] เพื่อกำหนดส่วน (section)
- ใช้ \* เป็นตัวแทนสัญลักษณ์แทนค่า (wildcard)2. นิพจน์ทางคณิตศาสตร์
## สูตรคณิตศาสตร์
สมการเส้นตรง: y = a\*x + b
สมการกำลังสอง: y = a\*x² + b\*x + c
เศษส่วน: 1/2 = 0.5
หมายเหตุ: ใช้ \* เป็นสัญลักษณ์คูณ3. พาธไฟล์
## ระบบไฟล์
Windows:
- โฟลเดอร์ระบบ: C:\\Windows\\System32
- โฟลเดอร์ผู้ใช้: C:\\Users\\{username}
- โฟลเดอร์โปรแกรม: C:\\Program Files\\*
Linux:
- root: /
- โฟลเดอร์ผู้ใช้: /home/{username}
- แทนค่า: /var/log/\*.log4. คำอธิบายสัญลักษณ์
## ความหมายของสัญลักษณ์
ในงานโปรแกรมมิ่ง:
- \* มักใช้แทนตัวชี้หรือตัวแทนค่า
- \_ ใช้ในข้อตกลงการตั้งชื่อ (เช่น \_private)
- \# ใช้สำหรับคอมเมนต์หรือพรีโพรเซสเซอร์
- \[\] หมายถึงอาเรย์หรืออาร์กิวเมนต์ทางเลือก
- \{\} หมายถึงบล็อกโค้ดหรือ placeholderแนวปฏิบัติที่ดี
1. หลีกเลี่ยงเฉพาะที่จำเป็น
✅ แนะนำ: หลีกเลี่ยงเฉพาะสัญลักษณ์ที่คลุมเครือ
ชื่อไฟล์: config.txt
ราคา: $10-20
❌ ไม่แนะนำ: หลีกเลี่ยงมากเกินไป
ชื่อไฟล์: config\.txt
ราคา: \$10\-202. รักษาความสม่ำเสมอ
✅ แนะนำ: รูปแบบการหลีกเลี่ยงสม่ำเสมอ
ตัวแปร: user\_id, item\_count, max\_size
❌ ไม่แนะนำ: จัดการไม่สม่ำเสมอ
ตัวแปร: user_id, item\_count, max_size3. ใช้รูปแบบโค้ดเมื่อมีอักขระพิเศษจำนวนมาก
✅ แนะนำ: ใช้รูปแบบโค้ด
ไวยากรณ์คอนฟิก: `[section]` และ `key=value`
❌ ไม่แนะนำ: หลีกเลี่ยงจำนวนมาก
ไวยากรณ์คอนฟิก: \[section\] และ key\=valueข้อผิดพลาดที่พบบ่อย
1. ลืมหลีกเลี่ยง
❌ ผิด:
ชื่อผู้ใช้ GitHub คือ user_name
ฟังก์ชันนี้ชื่อ get_data()
✅ ถูกต้อง:
ชื่อผู้ใช้ GitHub คือ user\_name
ฟังก์ชันนี้ชื่อ get\_data()2. หลีกเลี่ยงมากเกินไป
❌ ผิด:
วันนี้คือ 12\-25
ไฟล์นี้คือ README\.md
✅ ถูกต้อง:
วันนี้คือ 12-25
ไฟล์นี้คือ README.md3. ผิดบริบท
❌ ผิด: หลีกเลี่ยงในโค้ดบล็อกlet path = "C:\\Users\\Name"; ← ไม่จำเป็นต้องหลีกเลี่ยงซ้ำ
✅ ถูกต้อง:let path = "C:\Users\Name";
เอาต์พุต HTML
การแสดงผลอักขระหลีกเลี่ยงเป็น HTML:
นี่คือ \*ดอกจัน\*แปลงเป็น:
<p>นี่คือ *ดอกจัน*</p>เครื่องมือและตัวแก้ไข
เครื่องมือแก้ไขที่รองรับการพรีวิว
- Visual Studio Code: Markdown Preview Enhanced
- Typora: พรีวิวแบบเรียลไทม์
- Mark Text: WYSIWYG
- Obsidian: เรนเดอร์แบบเรียลไทม์
เครื่องมือตรวจสอบการหลีกเลี่ยง
<!-- กฎของ markdownlint -->
MD049: ความสม่ำเสมอของตัวเน้น
MD050: สไตล์ตัวเน้นไวยากรณ์ที่เกี่ยวข้อง
- การเน้น - การใช้ดอกจันและขีดล่าง
- โค้ด - อักขระพิเศษในโค้ด
- ลิงก์ - วงเล็บเหลี่ยมและวงเล็บกลม
- รายการ - สัญลักษณ์รายการ
แบบฝึกหัด
ลองแสดงผลสิ่งต่อไปนี้ให้ถูกต้อง:
- พาธไฟล์:
C:\Program Files\*\config.ini - ตัวแปร:
user_id,file_name,max_count - นิพจน์คณิตศาสตร์:
2*x + 3*y = 15 - ไวยากรณ์คอนฟิก:
[section]และkey=value - ไวยากรณ์ Markdown:
**ตัวหนา**และ*ตัวเอียง*
ตารางอ้างอิงเร็ว
การหลีกเลี่ยงที่ใช้บ่อย
| เดิม | หลังหลีกเลี่ยง | คำอธิบาย |
|---|---|---|
\\ | \\\\ | แบ็กสแลช |
* | \* | ดอกจัน |
_ | \_ | ขีดล่าง |
# | \# | เครื่องหมาย # |
[ | \[ | วงเล็บเหลี่ยมซ้าย |
] | \] | วงเล็บเหลี่ยมขวา |
( | \( | วงเล็บกลมซ้าย |
) | \) | วงเล็บกลมขวา |
+ | \+ | บวก |
- | \- | ยัติภังค์/ขีด |
. | \. | จุด |
! | \! | อัศเจรีย์ |