Word в чистый HTML

Текст, скопированный из текстового редактора, едет с кучей багажа: шрифты, поля, стили, о которых никто не просил. Вставьте его сюда, и вы получите обратно структуру без ничего лишнего, то есть заголовки, абзацы, списки, ссылки и таблицы.

Вставьте текст документа ниже

Очистка выполняется в вашем браузере. Ваш текст никуда не отправляется.

Что на самом деле лежит в буфере обмена

Когда вы копируете в Word, в буфер обмена попадает сразу несколько версий выделенного. Одна из них простой текст. Другая HTML, и именно её берёт редактор сайта при вставке.

HTML от Word описывает, как страница выглядела на вашем экране. Один-единственный абзац приходит вот так:

<p class="MsoNormal" style="margin-bottom:8.0pt;line-height:107%">
  <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">Hello<o:p></o:p></span>
</p>

Вдобавок приходят таблица стилей на несколько сотен строк, условные комментарии и теги из собственного словаря Office. Google Docs короче, но не чище. Всё лежит внутри обёртки с идентификатором docs-internal-guid, а жирный текст оказывается span с font-weight:700. На сайте эти встроенные стили берут верх над собственным оформлением сайта, поэтому каждая вставленная статья выглядит чуть иначе, чем предыдущая.

Что сохраняется, преобразуется и удаляется

РезультатЭлементы
СохраняетсяАбзацы, заголовки, жирный, курсив, маркированные и нумерованные списки, ссылки (http, https, mailto, tel и относительные ссылки сайта), таблицы с их colspan и rowspan, цитаты, верхний и нижний индекс.
Преобразуетсяspan с жирным начертанием (bold или 600 и выше) становится <strong>, курсивный становится <em>. Поддельные списки Word, то есть абзацы с пометкой MsoListParagraph и напечатанным маркером, становятся настоящими вложенными <ul> или <ol>. Абзац в стиле «Название» из Word становится заголовком. Контейнеры вроде div становятся обычными абзацами.
УдаляетсяВсе атрибуты style и class, таблицы стилей, скрипты, теги Office, изображения, элементы форм, фреймы, пустые абзацы, нагромождения переводов строк, жирный внутри заголовков и серии пробелов.

Для заголовков действует одно правило. На выходе используются только уровни со 2 по 4, потому что на большинстве сайтов уровень 1 уже занят заголовком страницы. Если в документе есть «Заголовок 1» или «Название», каждый заголовок опускается на ступень. Всё глубже уровня 4 становится уровнем 4.

Неразрывный пробел остаётся только там, где у него есть работа: перед ; : ! ? % или знаком валюты и между цифрой и тем, что за ней следует. Все остальные становятся обычными пробелами.

Как читать сводку

После вставки первая строка называет источник, который инструмент распознал по следам в разметке (Word, Google Docs, LibreOffice или что-то иное), и показывает размер кода до и после. Для Word уменьшение на 80-95 процентов нормально.

Ниже идёт число удалённых встроенных стилей и классов, а также восстановленных поддельных списков. Две строки просят вас что-то сделать:

  • Изображения удалены. Картинка, вставленная из Word, указывает на временный файл на вашем собственном компьютере, а из Google Docs на адрес, срок действия которого истекает. Ваши посетители не увидели бы ни ту, ни другую. Загрузите изображение в редакторе сайта и напишите там его альтернативный текст.
  • Абзацы целиком жирные. Короткий абзац (меньше 90 символов), жирный от начала до конца, обычно является заголовком, который кто-то набрал жирным текстом. Инструмент не угадывает уровень за вас. Превратите его в настоящий заголовок, чтобы поисковые системы и экранные дикторы видели структуру.

Два способа забрать результат

Копировать для редактора
Помещает очищенное содержимое в буфер обмена как форматированный текст. Вставьте его в блочный редактор WordPress, и каждый заголовок, абзац, список и таблица станут отдельным блоком. Большинство визуальных редакторов поступают так же.
HTML-код
Исходный код, с отступами и читаемый. Используйте его в блоке «Произвольный HTML», в режиме кода сервиса рассылок или в шаблоне.

Если в буфере обмена вообще нет HTML, например текст скопирован из терминала или простого текстового редактора, пустые строки становятся разрывами абзацев, а одиночные переводы строк становятся <br>.

Лучшая очистка начинается в самом документе. Пользуйтесь встроенными стилями «Заголовок 1» и «Заголовок 2» и кнопками списков, а не крупным шрифтом и отступами, выставленными вручную. Структура, набранная так, переживает любой экспорт.

Что теряется намеренно

Цвета, выделение, выравнивание, отступы, размеры шрифта и колонки выбрасываются. То же с примечаниями и надписями. Ссылки на закладки внутри файла Word, например ссылки на сноски и пункты оглавления, теряют ссылку и сохраняют текст. Рамки таблиц и ширина столбцов тоже уходят, а вид таблиц определяет ваш сайт. Необязательная настройка типографики рассчитана на текст на французском и для других языков должна оставаться выключенной.

Частые вопросы

Почему текст, вставленный из Word, выглядит на сайте иначе?

Word ставит шрифт, размер, цвет и интервалы на каждый абзац в виде встроенных стилей. Встроенные стили перекрывают таблицу стилей вашего сайта, поэтому вставленный текст сохраняет вид Word и игнорирует вашу тему.

Как вставить текст из Word в WordPress без форматирования?

Сначала вставьте текст сюда, нажмите «Копировать для редактора», затем вставьте в блочный редактор. Заголовки, списки, ссылки и таблицы придут чистыми блоками без встроенных стилей.

Разве «вставить как простой текст» (Ctrl+Shift+V) не достаточно?

Вставка простого текста убирает оформление, но вместе с ним забирает все заголовки, списки, ссылки, таблицы и жирные слова, и вам остаётся восстанавливать структуру вручную. Этот инструмент убирает оформление и сохраняет структуру.

Таблицы сохраняются?

Да. Строки, ячейки и объединённые ячейки сохраняются, а ширина, рамки и заливка удаляются. Для таблиц с данными, которым нужны настоящие ячейки заголовков и подпись, воспользуйтесь инструментом таблица Excel в HTML.

Куда делись мои изображения?

Они удалены, потому что их адреса работают только на вашем компьютере или недолго. Добавьте каждое изображение в редакторе сайта, там оно загрузится на сервер и получит альтернативный текст.

Мой документ куда-то загружается?

Нет. Скрипт читает буфер обмена и перестраивает HTML внутри вашего браузера. Текст не отправляется на наш сервер.