Créer un tableau sans en-tête dans Markdown

141

Est-il possible de créer un tableau sans en-tête dans Markdown?

Le HTML ressemblerait à ceci:

<table>
<tr>
    <td>Key 1</td>
    <td>Value 1</td>
</tr>
<tr>
    <td>Key 2</td>
    <td>Value 2</td>
</tr>
</table>
adius
la source

Réponses:

92

La plupart des analyseurs Markdown ne prennent pas en charge les tableaux sans en-têtes. Cela signifie que la ligne de séparation pour les en-têtes est obligatoire.

Analyseurs qui ne prennent pas en charge les tableaux sans en-têtes

Analyseurs qui prennent en charge les tableaux sans en-têtes.

  • Kramdown : un analyseur en Ruby
  • Texte :: MultiMarkdown : module CPAN Perl.
  • MultiMarkdown : application Windows.
  • ParseDown Extra : un analyseur en PHP.
  • Pandoc : Un convertisseur de document pour la ligne de commande écrite en Haskell (prend en charge les tables sans en-tête via ses extensions simple_tableset multiline_tables)
  • Flexmark : un analyseur en Java.

Solution CSS

Si vous êtes capable de changer le CSS de la sortie HTML, vous pouvez cependant utiliser la :emptypseudo-classe pour masquer un en-tête vide et donner l'impression qu'il n'y a pas d'en-tête du tout.

adius
la source
28
L'analyseur de Github pourrait être ajouté à la liste de ceux qui ne le supportent pas.
Quantum7
4
En savoir plus sur la solution CSS: stackoverflow.com/questions/12023771/hide-empty-cells-in-table
Vadzim
80

Si cela ne vous dérange pas de gaspiller une ligne en la laissant vide, considérez le hack suivant (c'est un hack, et ne l'utilisez que si vous n'aimez pas ajouter de plugins supplémentaires).

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

Pour voir à quoi pourrait ressembler ce qui précède, copiez ce qui précède et visitez https://stackedit.io/editor

Il a travaillé avec gitlab ce / GitHub de Markdown mises en œuvre.

Thamme Gowda
la source
1
Avec quelle mise en œuvre cela fonctionne-t-il? Cela ne fonctionne pas avec Text :: MultiMarkdown de Perl mais je pense que cela pourrait fonctionner avec certaines implémentations de PHP MultiMarkdown.
RedGrittyBrick
2
Cela fonctionnait avec les implémentations de markdown de gitlab / github. Je ne suis pas sûr du texte de Perl :: MultiMarkdown
Gowda
8
Cela créera un en-tête de tableau vide et une ligne vide.
Gajus
Cela fonctionne très bien avec le pandocdémarquage en pdf.
Alex Baranowski
Merci! Cela fonctionne également avec le démarquage (multi) de Laravel 5.8. Aucun en-tête n'est visible - seulement une ligne. Ressemble à un diviseur, qui peut être supprimé en utilisant du CSS dans le thème.
user2966991
17

Je l'ai fait fonctionner avec Markdown de Bitbucket en utilisant un lien vide:

[]()  | 
------|------
Row 1 | row 2
Stuart Campbell
la source
2
Invitera également une ligne d'en-tête vide. Au moins sa moitié seulement de la hauteur d'une ligne normale. A travaillé pour moi en tant que Hack dans github aussi
Londane
Ce hack a fonctionné pour moi lors de l'écriture de documentation dans Insomnia. Crée toujours une ligne d'en-tête, mais c'est beaucoup plus court que si j'y mets du texte. Merci!
jkmartindale
Brillant! Je vois encore un petit espace vertical avec Github Markdown, mais c'est mieux qu'avant.
Keith Bennett
15

Solution universelle

La plupart des suggestions ne fonctionnent malheureusement pas pour tous les lecteurs / éditeurs Markdown, par exemple la populaire extension Markdown Viewer Chrome, mais elles fonctionnent avec iA Writer .

Ce qui semble fonctionner dans ces deux programmes populaires (et pourrait fonctionner pour votre application particulière) est d'utiliser HTML comment blocks ('<!-- -->'):

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

Comme certaines des suggestions précédentes, cela ajoute une ligne d'en-tête vide dans votre visionneuse / éditeur Markdown. Dans iA Writer, il est esthétiquement suffisamment petit pour ne pas trop me gêner.

Tony Barganski
la source
Cela dégrade complètement l'intérêt d'utiliser Markdown, car lorsqu'ils sont considérés comme du texte uniquement, les commentaires seront supprimés et les colonnes ne seront même plus alignées.
hackel
Je pense que @hackel a mal compris. Cela n'aligne pas les colonnes en utilisant des largeurs fixes. Au contraire, cela donne une bonne solution de contournement pour avoir des en-têtes de colonne valides mais vides. C'était une excellente solution de contournement dans ma situation. Le tableau est toujours rendu comme prévu / attendu; il n'avait simplement pas de ligne d'en-tête.
mdahlman
8

Ce qui suit fonctionne bien pour moi dans GitHub. La première ligne n'est plus en gras car ce n'est pas un en-tête:

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

Vérifiez un exemple de tableau HTML sans en-tête ici .

Daniel
la source
5
C'est exactement ce que l'interlocuteur a dit ne pas vouloir.
Neil Mayhew
Les tableaux HTML ne semblent pas fonctionner dans Bitbucket ( community.atlassian.com/t5/Bitbucket-questions/… ) - il affiche le HTML lui-même plutôt que le rendu d'un tableau.
jsaven
7

Omettre l'en-tête au-dessus du diviseur produit une table sans en-tête dans au moins Perl Text :: MultiMarkdown et dans FletcherPenney MultiMarkdown

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

Voir la demande de fonctionnalité PHP Markdown


Les en-têtes vides dans PHP Parsedown produisent des tableaux avec des en-têtes vides qui sont généralement invisibles (selon votre CSS) et qui ressemblent donc à des tableaux sans en-tête.

|     |     |
|-----|-----|
|Foo  |37   |
|Bar  |101  |
RedGrittyBrick
la source
À propos de l'utilisation de Parsedown, en fait l'en-tête est toujours là, il suffit de vérifier le HTML. Si vous avez un remplissage CSS sur les cellules, vous verrez les cellules d'en-tête. Mais je suppose que cela table th:empty { padding: 0; }réglerait ce problème.
AymDev
6

Au moins pour le GitHub Flavored Markdown , vous pouvez donner l'illusion en mettant en gras toutes les entrées de ligne sans en-tête avec le format normal __ou **:

|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |
TT -
la source
Je cherchais quelque chose qui fonctionnerait dans GFM et ce hack est créatif!
Mrchief le
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
la source
Cela ne semble pas fonctionner avec github.com/chjj/marked . Y a-t-il une référence, dans laquelle je peux rechercher si c'est même le comportement attendu?
adius
@AdrianSieber J'utilise Kramdown, je ne peux pas en parler d'autre.
Steven Penny
2

Vous pourrez peut-être masquer un en-tête si vous pouvez ajouter le CSS suivant:

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

C'est un peu lourd et ne fait pas de distinction entre les tables, mais cela peut le faire pour une tâche simple.

Manngo
la source
La seule astuce CSS qui fonctionne pour moi pour une raison quelconque (j'utilise VNote avec le moteur de rendu Markdown-it). Aucune des solutions données ici: stackoverflow.com/questions/12023771/hide-empty-cells-in-table n'a fonctionné.
quoi le
1

J'utilise <span>dans le premier en-tête de colonne:

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

Il crée un en-tête vide avec une bordure, mais avec la moitié de la taille.

Long-John Silver
la source
0

La solution de @ thamme-gowda fonctionne aussi pour les images!

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

Vous pouvez vérifier ceci sur l' essentiel que j'ai fait pour cela . Voici un rendu du hack de table sur GitHub et GitLab:

tonejito
la source