Конвертер Markdown в документ docx установленного образца. Поддерживает все возможности GitHub Flavored Markdown.
Таблицы
Таблицы могут быть сформированы двумя способами:
- Markdown — простой и естественный способ. Следует спецификации GFM.
- HTML — более сложный, однако позволяет объединять ячейки и менять положение текста в ячейке.
Markdown
Написание таблиц в Markdown само по себе простое. Можно воспользоваться сайтом создания таблиц или писать самостоятельно. Также можно использовать стартовый шаблон:
| | | |
|---|---|---|
| | | |
| | | |
Если заполнить его данными, выйдет примерно такая таблица:
| Имя | Возраст | Город |
|-----------|---------|-----------------|
| Алексей | 28 | Москва |
| Иван | 22 | Казань |
| Мария | 34 | Санкт-Петербург |
Аналог в HTML:
<table>
<thead>
<tr>
<th>Имя</th>
<th>Возраст</th>
<th>Город</th>
</tr>
</thead>
<tbody>
<tr>
<td>Алексей</td>
<td>28</td>
<td>Москва</td>
</tr>
<tr>
<td>Иван</td>
<td>22</td>
<td>Казань</td>
</tr>
<tr>
<td>Мария</td>
<td>34</td>
<td>Санкт-Петербург</td>
</tr>
</tbody>
</table>

В Markdown первая строчка всегда выравнена по центру, последующие — по ширине.
HTML
Выше представлен пример реализации аналогичной таблицы как в Markdown, так и в HTML. В отличие от Markdown, HTML позволяет указывать к каждой ячейке следующие атрибуты:
- Объединение ячеек
- Вертикальное и горизонтальное выравнивание
Объединение ячеек выполняется путём указания атрибутов colspan и rowspan.
colspan расширяет ячейку от текущей вправо. rowspan расширяет ячейку от текущей вниз.
По умолчанию оба атрибута равны 1.
Для выравнивания передаётся строка из двух символов. Первый указывает на выравнивание по горизонтали, второй — по вертикали. Для некоторых значений есть по два синонима-символа для удобства.
- По горизонтали
-
'l'|'s'— текст прижимается к левому краю ячейки, правый край остается неровным (left | start)'c'|'m'— текст располагается симметрично относительно центра ячейки (center | middle)'r'|'e'— текст прижимается к правому краю ячейки, левый край остается неровным (right | end)'j'— текст равномерно распределяется между левым и правым полем, создавая ровные края с обеих сторон (justify)'d'— как'j', но дополнительно растягивает даже короткие строки, например последнюю строку абзаца (distribute) - По вертикали
-
't'|'s'— выравнивание по верхнему краю ячейки (top | start)'c'|'m'— выравнивание по центру ячейки (center | middle)'b'|'e'— выравнивание по нижнему краю ячейки (bottom | end)
's' означает разное в зависимости от позиции в строке: первым символом — «по левому краю» (horizontal start), вторым — «по верхнему краю» (vertical start).Например, строчка "lc" прижимает текст к левому краю по горизонтали, по вертикали оставляет посередине.
Ниже приведена таблица-пример по всем атрибутам:
# Примерный раздел
Ниже таблица
`table_name: Пример таблицы`
<table>
<thead>
<tr>
<th>№</th>
<th>Название этапа</th>
<th>Исполнитель</th>
<th>Трудоёмкость, чел/дни</th>
<th>Продолжительность работ, дни</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3" align="em">1</td>
<td rowspan="3">Разработка и утверждение технического задания</td>
<td>Руководитель</td>
<td align="cc">5</td>
<td rowspan="5" align="et">5</td>
</tr>
<tr>
<td>Консультант</td>
<td align="cc">1</td>
</tr>
<tr>
<td>Разработчик</td>
<td align="cc">5</td>
</tr>
<tr>
<td rowspan="2" align="em">2</td>
<td rowspan="2">Технические предложения</td>
<td>Руководитель</td>
<td align="cc">7</td>
</tr>
<tr>
<td>Разработчик</td>
<td align="cm">7</td>
</tr>
</tbody>
</table>

Заголовки
MGost расширяет стандартные заголовки Markdown специальными префиксами, управляющими тем, как заголовок учитывается в содержании и нумерации.
| Синтаксис | Поведение |
|---|---|
## Заголовок |
Стандартный заголовок: входит в содержание и нумерацию |
## *Заголовок |
Не входит в содержание, но счётчик нумерации продолжается |
## **Заголовок |
Не входит в содержание и не сдвигает счётчик нумерации |
Пример — одна звёздочка:
## Hello1
## *Hello2
## Hello3
Результат в документе:
1.1. Hello1
Hello2
1.3. Hello3
Hello2 не попадает в содержание, однако счётчик продолжается — Hello3 получает номер 1.3.
Пример — двойная звёздочка:
## Hello1
## **Hello2
## Hello3
Результат в документе:
1.1. Hello1
Hello2
1.2. Hello3
Hello2 не попадает в содержание и не сдвигает счётчик — Hello3 получает 1.2, как будто Hello2 вовсе не существует.