Kann ich Tabellenzeilen in Markdown zusammenführen?


76

Gibt es eine Möglichkeit, zusammengeführte Zeilen in einer Tabellenspalte in Markdown-Dateien wie ReadMe.md-Dateien zu erstellen?

Etwas wie das:

Tabelle


Ich fürchte nicht. Markdown ist ein einfacher HTML / Text-Editor. Sie haben nicht viele Funktionen ... 😞
H. Pauwelyn

@ H.Pauwelyn Khowst du eine alternative Lösung? Kann ich eine Excel-Datei darin einbetten?
Dev-Masih

Nein, wie ich schon sagte, es ist eine einfache Sache. Ich schlage vor, einen Codeblock zu verwenden. Es beginnt und endet mit drei Back Ticks x oder jede Zeile beginnt mit Leerzeichen.
H. Pauwelyn

Vielleicht versuchen Sie es mit rohen HTML-Tabellen in Ihrer Markdown-Datei?
mb21

1
@ dev-masih, Beantwortung Ihrer Frage nach einer alternativen Lösung. Sie können AsciiDoc anstelle von Markdown verwenden. GitHub unterstützt es jetzt. Ihre Tabelle in AsciiDoc-Syntax : [cols="^,^,^"] \n|=== \n|Layer1 |Layer2 |Layer3 \n \n.4+.^|L1 Name .2+.^|L2 Name A |L3 Name A \n|L3 Name B \n.2+.^|L2 Name B |L3 Name C \n|L3 Name D \n \n|===. Ersetzen Sie alle \ndurch Zeilentrenner.
PetroCliff

Antworten:


61

Nein, dies ist mit GitHub-Flavored Markdown nicht möglich. Wie die Spezifikation erklärt (Hervorhebung hinzugefügt):

Der Rest der Tabellenzeilen kann in der Anzahl der Zellen variieren. Wenn die Anzahl der Zellen geringer ist als die Anzahl der Zellen in der Kopfzeile, werden leere Zellen eingefügt . Wenn es größere gibt, wird der Überschuss ignoriert :

Natürlich können Sie jederzeit auf Roh-HTML zurückgreifen. Tatsächlich enthält GitHub das Attribut rowspan(und colspan) in der Whitelist .

<table>
    <thead>
        <tr>
            <th>Layer 1</th>
            <th>Layer 2</th>
            <th>Layer 3</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td rowspan=4>L1 Name</td>
            <td rowspan=2>L2 Name A</td>
            <td>L3 Name A</td>
        </tr>
        <tr>
            <td>L3 Name B</td>
        </tr>
        <tr>
            <td rowspan=2>L2 Name B</td>
            <td>L3 Name C</td>
        </tr>
        <tr>
            <td>L3 Name D</td>
        </tr>
    </tbody>
</table>

Probieren Sie es selbst unter https://jsfiddle.net/7h89y55r/


Das ist perfekt und das Ergebnis ist genau das, was ich will
dev-masih

1
Die Verwendung von rohem HTML ist ein Kompromiss. Es ist flexibler, aber Sie können Markdown in den HTML-Tags nicht mehr verwenden. <table><tr><td>This is not emphasized text: *the asterisks* will be rendered literally.</td></tr></table>
Chharvey

Perfekt! Hier ist auch ein HTML-Tabellengenerator, mit dem Sie eine Tabelle einfach erstellen
np8

19

Die Standard-Commonmark unterstützt keine Tabellen und verweist nicht auf bestimmte Tabellenerweiterungen oder empfiehlt diese nicht ( Permalink der neuesten Version ab 2018-03 ). Ihre Frage bezieht sich nicht speziell auf Markdown (GFM) mit Github-Geschmack, aber GFM basiert auf Commonmark mit einer Tabellenerweiterung, die dies nicht unterstützt.

MultiMarkdown ab mindestens Version 5 unterstützt diese Tabellentypen ( Docs Permalink ) auf dieselbe Weise wie Michael Fortin für PHP Markdown Extra.

|             |          Grouping           ||
First Header  | Second Header | Third Header |
 ------------ | :-----------: | -----------: |
Content       |          *Long Cell*        ||
Content       |   **Cell**    |         Cell |

New section   |     More      |         Data |
And more      | With an escaped '\|'         ||  
[Prototype table]

in Tabelle

Ich verwende normalerweise Markdown-it (VSCode-integriertes Markdown und mein Ghost-Blog verwenden es), das nur Tabellen mit Github-Geschmack unterstützt, aber jemand hat damit eine Erweiterung ( Markdown-it-multimd-Tabelle ) für diese Tabellen erstellt. Letztendlich haben Sie Optionen.


5

Wenn Sie Jekyll verwenden, um die Ausrichtung , das Zusammenführen usw. von Tabellenzellen zu unterstützen , kann Ihnen das Folgende helfen, dies einfacher zu machen.

Jekyll-Raumschiff - 🚀 Ein Jekyll-Plugin, das leistungsstarke Unterstützung für Tabelle, Mathjax, Plantuml, Meerjungfrau, Video, Youtube, Emoji, Vimeo, Dailymotion usw. bietet.

https://github.com/jeffreytse/jekyll-spaceship

Im Moment werden diese erweiterten Funktionen bereitgestellt:

  • Zellen, die sich über mehrere Spalten erstrecken
  • Zellen, die sich über mehrere Zeilen erstrecken
  • Zellentext wird separat ausgerichtet
  • Tabellenkopf nicht erforderlich
  • Gruppierte Tabellenkopfzeilen oder Datenzeilen

Abschlag:

Tabellencode

Der obige Code würde wie folgt analysiert:

HTML-Tabelle


3

Ich habe die Frage von OP in den Kommentaren zu einer alternativen Lösung beantwortet, aber der Kommentar wurde auf eine Zeile gequetscht. Fügen Sie es hier als Antwort hinzu, um die Formatierung richtig anzuzeigen.

Sie können AsciiDoc anstelle von Markdown verwenden. GitHub unterstützt es jetzt. Verwenden Sie einfach README.adocanstelle README.mdIhrer Tabelle die AsciiDoc-Syntax:

[cols="^.^,^.^,^.^"]
|===
|Layer1 |Layer2 |Layer3

.4+|L1 Name .2+|L2 Name A |L3 Name A
|L3 Name B
.2+|L2 Name B |L3 Name C
|L3 Name D
|===

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.