Crea una tabella senza intestazione in Markdown


141

È possibile creare una tabella senza intestazione in Markdown?

L'HTML sarebbe simile al seguente:

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

Risposte:


92

La maggior parte dei parser Markdown non supporta le tabelle senza intestazioni. Ciò significa che la linea di separazione per le intestazioni è obbligatoria.

Parser che non supportano tabelle senza intestazioni

Parser che fanno le tabelle di supporto, senza intestazioni.

Soluzione CSS

Se sei in grado di modificare il CSS dell'output HTML, puoi comunque sfruttare la :emptypseudo classe per nascondere un'intestazione vuota e far sembrare che non ci sia alcuna intestazione.


28
Il parser di Github potrebbe essere aggiunto all'elenco di quelli che non lo supportano.
Quantum7


80

Se non ti dispiace sprecare una linea lasciandola vuota, considera il seguente hack (è un hack e usalo solo se non ti piace aggiungere plugin aggiuntivi).

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

Per vedere come potrebbe apparire quello sopra, copia quanto sopra e visita https://stackedit.io/editor

Ha funzionato con GitLab / GitHub s' Markdown implementazioni.


1
Con quale implementazione funziona? Non funziona con Perl's Text :: MultiMarkdown ma penso che potrebbe funzionare con alcune implementazioni PHP MultiMarkdown.
RedGrittyBrick il

2
Ha funzionato con le implementazioni markdown di gitlab / github. Non sono sicuro del testo di Perl :: MultiMarkdown
Thamme Gowda,

8
Ciò creerà un'intestazione di tabella vuota e una riga vuota.
Gajus,

Questo in realtà funziona benissimo con pandocmarkdown in pdf.
Alex Baranowski il

Grazie! Funziona anche con il markdown di Laravel 5.8 (multi). Non sono visibili intestazioni, solo una linea. Sembra un divisore, che può essere rimosso usando alcuni CSS nel tema.
user2966991

17

Ho funzionato con Markdown di Bitbucket usando un link vuoto:

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

2
Richiederà anche una riga di intestazione vuota. Almeno è solo metà dell'altezza come una linea normale. Ha funzionato anche per me come Hack in github
Londane,

Questo hack ha funzionato per me quando scrivevo documentazione in Insomnia. Crea ancora una riga di intestazione, ma è molto più breve rispetto a quando inserisco del testo. Grazie!
jkmartindale,

Brillante! Vedo ancora un piccolo spazio verticale con Github Markdown, ma è meglio di prima.
Keith Bennett,

15

Soluzione universale

Sfortunatamente molti dei suggerimenti non funzionano per tutti i visualizzatori / editor di Markdown, ad esempio la popolare estensione Chrome di Markdown Viewer , ma funzionano con iA Writer .

Ciò che sembra funzionare su entrambi questi programmi popolari (e potrebbe funzionare per la tua particolare applicazione) è usare HTML comment blocks ('<!-- -->'):

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

Come alcuni dei precedenti suggerimenti indicati, questo aggiunge una riga di intestazione vuota nel visualizzatore / editor Markdown. In iA Writer, è esteticamente abbastanza piccolo da non ostacolarlo troppo.


Ciò smentisce completamente il punto di usare Markdown, poiché quando vengono visualizzati come solo testo, i commenti verranno eliminati e le colonne non si allineeranno più.
hackel

Penso che @hackel sia stato frainteso. Questo non allinea le colonne usando larghezze fisse. Piuttosto, offre una buona soluzione per avere intestazioni di colonna valide ma vuote. È stata una grande soluzione nella mia situazione. Il rendering della tabella continuava come previsto / previsto; semplicemente non aveva una riga di intestazione.
mdahlman,

8

Quanto segue funziona bene per me in GitHub. La prima riga non è più in grassetto in quanto non è un'intestazione:

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

Controllare una tabella HTML di esempio, senza un colpo di testa qui .


5
Questo è proprio ciò che l'interrogante ha detto di non volere.
Neil Mayhew,

Le tabelle HTML non sembrano funzionare in Bitbucket ( community.atlassian.com/t5/Bitbucket-questions/… ) - visualizza l'HTML stesso anziché eseguire il rendering di una tabella.
jsaven,

7

Omettere l'intestazione sopra il divisore produce una tabella senza intestazione in almeno Perl Text :: MultiMarkdown e in FletcherPenney MultiMarkdown

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

Vedi Richiesta funzionalità Markdown PHP


Le intestazioni vuote in PHP Parsedown producono tabelle con intestazioni vuote che di solito sono invisibili (a seconda del CSS) e quindi assomigliano a tabelle senza intestazione.

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

Circa l'uso di Parsedown, in realtà l'intestazione è ancora qui, basta controllare l'HTML. Se hai un riempimento CSS sulle celle vedrai le celle dell'intestazione. Ma immagino che table th:empty { padding: 0; }ciò risolverebbe questo.
AymDev,

6

Almeno per il Markdown aromatizzato GitHub , puoi dare l'illusione rendendo tutte le voci della riga non di intestazione in grassetto con il normale __o la **formattazione:

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

Stavo cercando qualcosa che funzionasse in GFM e questo trucco è creativo!
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>

Questo sembra non funzionare con github.com/chjj/marked . C'è un riferimento, in cui posso cercare se questo è anche il comportamento previsto?
adius,

@AdrianSieber Uso Kramdown, non posso parlare di un altro.
Steven Penny,

2

Potresti riuscire a nascondere un'intestazione se puoi aggiungere il seguente CSS:

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

Questo è un po 'pesante e non distingue tra i tavoli, ma può fare per un compito semplice.


L'unico trucco CSS che funziona per me per qualche motivo (sto usando VNote con il renderer Markdown-it). Nessuna delle soluzioni fornite qui: stackoverflow.com/questions/12023771/hide-empty-cells-in-table ha funzionato.
quello che il

1

Uso <span>nell'intestazione della prima colonna:

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

Crea un'intestazione vuota con bordo, ma con 1/2 della dimensione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.