Crie uma tabela sem um cabeçalho no Markdown


141

É possível criar uma tabela sem um cabeçalho no Markdown?

O HTML ficaria assim:

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

Respostas:


92

A maioria dos analisadores Markdown não suporta tabelas sem cabeçalhos. Isso significa que a linha de separação para cabeçalhos é obrigatória.

Analisadores que não suportam tabelas sem cabeçalhos

Analisadores que fazer mesas de apoio, sem cabeçalhos.

  • Kramdown : Um analisador em Ruby
  • Texto :: MultiMarkdown : módulo Perl CPAN.
  • MultiMarkdown : aplicativo do Windows.
  • ParseDown Extra : Um analisador em PHP.
  • Pandoc : Um conversor de documentos para a linha de comando escrita em Haskell (suporta tabelas sem cabeçalho através de suas extensões simple_tablese multiline_tables)
  • Flexmark : um analisador em Java.

Solução CSS

Se você é capaz de alterar o CSS da saída HTML, no entanto, pode alavancar a :emptypseudo classe para ocultar um cabeçalho vazio e parecer que não há cabeçalho.


28
O analisador do Github pode ser adicionado à lista daqueles que não o suportam.
precisa saber é o seguinte


80

Se você não se importa em desperdiçar uma linha, deixando-a vazia, considere o seguinte hack (é um hack e use isso apenas se você não quiser adicionar plug-ins adicionais).

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

Para ver como a imagem acima pode parecer, copie a descrição acima e visite https://stackedit.io/editor

Ele trabalhou com gitlab / GitHub 's Markdown implementações.


1
Com qual implementação isso funciona? Ele não funciona com o Text :: MultiMarkdown do Perl, mas acho que pode funcionar com algumas implementações do PHP MultiMarkdown.
RedGrittyBrick

2
Ele trabalhou com implementações de remarcação do gitlab / github. Não tenho certeza sobre o texto do perl :: MultiMarkdown
Thamme Gowda

8
Isso criará um cabeçalho de tabela vazio e uma linha vazia.
Gajus

Isso realmente funciona muito bem com pandocdescontos para pdf.
Alex Baranowski

Obrigado! Isso funciona com a remarcação do Laravel 5.8 (multi) também. Nenhum cabeçalho é visível - apenas uma linha. Parece um divisor, que pode ser removido usando CSS no tema.
user2966991

17

Eu consegui trabalhar com o Markdown do Bitbucket usando um link vazio:

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

2
Também solicitará uma linha de cabeçalho vazia. Pelo menos é apenas metade da altura como uma linha normal. Funcionou para mim como corte no github também
Londane

Esse truque funcionou para mim ao escrever documentação no Insomnia. Ainda cria uma linha de cabeçalho, mas é muito mais curta do que se eu colocasse texto lá. Obrigado!
Jkmartindale #

Brilhante! Ainda vejo um pouco de espaço vertical com o Github Markdown, mas está melhor do que antes.
Keith Bennett

15

Solução Universal

Infelizmente, muitas das sugestões não funcionam para todos os visualizadores / editores do Markdown, por exemplo, a popular extensão do Markdown Viewer Chrome, mas funcionam com o iA Writer .

O que parece funcionar nesses dois programas populares (e pode funcionar para seu aplicativo específico) é usar HTML comment blocks ('<!-- -->'):

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

Como algumas das sugestões anteriores, isso adiciona uma linha de cabeçalho vazia ao seu visualizador / editor do Markdown. No iA Writer, é esteticamente pequeno o suficiente para não atrapalhar muito.


Isso desfaz completamente o ponto de usar o Markdown, pois quando vistos como somente texto, os comentários serão removidos e as colunas nem se alinham mais.
hackel

Eu acho que @hackel não entendeu. Isso não alinha as colunas usando larguras fixas. Em vez disso, fornece uma boa solução alternativa para ter cabeçalhos de coluna válidos, mas vazios. Foi uma ótima solução alternativa na minha situação. A tabela ainda é renderizada conforme o esperado / esperado; simplesmente não tinha linha de cabeçalho.
mdahlman

8

O seguinte funciona bem para mim no GitHub. A primeira linha não está mais em negrito, pois não é um cabeçalho:

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

Verifique uma tabela HTML de amostra sem um cabeçalho aqui .


5
Isso é exatamente o que o interlocutor disse que não queria.
Neil Mayhew

As tabelas HTML parecem não funcionar no Bitbucket ( community.atlassian.com/t5/Bitbucket-questions/… ) - elas exibem o próprio HTML em vez de renderizar uma tabela.
jsaven

7

Omitir o cabeçalho acima do divisor produz uma tabela sem cabeçalho em pelo menos Perl Text :: MultiMarkdown e no FletcherPenney MultiMarkdown

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

Consulte solicitação de recurso PHP Markdown


Cabeçalhos vazios no Parsedown do PHP produzem tabelas com cabeçalhos vazios que geralmente são invisíveis (dependendo do CSS) e, portanto, parecem tabelas sem cabeçalho.

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

Sobre o uso do Parsedown, na verdade o cabeçalho ainda está aqui, basta verificar o HTML. Se você tiver um preenchimento de CSS nas células, verá as células do cabeçalho. Mas acho que table th:empty { padding: 0; }isso resolveria isso.
AymDev 15/09

6

Pelo menos para o Markit de sabor do GitHub , você pode dar a ilusão deixando todas as entradas de linha sem cabeçalho em negrito com a formatação __ou regular **:

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

Eu estava procurando por algo que funcionasse no GFM e esse truque é criativo!
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>

Isso parece não funcionar com github.com/chjj/marked . Existe uma referência na qual eu possa procurar se esse é mesmo o comportamento esperado?
Adius

@AdrianSieber Eu uso o Kramdown, não posso falar sobre outro.
91713 Steven Penny

2

Você poderá ocultar um cabeçalho se puder adicionar o seguinte CSS:

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

Isso é um pouco pesado e não faz distinção entre tabelas, mas pode ser útil para uma tarefa simples.


O único truque CSS que funciona para mim por algum motivo (estou usando o VNote com o renderizador Markdown-it). Nenhuma das soluções fornecidas aqui: stackoverflow.com/questions/12023771/hide-empty-cells-in-table funcionou.
que o

1

Eu uso <span>no cabeçalho da primeira coluna:

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

Ele cria um cabeçalho vazio com borda, mas com metade do tamanho.


0

A solução do @ thamme-gowda também funciona para imagens!

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

Você pode verificar isso em uma essência que eu fiz para isso . Aqui está uma renderização da tabela hack no GitHub e GitLab:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.