Is it possible to create a table without a header in Markdown?
The HTML would look like this:
<table>
<tr>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>Key 2</td>
<td>Value 2</td>
</tr>
</table>
Is it possible to create a table without a header in Markdown?
The HTML would look like this:
<table>
<tr>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>Key 2</td>
<td>Value 2</td>
</tr>
</table>
Most Markdown parsers don't support tables without headers. That means the separation line for headers is mandatory.
PHP Markdown Extra "second line contains a mandatory separator line between the headers and the content"
RDiscount Uses PHP Markdown Extra syntax.
simple_tables
and multiline_tables
extensions)If you're able to change the CSS of the HTML output you can however leverage the :empty
pseudo class to hide an empty header and make it look like there is no header at all.
If you don't mind wasting a line by leaving it empty, consider the following hack (it is a hack, and use this only if you don't like adding any additional plugins).
| | |
|---|---|
|__Bold Key__| Value1 |
| Normal Key | Value2 |
Bold Key | Value1 |
Normal Key | Value2 |
To view how the above one could look, copy the above and visit https://stackedit.io/app
It worked with GitLab/GitHub's Markdown implementations.
Many of the suggestions unfortunately do not work for all Markdown viewers/editors, for instance, the popular Markdown Viewer Chrome extension, but they do work with iA Writer.
What does seem to work across both of these popular programs (and might work for your particular application) is to use HTML comment blocks ('<!-- -->')
:
| <!-- --> | <!-- --> |
|-------------|-------------|
| Foo | Bar |
Foo | Bar |
Like some of the earlier suggestions stated, this does add an empty header row in your Markdown viewer/editor. In iA Writer, it's aesthetically small enough that it doesn't get in my way too much.
I got this working with Bitbucket's Markdown by using a empty link:
[]() |
------|------
Row 1 | row 2
At least for the GitHub Flavoured Markdown, you can give the illusion by making all the non‑header row entries bold with the regular __
or **
formatting:
|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |
Regular | text | in header | turns bold |
---|---|---|---|
So | bold | all | table entries |
and | it looks | like a | "headerless table" |
Omitting the header above the divider produces a headerless table in at least Perl Text::MultiMarkdown and in FletcherPenney MultiMarkdown
|-------------|--------|
|**Name:** |John Doe|
|**Position:**|CEO |
See PHP Markdown feature request
Empty headers in PHP Parsedown produce tables with empty headers that are usually invisible (depending on your CSS) and so look like headerless tables.
| | |
|-----|-----|
|Foo |37 |
|Bar |101 |
You may be able to hide a heading if you can add the following CSS:
<style>
th {
display: none;
}
</style>
This is a bit heavy-handed and doesn’t distinguish between tables, but it may do for a simple task.
Update
HTML output varies between Markdown editors, but if the table includes a thead
element, you can target the empty header cells more specifically with:
thead th:empty {
border: thin solid red !important;
display: none;
}
This works if your header row contains no visible content. Spaces between the bars are OK.
The following works well for me in GitHub. The first row is no longer bolded as it is not a header:
<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>
Check a sample HTML table without a header here.
$ 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>
I use <span>
in the first column header:
<span> |
--- | ---
Value | Value
Value | Value
It creates an empty header with border, but with 1/2 the size.
Value |
Value |
what works in GitHub issue editor is
|
------ | ---
Foo | Bar
But it does show an empty header
Foo | Bar |
<style>
.headerless th {
display: none;
}
</style>
<div class="headerless">
| | |
|---|---|
|Some |table |
| WITHOUT | header |
</div>
|This|is|
|---|---|
|Some |table |
| WITH |header |