Erstellen Sie in Markdown eine Tabelle ohne Kopfzeile


140

Ist es möglich, in Markdown eine Tabelle ohne Header zu erstellen?

Der HTML-Code würde folgendermaßen aussehen:

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

Antworten:


92

Die meisten Markdown-Parser unterstützen keine Tabellen ohne Header. Das heißt, die Trennlinie für Header ist obligatorisch.

Parser, die keine Tabellen ohne Header unterstützen

Parser, die Tabellen ohne Header unterstützen.

CSS-Lösung

Wenn Sie das CSS der HTML-Ausgabe ändern können, können Sie die Pseudoklasse jedoch nutzen :empty, um einen leeren Header auszublenden und den Eindruck zu erwecken, dass überhaupt kein Header vorhanden ist.


27
Githubs Parser könnte zur Liste derer hinzugefügt werden, die ihn nicht unterstützen.
Quantum7


79

Wenn es Ihnen nichts ausmacht, eine Zeile zu verschwenden, indem Sie sie leer lassen, ziehen Sie den folgenden Hack in Betracht (es ist ein Hack und verwenden Sie diesen nur, wenn Sie keine zusätzlichen Plugins hinzufügen möchten).

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

Um zu sehen, wie das Obige aussehen könnte, kopieren Sie das Obige und besuchen Sie https://stackedit.io/editor

Er arbeitete mit Gitlab / GitHub ‚s Markdown - Implementierungen.


1
Mit welcher Implementierung funktioniert das? Es funktioniert nicht mit Perls Text :: MultiMarkdown, aber ich denke, es könnte mit einigen PHP MultiMarkdown-Implementierungen funktionieren.
RedGrittyBrick

2
Es funktionierte mit den Markdown-Implementierungen von gitlab / github. Ich bin nicht sicher über
Perls

8
Dadurch werden ein leerer Tabellenkopf und eine leere Zeile erstellt.
Gajus

Dies funktioniert tatsächlich hervorragend mit pandocAbschriften auf PDF.
Alex Baranowski

Vielen Dank! Dies funktioniert auch mit Laravel 5.8 (Multi) Markdown. Es sind keine Überschriften sichtbar - nur eine Zeile. Sieht aus wie ein Teiler, der mit etwas CSS im Thema entfernt werden kann.
user2966991

17

Ich habe dies mit Bitbuckets Markdown über einen leeren Link zum Laufen gebracht:

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

2
Fordert auch eine leere Kopfzeile auf. Zumindest ist es nur halb so hoch wie eine normale Linie. Arbeitete für mich auch als Hack in Github
Londane

Dieser Hack hat bei mir funktioniert, als ich Dokumentation in Insomnia geschrieben habe. Erstellt immer noch eine Kopfzeile, ist aber viel kürzer als wenn ich dort Text einfüge. Vielen Dank!
Jkmartindale

Brillant! Ich sehe immer noch einen kleinen vertikalen Raum mit Github Markdown, aber es ist besser als zuvor.
Keith Bennett

15

Universelle Lösung

Viele der Vorschläge funktionieren leider nicht für alle Markdown-Viewer / Editoren, z. B. die beliebte Markdown Viewer Chrome-Erweiterung, aber sie funktionieren mit iA Writer .

In beiden gängigen Programmen (und möglicherweise für Ihre spezielle Anwendung) scheint Folgendes zu funktionieren HTML comment blocks ('<!-- -->'):

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

Wie bei einigen der zuvor genannten Vorschläge wird hierdurch eine leere Kopfzeile in Ihrem Markdown-Viewer / Editor hinzugefügt. In iA Writer ist es ästhetisch klein genug, dass es mir nicht zu sehr im Weg steht.


Dies macht die Verwendung von Markdown völlig überflüssig, da bei Betrachtung als reiner Text die Kommentare entfernt werden und die Spalten nicht einmal mehr ausgerichtet werden.
Hackel

Ich denke @hackel missverstanden. Dadurch werden die Spalten nicht mit festen Breiten ausgerichtet. Vielmehr bietet es eine gute Problemumgehung, gültige, aber leere Spaltenüberschriften zu haben. Es war eine großartige Lösung für meine Situation. Die Tabelle wird weiterhin wie beabsichtigt / erwartet gerendert. Es hatte einfach keine Kopfzeile.
Mdahlman

7

Wenn Sie den Header über dem Teiler weglassen, wird mindestens in Perl Text :: MultiMarkdown und in FletcherPenney MultiMarkdown eine Tabelle ohne Header erstellt

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

Siehe PHP Markdown-Funktionsanforderung


Leere Header in PHP Parsedown erzeugen Tabellen mit leeren Headern, die normalerweise unsichtbar sind (abhängig von Ihrem CSS) und daher wie Tabellen ohne Header aussehen.

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

Über die Verwendung von Parsedown, eigentlich ist der Header noch hier, überprüfen Sie einfach den HTML-Code. Wenn Sie ein CSS-Padding für Zellen haben, werden die Header-Zellen angezeigt. Aber ich denke, das table th:empty { padding: 0; }würde das beheben.
AymDev

7

Das Folgende funktioniert gut für mich in GitHub. Die erste Zeile ist nicht mehr fett gedruckt, da es sich nicht um eine Kopfzeile handelt:

<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>

Überprüfen Sie eine HTML - Beispiel Tabelle ohne Kopf hier .


5
Dies ist genau das, was der Fragesteller sagte, dass sie nicht wollten.
Neil Mayhew

HTML-Tabellen scheinen in Bitbucket nicht zu funktionieren ( community.atlassian.com/t5/Bitbucket-questions/… ) - es zeigt den HTML-Code selbst an, anstatt eine Tabelle zu rendern.
Jsaven

6

Zumindest für den GitHub Flavored Markdown können Sie die Illusion vermitteln, indem Sie alle Nicht-Header-Zeileneinträge mit der regulären oder Formatierung fett formatieren:__**

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

Ich habe nach etwas gesucht, das in GFM funktioniert, und dieser Hack ist kreativ!
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>

Dies scheint mit github.com/chjj/marked nicht zu funktionieren . Gibt es eine Referenz, in der ich nachschlagen kann, ob dies überhaupt das erwartete Verhalten ist?
Adius

@AdrianSieber Ich benutze Kramdown, ich kann nicht über einen anderen sprechen.
Steven Penny

2

Möglicherweise können Sie eine Überschrift ausblenden , wenn Sie das folgende CSS hinzufügen können:

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

Dies ist etwas umständlich und unterscheidet nicht zwischen Tabellen, kann aber für eine einfache Aufgabe ausreichen.


Der einzige CSS-Trick, der aus irgendeinem Grund für mich funktioniert (ich verwende VNote mit dem Markdown-it-Renderer). Keine der hier angegebenen Lösungen: stackoverflow.com/questions/12023771/hide-empty-cells-in-table hat funktioniert.
Was zum

1

Ich benutze <span>in der ersten Spaltenüberschrift:

 <span> |
---     |    ---
Value   |  Value
Value   |  Value

Es wird eine leere Kopfzeile mit Rand erstellt, jedoch mit der halben Größe.


0

Die Lösung von @ thamme-gowda funktioniert auch für Bilder!

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

Sie können dies anhand eines Kerns überprüfen, den ich dafür gemacht habe . Hier ist ein Rendering des Tabellenhacks auf GitHub und GitLab:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.