สร้างตารางโดยไม่มีส่วนหัวใน Markdown


141

เป็นไปได้หรือไม่ที่จะสร้างตารางโดยไม่มีส่วนหัวใน Markdown

HTML จะมีลักษณะเช่นนี้:

<table>
<tr>
    <td>Key 1</td>
    <td>Value 1</td>
</tr>
<tr>
    <td>Key 2</td>
    <td>Value 2</td>
</tr>
</table>

คำตอบ:


92

ตัวแยกวิเคราะห์ Markdown ส่วนใหญ่ไม่สนับสนุนตารางที่ไม่มีส่วนหัว นั่นหมายความว่าจำเป็นต้องมีบรรทัดการแยกสำหรับส่วนหัว

ตัวแยกวิเคราะห์ที่ไม่สนับสนุนตารางโดยไม่มีส่วนหัว

  • multimarkdown
  • Maruku : การใช้งานที่เป็นที่นิยมใน Ruby
  • คำพูด : "ตารางทั้งหมดต้องเริ่มต้นด้วยส่วนหัวอย่างน้อยหนึ่งแถว"
  • PHP Markdown Extra "บรรทัดที่สองมีบรรทัดคั่นบังคับระหว่างส่วนหัวและเนื้อหา"

  • RDiscount ใช้ไวยากรณ์ PHP Markdown Extra

  • Markit รส GitHub
  • Parsedown : ตัวแยกวิเคราะห์ใน PHP (ใช้เช่นในอีเมล Laravel)

Parsers ที่ทำตารางการสนับสนุนโดยไม่ต้องหัว

  • Kramdown : ตัวแยกวิเคราะห์ใน Ruby
  • ข้อความ :: MultiMarkdown : โมดูล Perl CPAN
  • MultiMarkdown : แอปพลิเคชัน Windows
  • ParseDown Extra : ตัวแยกวิเคราะห์ใน PHP
  • Pandoc : ตัวแปลงเอกสารสำหรับบรรทัดคำสั่งที่เขียนใน Haskell (รองรับตารางที่ไม่มีส่วนหัวผ่านsimple_tablesและmultiline_tablesส่วนขยาย)
  • Flexmark : ตัวแยกวิเคราะห์ใน Java

โซลูชัน CSS

หากคุณสามารถเปลี่ยน CSS ของเอาต์พุต HTML ได้คุณสามารถใช้:emptyคลาสหลอกเพื่อซ่อนส่วนหัวที่ว่างเปล่าและทำให้ดูเหมือนไม่มีส่วนหัวเลย


28
ตัวแยกวิเคราะห์ของ Github สามารถเพิ่มลงในรายการผู้ที่ไม่สนับสนุน
Quantum7

4
ข้อมูลเพิ่มเติมเกี่ยวกับโซลูชัน CSS: stackoverflow.com/questions/12023771/hide-empty-cells-in-table
Vadzim

80

หากคุณไม่รังเกียจที่จะเสียสายโดยปล่อยให้มันว่างลองพิจารณาแฮ็คต่อไปนี้ (มันคือแฮ็คและใช้สิ่งนี้เฉพาะเมื่อคุณไม่ต้องการเพิ่มปลั๊กอินเพิ่มเติม)

| | | |
|-|-|-|
|__Bold Key__| Value1 |
| Normal Key | Value2 |

หากต้องการดูลักษณะที่ปรากฏด้านบนให้คัดลอกข้างบนและไปที่https://stackedit.io/editor

มันทำงานร่วมกับการใช้MarkdownของGitLab / GitHub


1
การติดตั้งใช้งานอะไรได้บ้าง? มันไม่ทำงานกับ Text :: MultiMarkdown ของ Perl แต่ฉันคิดว่ามันอาจทำงานได้กับการใช้งาน PHP MultiMarkdown
RedGrittyBrick

2
มันทำงานร่วมกับการใช้งาน markdown ของ gitlab / github ฉันไม่แน่ใจเกี่ยวกับข้อความของ perl :: MultiMarkdown
Thamme Gowda

8
สิ่งนี้จะสร้างหัวตารางที่ว่างเปล่าและแถวที่ว่างเปล่า
Gajus

มันใช้งานได้ดีจริง ๆ กับpandocmarkdown เป็น pdf
Alex Baranowski

ขอบคุณ! ใช้งานได้กับมาร์คเวล Laravel 5.8 (หลาย) เช่นกัน ไม่เห็นส่วนหัว - มีเพียงบรรทัดเดียว ดูเหมือนตัวแบ่งซึ่งสามารถลบออกได้โดยใช้ CSS บางอย่างในชุดรูปแบบ
2966991

17

ฉันได้ทำงานกับ Markdown ของ Bitbucket โดยใช้ลิงค์เปล่า:

[]()  | 
------|------
Row 1 | row 2

2
จะแจ้งให้บรรทัดส่วนหัวที่ว่างเปล่า อย่างน้อยครึ่งหนึ่งของความสูงนั้นเป็นเส้นปกติ ทำงานให้ฉันในฐานะ Hack ใน github ด้วย
Londane

แฮ็คนี้เหมาะกับฉันเมื่อเขียนเอกสารใน Insomnia ยังคงสร้างบรรทัดส่วนหัว แต่มันสั้นกว่ามากถ้าฉันใส่ข้อความลงไป ขอบคุณ!
jkmartindale

ยอดเยี่ยม! ฉันยังเห็นพื้นที่แนวตั้งเล็ก ๆ กับ Github Markdown แต่ก็ดีกว่าเมื่อก่อน
Keith Bennett

15

โซลูชันสากล

หลายข้อเสนอแนะที่น่าเสียดายที่ไม่ได้ทำงานสำหรับทุก Markdown ผู้ชม / บรรณาธิการเช่นที่เป็นที่นิยมMarkdown Viewerส่วนขยายของ Chrome แต่พวกเขาทำผลงานกับอัจฉริยะ iA Writer

สิ่งที่ดูเหมือนจะใช้ได้กับทั้งโปรแกรมยอดนิยมเหล่านี้ (และอาจใช้ได้กับแอปพลิเคชันของคุณโดยเฉพาะ) คือการใช้HTML comment blocks ('<!-- -->'):

| <!-- -->    | <!-- -->    |
|-------------|-------------|
| Foo         | Bar         |

เช่นเดียวกับคำแนะนำก่อนหน้านี้ที่ระบุไว้สิ่งนี้จะเพิ่มแถวส่วนหัวที่ว่างเปล่าในตัวแสดง / ตัวแก้ไข Markdown ของคุณ ใน iA Writer มันมีขนาดเล็กพอที่จะไม่เข้ากับฉันมากเกินไป


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

ฉันคิดว่า @hackel เข้าใจผิด นี่ไม่ได้จัดแนวคอลัมน์โดยใช้ความกว้างคงที่ แต่จะเป็นการแก้ปัญหาที่ดีที่จะมีส่วนหัวคอลัมน์ที่ถูกต้อง มันเป็นวิธีแก้ปัญหาที่ดีในสถานการณ์ของฉัน ตารางยังคงแสดงผลตามที่ตั้งใจ / คาดไว้ มันไม่มีแถวส่วนหัว
mdahlman

8

ต่อไปนี้ใช้ได้ดีสำหรับฉันใน GitHub แถวแรกไม่มีตัวหนาอีกต่อไปเนื่องจากไม่ใช่ส่วนหัว:

<table align="center">
    <tr>
        <td align="center"><img src="docs/img1.png?raw=true" alt="some text"></td>
        <td align="center">Some other text</td>
        <td align="center">More text</td>
    </tr>
    <tr>
        <td align="center"><img src="docs/img2.png?raw=true" alt="some text"></td>
        <td align="center">Some other text 2</td>
        <td align="center">More text 2</td>
    </tr>
</table>

ตรวจสอบตาราง HTML ตัวอย่างโดยไม่ต้องโหม่งที่นี่


5
นี่เป็นสิ่งที่ผู้ถามบอกว่าพวกเขาไม่ต้องการ
Neil Mayhew

ดูเหมือนว่าตาราง HTML จะไม่ทำงานใน Bitbucket ( community.atlassian.com/t5/Bitbucket-questions/ ...... ) - มันจะแสดง HTML เองแทนที่จะแสดงผลตาราง
jsaven

7

การข้ามส่วนหัวเหนือตัวแบ่งสร้างตาราง headerless ในอย่างน้อย Perl Text :: MultiMarkdown และใน FletcherPenney MultiMarkdown

|-------------|--------|
|**Name:**    |John Doe|
|**Position:**|CEO     |

ดูคำขอคุณสมบัติ PHP Markdown


ส่วนหัวที่ว่างเปล่าใน PHP Parsedownสร้างตารางที่มีส่วนหัวที่ว่างเปล่าซึ่งมักจะมองไม่เห็น (ขึ้นอยู่กับ CSS ของคุณ) และดูเหมือนกับตารางส่วนหัว

|     |     |
|-----|-----|
|Foo  |37   |
|Bar  |101  |

เกี่ยวกับการใช้ Parsedown ส่วนหัวยังคงอยู่ที่นี่เพียงตรวจสอบ HTML หากคุณมีการเสริม CSS บนเซลล์คุณจะเห็นเซลล์ส่วนหัว แต่ฉันเดาว่าtable th:empty { padding: 0; }จะแก้ไข
AymDev

6

อย่างน้อยสำหรับMarkit Flavoured ของ GitHubคุณสามารถให้ภาพลวงตาได้โดยการทำรายการแถวที่ไม่ใช่ส่วนหัวทั้งหมดด้วยตัวหนา__หรือ**แบบปกติ:

|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |

ฉันกำลังมองหาบางอย่างที่ทำงานใน GFM และแฮ็คนี้เป็นโฆษณาที่สร้างสรรค์!
Mrchief

3
$ cat foo.md
Key 1 | Value 1
Key 2 | Value 2
$ kramdown foo.md
<table>
  <tbody>
    <tr>
      <td>Key 1</td>
      <td>Value 1</td>
    </tr>
    <tr>
      <td>Key 2</td>
      <td>Value 2</td>
    </tr>
  </tbody>
</table>

นี้ดูเหมือนจะไม่ทำงานร่วมกับgithub.com/chjj/marked มีการอ้างอิงซึ่งฉันสามารถค้นหาว่านี่เป็นพฤติกรรมที่คาดหวังหรือไม่?
adius

@AdrianSieber ฉันใช้ Kramdown ฉันไม่สามารถพูดได้อีก
Steven Penny

2

คุณอาจซ่อนหัวเรื่องได้หากคุณสามารถเพิ่ม CSS ต่อไปนี้:

<style>
    th {
        display: none;
    }
</style>

นี่เป็นบิตที่ค่อนข้างหนักและไม่แยกความแตกต่างระหว่างตาราง แต่อาจทำเพื่องานง่ายๆ


เคล็ดลับ CSS เดียวที่เหมาะกับฉันด้วยเหตุผลบางอย่าง (ฉันใช้ VNote กับ Markdown-it renderer) ไม่มีวิธีแก้ไขปัญหาใด ๆ ที่ได้รับที่นี่: stackoverflow.com/questions/12023771/hide-empty-cells-in-tableทำงาน
สิ่งที่


0

วิธีการแก้ปัญหาของ@thamme-gowdaใช้ได้กับรูปภาพเช่นกัน!

| | |:----------------------------------------------------------------------------:| | ![](https://gravatar.com/avatar/4cc702785290b4934c531c56f6061e5e "Tonejito") |

คุณสามารถตรวจสอบเรื่องนี้ในส่วนสำคัญที่ฉันทำเพื่อสิ่งนั้น นี่คือการเรนเดอร์ของตารางบน GitHub และ GitLab:

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