Многострочные таблицы
Таблицы с поддержкой внутри ячеек не только простого контента, такого как строчное форматирование, ссылки и т.п., но и сложного, например, списков, блоков кода и даже других таблиц.
Многострочные таблицы поддерживают объединение ячеек.
Синтаксис
- таблица начинается
#|и заканчивается|#; - строки начинаются и заканчиваются
||; - ячейки отделяются символом
|.
Заголовки таблицы
Многострочные таблицы не содержат заголовков, но их можно сделать, применив форматирование к контенту ячеек первой строки. Например, выделив их жирным.
Также для семантической разметки заголовочных строк можно использовать атрибут таблицы header-rows. Подробнее см. раздел Заголовочные строки.
#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
Результат:
|
Заголовок1 |
Заголовок2 |
|
Текст |
Текст |
Многострочный текст
В ячейке таблицы можно размещать любой многострочный текст. Например, списки.
#|
||Текст
на двух строчках
|
- Текст 1
- Текст 2[cell_merging_guide.md](..%2F..%2F..%2F..%2F..%2FDocuments%2Fcell_merging_guide.md)
- Текст 3
- Текст 4||
|#
Результат:
|
Текст |
|
Или даже другую таблицу:
#|
|| 1
|
Текст выше вложенной таблицы
#|
|| 5
| 6||
|| 7
| 8||
|#
Текст под вложенной таблицей||
|| 3
| 4||
|#
Результат
|
1 |
Текст выше вложенной таблицы
Текст под вложенной таблицей |
||||
|
3 |
4 |
Атрибуты таблицы
У таблицы можно задать атрибуты на трёх уровнях: для всей таблицы, для отдельной строки и для отдельной ячейки.
| Уровень | Синтаксис | Где располагается |
|---|---|---|
| Таблица | |:{ ... } |
На отдельной строке между #| и первой строкой || |
| Строка | ||:{ ... } |
На той же строке, что и ||, сразу после неё |
| Ячейка | ::{ ... } |
В начале содержимого ячейки, сразу после | (или после ||:{ ... } для первой ячейки строки) |
Атрибуты всей таблицы задаются на отдельной строке между #| и первой строкой ||:
#|
|:{header-rows="1"}
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
Атрибуты строки задаются сразу после открывающих ||:
#|
||:{class="header"} **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|#
Атрибуты ячейки задаются в начале её содержимого. Для первой ячейки строки — сразу после || (или после атрибутов строки, если они есть), для остальных — сразу после |:
#|
||::{align="center"} **Заголовок1** | **Заголовок2** ||
|| Текст |::{align="top-right"} Текст ||
|#
Правила оформления
- Каждый блок атрибутов должен находиться на той же строке, что и его разделитель: перенос строки между
||/|и блоком атрибутов отключает их распознавание, и текст попадает в содержимое ячейки. - Между
||и:{(атрибуты строки) пробелы не допускаются. - Между
|и::{(атрибуты ячейки, кроме первой ячейки строки) пробелы не допускаются. - После
||:{...}перед::{...}первой ячейки на той же строке допускаются пробелы и табы. - Строка с атрибутами таблицы (
|:{ ... }) может встречаться несколько раз между#|и первой строкой||; при совпадении ключей более поздние значения переопределяют более ранние.
Заголовочные строки
Чтобы пометить первые N строк таблицы как заголовочные, используйте атрибут таблицы header-rows="N". Заголовочные строки рендерятся в <th scope="col"> вместо <td>.
Значение N должно быть положительным целым числом.
#|
|:{header-rows="1"}
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст | Текст | Текст ||
|| Текст | Текст | Текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
Заголовок3 |
|---|---|---|
|
Текст |
Текст |
Текст |
|
Текст |
Текст |
Текст |
Пользовательские размеры ячеек
Размерами ячеек можно управлять с помощью атрибутов.
Для установки пользовательской ширины ячейки используйте синтаксис {width=400px} внутри ячейки.
#|
|| **Заголовок1** {width=400px} | **Заголовок2** ||
|| Текст | Текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
|
Текст |
Текст |
Для установки пользовательской высоты ячейки используйте синтаксис {height=100px} внутри ячейки.
#|
|| **Заголовок1** {height=100px} | **Заголовок2** ||
|| Текст | Текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
|
Текст |
Текст |
Объединение ячеек
Ячейки можно объединять вертикально с помощью ячейки с символом "^":
#|
|| Заголовок1 | Заголовок2 ||
|| Текст на два ряда | Другой текст ||
|| ^ | Еще текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
|
Текст на два ряда |
Другой текст |
|
Еще текст |
Горизонтальное объединение поддерживается через символ ">":
#|
|| Заголовок1 | Заголовок2 ||
|| Текст на две колонки | > ||
|| Другой текст | Еще текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
|
Текст на две колонки |
|
|
Другой текст |
Еще текст |
Символы объединения ячеек можно использовать вместе:
#|
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст на две колонки и два ряда | > | Текст ||
|| ^ | > | Еще текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
Заголовок3 |
|
Текст на две колонки и два ряда |
Текст |
|
|
Еще текст |
||
Экранирование символов объединения ячеек
Для того чтобы получить клетку с одним из символов объединения ячеек, внутри можно использовать экранирование через "",
т.е. "^" и ">".
#|
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст на одну ячейку | \> | Текст ||
|| \^ | \> | Еще текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
Заголовок3 |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
Выравнивание текста в ячейках
Для управления выравниванием содержимого ячейки используйте атрибут ячейки align:
#|
|| Заголовок1 | Заголовок2 | Заголовок3 ||
||::{align="center"} Текст на две колонки и два ряда | > | Текст ||
|| ^ | > | Еще текст ||
|#
Результат
|
Заголовок1 |
Заголовок2 |
Заголовок3 |
|
Текст на две колонки и два ряда |
Текст |
|
|
Еще текст |
||
Доступны следующие значения:
top-lefttop-centertop-rightcenterbottom-leftbottom-centerbottom-right
Устаревший синтаксис
Важно
Ранее для выравнивания использовался синтаксис класса {.cell-align-*} внутри содержимого ячейки. Он продолжает работать для обратной совместимости, но считается устаревшим — используйте атрибут ::{align="..."}.
#|
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст на две колонки и два ряда {.cell-align-center} | > | Текст ||
|| ^ | > | Еще текст ||
|#
Устаревшие значения:
cell-align-top-leftcell-align-top-centercell-align-top-rightcell-align-centercell-align-bottom-leftcell-align-bottom-centercell-align-bottom-right
Открытие в модальном окне
Широкие таблицы удобно открывать в модальном окне. В многострочных таблицах это реализуется с помощью атрибута {wide-content}. Атрибут добавляется сразу после символов, закрывающих таблицу |#.
#|
|| **Заголовок1** | **Заголовок2** ||
|| Текст | Текст ||
|| Текст | Текст ||
|| Текст | Текст ||
|# {wide-content}
Результат
|
Заголовок1 |
Заголовок2 |
|
Текст |
Текст |
|
Текст |
Текст |
|
Текст |
Текст |
Ограничение высоты таблицы
У простых и многострочных таблиц можно ограничить высоту, добавив атрибут {sticky-header}. Если таблица превышает размер экрана устройства пользователя, то её заголовок закрепляется, высота ограничивается высотой экрана и контент таблицы начинает скроллиться.
#|
|| Заголовок1 | Заголовок2 | Заголовок3 ||
|| Текст на одну ячейку | \> | Текст ||
|| \^ | \> | Еще текст ||
|| Текст на одну ячейку | \> | Текст ||
...
|| \^ | \> | Еще текст ||
|| Текст на одну ячейку | \> | Текст ||
|| \^ | \> | **Еще текст** ||
|#
{sticky-header}
|
Заголовок1 |
Заголовок2 |
Заголовок3 |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |
|
Текст на одну ячейку |
> |
Текст |
|
^ |
> |
Еще текст |