Когда файл Word нужно превратить в простой текст со структурой
Документация часто рождается в Word: спецификация от продакт-менеджера, политика, составленная юристами, руководство, переданное клиентом. А вот конечная точка — нередко Git-репозиторий, генератор статических сайтов, вики, база знаний или приложение для заметок, и все они говорят на Markdown. При копировании и вставке теряются заголовки и списки, а перепечатка 20-страничного документа вручную занимает часы.
Markdown к тому же хороший формат для архива и ревью. В системе контроля версий его изменения видны построчно, поэтому, сконвертировав договор или документ с требованиями, вы сможете отслеживать каждую последующую правку — двоичный файл .docx такого не позволяет.
Как работает конвертация
Файл .docx — это ZIP-архив с XML-файлами. Конвертер открывает его в браузере, читает тело документа и сначала переводит структуру Word в HTML, а затем превращает этот HTML в Markdown. На обоих шагах используются те же правила Markdown, что и в конвертере HTML в Markdown на этом сайте, поэтому результаты обоих инструментов выглядят единообразно.
Что переносится и как записывается:
- Заголовки становятся
#–######, по одному уровню на каждый уровень заголовков Word от 1 до 6. - Полужирный становится
**текст**, а курсив —_текст_. - Маркированные и нумерованные списки становятся списками
-и1.с сохранением вложенности до пяти уровней. - Гиперссылки становятся
[текст](url), включая ссылки на внешние сайты. - Таблицы становятся таблицами с вертикальными чертами, где первая строка служит заголовком.
- Сноски и концевые сноски собираются в нумерованный список в конце документа, а каждая ссылка в тексте превращается в ссылку на свою сноску.
Результат подчищается так, чтобы между блоками никогда не было больше одной пустой строки.
Почему заголовки иногда выходят обычным текстом
Конвертер распознаёт заголовок по стилю абзаца, а не по внешнему виду. Строка со встроенным стилем от «Заголовок 1» до «Заголовок 6» (Heading 1–6) становится заголовком Markdown. А строка, которую автор вручную сделал крупной и жирной, для файла — обычный абзац с полужирным текстом, и на выходе получится **Введение**, а не ## Введение.
То же касается названия документа. Стиль «Название» (Title) в Word не является стилем заголовка, поэтому оформленное им название станет обычным абзацем. Если структура важна, исправьте её в Word до конвертации: выделите строку и примените «Заголовок 1» или «Заголовок 2» из коллекции стилей. Быстро проверить документ можно в области навигации Word — там перечислены только настоящие заголовки. Всего, чего там нет, не будет и в структуре Markdown.
Что не переносится
Markdown намеренно прост, поэтому у многого из вёрстки Word нет аналога:
- Изображения не включаются, а уведомление сообщает, сколько их пропущено. Встраивание в виде base64 сделало бы файл во много раз больше самого текста.
- Подчёркивание, шрифт, размер и цвет отбрасываются. Для них в Markdown нет синтаксиса.
- Зачёркнутый текст сохраняется, но без зачёркивания.
- Колонтитулы, номера страниц и разрывы разделов относятся к вёрстке страницы, а не к содержимому, и не конвертируются.
- Надписи и фигуры могут потеряться или оказаться не на своём месте, потому что они плавают вне основного потока текста.
- Форматирование ячеек таблицы упрощается до обычного текста. Полужирный, ссылки или списки внутри ячейки теряют оформление, а абзацы ячейки из нескольких абзацев сливаются в одну строку, иногда даже без пробела между ними.
Практический порядок доводки
Markdown обычно готов процентов на 90. Короткий проход исправляет остальное:
- Пробегитесь по заголовкам. Убедитесь, что есть один заголовок верхнего уровня
#, если его ожидает ваш сайт, и что уровни не перескакивают с#сразу на###. - Проверьте нумерованные списки, прерванные абзацем или изображением. Markdown может начать нумерацию заново с 1.
- Посмотрите на таблицы с объединёнными ячейками: они превращаются в строки с разным числом столбцов, и их нужно выровнять вручную.
- Верните изображения: экспортируйте их из Word, положите файлы рядом с файлом .md и вставьте
в нужные места. - Перед публикацией посмотрите результат в инструменте Markdown в HTML.
Принимаются файлы до 50 МБ; старый двоичный формат .doc не поддерживается. Документ читается только во вкладке вашего браузера, поэтому конфиденциальные черновики никогда не попадают на сервер.