Создать таблицу без заголовка в Markdown

147

Можно ли в Markdown создать таблицу без заголовка?

HTML будет выглядеть так:

<table>
<tr>
    <td>Key 1</td>
    <td>Value 1</td>
</tr>
<tr>
    <td>Key 2</td>
    <td>Value 2</td>
</tr>
</table>
Адиус
источник

Ответы:

94

Большинство парсеров Markdown не поддерживают таблицы без заголовков. Это означает, что разделительная линия для заголовков обязательна.

Парсеры, не поддерживающие таблицы без заголовков

  • Multimarkdown
  • Maruku : популярная реализация на Ruby
  • по слову : «Все таблицы должны начинаться с одной или нескольких строк заголовков»
  • PHP Markdown Extra «вторая строка содержит обязательную разделительную линию между заголовками и содержимым»

  • RDiscount использует синтаксис PHP Markdown Extra.

  • Уценка со вкусом GitHub
  • Parsedown : парсер в PHP (используется, например, в электронных письмах Laravel).

Парсеры , которые делают таблицы поддержки без заголовков.

  • Kramdown : парсер на Ruby
  • Text :: MultiMarkdown : модуль Perl CPAN.
  • MultiMarkdown : приложение для Windows.
  • ParseDown Extra : парсер на PHP.
  • Pandoc : Документ конвертер для командной строки , написанной в Haskell (поддерживает заголовки меньше таблиц с помощью своих simple_tablesи multiline_tablesрасширений)
  • Flexmark : парсер на Java.

CSS решение

Если вы можете изменить CSS вывода HTML, вы можете использовать :emptyпсевдокласс, чтобы скрыть пустой заголовок и сделать так, чтобы он выглядел так, как будто заголовка нет вообще.

Адиус
источник
30
Парсер Github можно добавить в список тех, кто его не поддерживает.
Quantum7 01
4
Подробнее о решении CSS: stackoverflow.com/questions/12023771/hide-empty-cells-in-table
Вадзим,
84

Если вы не против тратить строку, оставив ее пустой, рассмотрите следующий прием (это взлом, и используйте его только в том случае, если вам не нравится добавлять какие-либо дополнительные плагины).

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

Чтобы посмотреть, как это может выглядеть, скопируйте приведенное выше и посетите https://stackedit.io/editor.

Он работал с GitLab / GitHub «s Markdown реализаций.

Thamme Gowda
источник
2
С какой реализацией это работает? Он не работает с Perl Text :: MultiMarkdown, но я думаю, что он может работать с некоторыми реализациями PHP MultiMarkdown.
RedGrittyBrick
2
Он работал с реализациями уценки gitlab / github. Я не уверен насчет Perl Text :: MultiMarkdown
Thamme Gowda
10
Это создаст пустой заголовок таблицы и пустую строку.
Gajus
Это действительно отлично работает с pandocуценкой до pdf.
Alex Baranowski
Благодарность! Это также работает с Laravel 5.8 (multi) markdown. Заголовки не видны - только строка. Похоже на разделитель, который можно удалить с помощью CSS в теме.
user2966991
17

Я получил это, работая с Bitbucket Markdown, используя пустую ссылку:

[]()  | 
------|------
Row 1 | row 2
Стюарт Кэмпбелл
источник
2
Также будет предложена пустая строка заголовка. По крайней мере, это только половина высоты обычной линии. Работал у меня как Hack и в github
Londane
Этот прием сработал у меня при написании документации в Insomnia. По-прежнему создается строка заголовка, но она намного короче, чем если бы я поместил туда текст. Благодарность!
jkmartindale
Гениально! Я все еще вижу небольшое вертикальное пространство с Github Markdown, но оно лучше, чем раньше.
Кейт Беннетт
16

Универсальное решение

К сожалению, многие из предложений не работают для всех программ просмотра / редактирования Markdown, например, популярное расширение Markdown Viewer для Chrome, но они работают с iA Writer .

Что действительно работает в обеих этих популярных программах (и может работать для вашего конкретного приложения), так это использовать HTML comment blocks ('<!-- -->'):

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

Как и некоторые из предыдущих предложений, это добавляет пустую строку заголовка в вашу программу просмотра / редактора Markdown. В iA Writer он эстетически достаточно мал, чтобы не мешать мне слишком сильно.

Тони Барганский
источник
Это полностью лишает смысла использование Markdown, поскольку при просмотре как текстовых комментарии будут удалены, а столбцы больше не будут выравниваться.
hackel
Я думаю, что @hackel неправильно понял. Это не выравнивает столбцы с использованием фиксированной ширины. Скорее, это хороший обходной путь - иметь действительные, но пустые заголовки столбцов. В моей ситуации это было отличным решением. Таблица по-прежнему отображается так, как предполагалось / ожидалось; у него просто не было строки заголовка.
мдалман
7

Отсутствие заголовка над разделителем создает таблицу без заголовка как минимум в Perl Text :: MultiMarkdown и в FletcherPenney MultiMarkdown.

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

См. Запрос функции PHP Markdown


Пустые заголовки в PHP Parsedown создают таблицы с пустыми заголовками, которые обычно невидимы (в зависимости от вашего CSS) и поэтому выглядят как таблицы без заголовков.

|     |     |
|-----|-----|
|Foo  |37   |
|Bar  |101  |
Красный песчаный кирпич
источник
Что касается использования Parsedown, на самом деле заголовок все еще здесь, просто проверьте HTML. Если у вас есть заполнение CSS в ячейках, вы увидите ячейки заголовка. Но я думаю, table th:empty { padding: 0; }это исправит это.
AymDev
7

Следующее работает для меня в GitHub. Первая строка больше не выделяется жирным шрифтом, так как это не заголовок:

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

Проверьте образец HTML таблицу без заголовка здесь .

Даниэль
источник
6
Это именно то, чего они не хотели.
Нил Мэйхью
Таблицы HTML, похоже, не работают в Bitbucket ( community.atlassian.com/t5/Bitbucket-questions/… ) - он отображает сам HTML, а не отображает таблицу.
jsaven 02
7

По крайней мере, для GitHub Flavored Markdown вы можете создать иллюзию , выделив все записи строк без заголовка жирным шрифтом с обычным __или **форматированием:

|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |
ТТ-
источник
Я искал что-то, что работало бы в GFM, и этот прием - творческий!
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>
Стивен Пенни
источник
Кажется, это не работает с github.com/chjj/marked . Есть ли ссылка, в которой я могу найти, если это даже ожидаемое поведение?
adius 09
@AdrianSieber Я использую Kramdown, о другом не могу говорить.
Стивен Пенни
2

Вы можете скрыть заголовок, если добавите следующий CSS:

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

Это немного тяжеловесно и не делает различий между таблицами, но может помочь для простой задачи.

Manngo
источник
Единственный трюк с CSS, который у меня почему-то работает (я использую VNote с рендерером Markdown-it). Ни одно из приведенных здесь решений: stackoverflow.com/questions/12023771/hide-empty-cells-in-table не сработало.
что
1

Я использую <span>в заголовке первого столбца:

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

Создает пустой заголовок с рамкой, но размером 1/2.

Лонг-Джон Сильвер
источник