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

dev-masih
quelle
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/

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

Ben Creasy
quelle
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

JT
quelle
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
|===
PetroCliff
quelle