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

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.

Adius
quelle
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.

Thamme Gowda
quelle
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
Stuart Campbell
quelle
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.

Tony Barganski
quelle
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  |
RedGrittyBrick
quelle
Ü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 .

Daniel
quelle
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"__ |
TT--
quelle
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>
Steven Penny
quelle
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.

Manngo
quelle
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.

Long-John Silver
quelle
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:

Tonejito
quelle