จะหลีกเลี่ยงท่อถ่านในคำสั่งรหัสในตารางมาร์กดาวน์ได้อย่างไร


104

ใน GitHub ฉันต้องการสร้างตารางที่มีชิ้นส่วนของโค้ดใน Markdown มันใช้งานได้ดียกเว้นเมื่อฉันใส่ไปป์ char (เช่น |) ระหว่างตัวอักษร backtick (เช่น `)

นี่คือสิ่งที่ฉันต้องการ:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a |= y;`  |  r2

ปัญหาคือแถบแนวตั้งในคำสั่งรหัสของบรรทัดที่สองถูกตีความว่าเป็นตัวคั่นคอลัมน์ จากนั้นการแสดงผลตารางจะดูน่าเกลียดทีเดียว ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร

โปรดทราบว่าฉันพยายามแล้วที่จะใช้|โค้ด HTML a |= y;แต่จะผลิต

คำตอบ:


151

เมื่อเดือนมีนาคม 2017 การใช้ Escape ไปป์นั้นง่ายกว่ามาก\|ดูคำตอบอื่น ๆ

หากคุณลบ backticks ( ` ) การใช้|แฮ็คจะใช้ได้

      a     |  r  
------------|-----
 `a += x;`  |  r1
 a |= y;  |  r2

และสร้างผลลัพธ์ต่อไปนี้

ป้อนคำอธิบายภาพที่นี่

หรือคุณสามารถแทนที่ backticks ( ` ) ด้วย<code></code>มาร์กอัปซึ่งช่วยแก้ไขปัญหาได้ดียิ่งขึ้นโดยการรักษาการแสดงผลไว้

      a     |  r  
------------|-----
 `a += x;`  |  r1
<code>a &#124;= y;</code>  |  r2

สร้างผลลัพธ์ต่อไปนี้

ป้อนคำอธิบายภาพที่นี่


4
ใช่ทำงานโดยใช้<code></code>มาร์กอัป! ขอบคุณมาก.
Marc de Verdelhan

<code>Bitbucket ไม่อนุญาต-blocks: - / มีความเป็นไปได้อื่นหรือไม่?
Sergej

2
บน GitHub การหลีกเลี่ยง markdown ใช้\|งานได้ ผู้คนข้ามไปที่ HTML เร็วเกินไปโดยไม่พยายามหนีจากการลดราคา
jnm2

ตั้งแต่เดือนมีนาคม 2019 ในGitlab Wikis คุณยังคงต้องใช้ " &#124;" ในโค้ดมาร์กอัป
knb

ยังไม่รองรับBitbucket
Lorenzo Solano Martinez

21

ในช่วงกลางปี ​​2560 ไปป์อาจถูกปิดทับด้วยแบ็กสแลชดังนี้: \|

สิ่งนี้ใช้ได้ทั้งภายในและภายนอกของแบ็คทิก

ตอนนี้โค้ด HTML อาจถูกนำมาใช้อีกครั้งเช่นกัน แต่จะใช้นอกแบ็กติกเท่านั้น

คำตอบก่อนหน้า:

ณ เดือนมีนาคม 2017, คำตอบที่ได้รับการยอมรับหยุดทำงานเพราะGitHub เปลี่ยน parser การใช้สัญลักษณ์ Unicode อื่นที่คล้ายกับไปป์ดูเหมือนจะเป็นทางเลือกเดียวในตอนนี้เช่น:

ǀ (U + 01C0 คลิกทันตกรรมอักษรละติน)

∣ (U + 2223 สัญลักษณ์แบ่ง)

⎮ (U + 23AE, ส่วนขยายอินทิกรัล)


2
คำตอบที่ยอมรับดูเหมือนจะใช้ได้ผลสำหรับฉันใน GitHub ทั้งใน Gist และในคำขอดึงข้อมูลที่ฉันส่งไป
Iiridayn

9

คุณสามารถหลบหนี|ในตารางใน GFM ได้\ดังนี้:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a \|= y;` |  r2

ดูhttps://github.github.com/gfm/#example-191หรือhttps://github.com/dotnet/csharplang/pull/743เช่น


ขอบคุณ. สิ่งนี้ใช้ได้กับ Github Github MarkDown ดูเหมือนว่าจะรู้จักสตริง\|ภายในตารางและดำเนินการตามนั้น
Stephen Chung
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.