Конвертер текста в HTML

Превращайте обычный текст в чистый HTML по мере ввода — абзацы, переносы строк, списки и ссылки, с правильным экранированием, чтобы результат можно было безопасно вставить куда угодно.

Конвертер текста в HTML

Конвертировать

Настройки
Форматы: TXTMD

Ничего не загружается на сервер. Инструмент работает целиком в вашем браузере, поэтому файл не покидает ваше устройство. Отправлять данные некуда: сервера в этой работе нет, копий нигде не остаётся, и всё продолжает работать, даже если соединение пропадёт после загрузки страницы.

Принимает .txt На выходе: HTML, который можно скопировать или скачать Бесплатно, без регистрации

По каким правилам это работает

Пустая строка начинает новый абзац. Одиночный перенос внутри абзаца становится <br> либо обычным пробелом — как вы выберете.

Подряд идущие строки с дефисом, звёздочкой или «•» превращаются в маркированный список, а строки вида «1.» или «1)» — в нумерованный. Правило намеренно строгое: списком становится только последовательность, иначе любое предложение с дефисом ломало бы разметку.

Адреса http:// и https:// становятся ссылками. Всё остальное остаётся текстом.

Разбор на примере

Вставьте строку-заголовок, пустую строку, короткий абзац, снова пустую строку и три строки, каждая с дефиса. На выходе будет: отдельный абзац для первой строки, отдельный абзац для второго блока и список <ul> из трёх пунктов <li> для третьего — та же форма, что и была видна в обычном тексте, просто выраженная разметкой.

Добавьте в этот текст любой адрес — он станет ссылкой, а точка в конце предложения останется снаружи ссылки, где ей и место. Добавьте угловую скобку — она вернётся как &lt;, видимым символом, а не разметкой. Больше ничего не меняется: конвертер читает структуру уже написанного текста, а не навязывает свою.

Сначала экранирование, потом разметка

Порядок здесь важнее самих правил. Символы &lt;, &gt; и &amp; экранируются до того, как добавляется первый тег. Поэтому текст, который выглядит как HTML, останется видимым текстом и не станет разметкой.

Если сделать наоборот — сначала расставить теги, потом экранировать, — сломаются собственные теги инструмента; а если не экранировать вовсе, любой вставленный фрагмент чужой разметки попадёт на страницу как есть. Это ровно тот путь, которым появляются XSS-уязвимости. Кавычки экранируются в &quot; по той же причине, но применительно к атрибутам: кавычка внутри текста, попавшего в значение атрибута без экранирования, могла бы закрыть этот атрибут раньше времени. Правило простое и не знает исключений — экранируется всё и всегда, а не «только там, где сейчас важно».

Четыре настройки и что каждая меняет

«Сохранять одиночные переносы строк внутри абзаца», включено по умолчанию, определяет судьбу строк одного блока, не разделённых пустой строкой: включено — каждая строка заканчивается тегом <br> и остаётся на своей строке; выключено — строки склеиваются одним пробелом в единый абзац. «Превращать блоки со списками в списки» решает, становится ли размеченный блок списком вообще — при выключенной настройке он остаётся обычным абзацем вместе с дефисами и цифрами. «Превращать веб-адреса в ссылки» управляет тем, становится ли найденный адрес ссылкой <a> — выключено, и он остаётся обычным экранированным текстом. «Целая HTML-страница» оборачивает фрагмент в doctype, head и body, подробнее об этом ниже.

Частая ошибка и что делают кавычки

Вставить текст, в котором уже есть HTML — скопированный, например, с веб-страницы, — в инструмент, который его не экранирует, — вот как случайный <div> из источника ломает вёрстку там, куда вставили результат. Здесь так не выйдет: каждая угловая скобка во входном тексте экранируется раньше, чем происходит что-либо ещё, поэтому скопированная разметка возвращается как видимый текст, описывающий сам себя, а не как разметка, срабатывающая второй раз.

Не то же самое, что CSV в TSV

Этот инструмент превращает обычный текст в HTML-разметку — абзацы, переносы, списки, ссылки. К разделителям в таблицах он отношения не имеет; для перекодировки между запятой и табуляцией есть отдельный конвертер CSV в TSV. Общее у них — только семейное сходство: оба читают обычный текст и превращают его в другой текстовый формат по заранее описанным правилам, а не угадывая построчно. Если цель — структурированные данные, а не разметка, то есть разбить строки на поля для программы, нужен конвертер текста в JSON, а не эта страница.

Фрагмент или целая страница

Фрагмент — это только <p>, <ul>, <a> и подобные теги. Его вставляют в CMS, в шаблон или в письмо, где обвязка страницы уже есть.

Целая страница добавляет doctype, элемент <html> с указанием языка, кодировку UTF-8 и viewport. Такой файл можно сохранить и открыть в браузере — он корректен сам по себе.

Чего инструмент не делает

Он не понимает Markdown: **жирный** останется звёздочками. Для Markdown нужен настоящий разборщик, а не набор правил для простого текста, и притворяться иначе было бы нечестно.

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

Куда попадает ваш текст

Никуда. Разбор и сборка HTML выполняются в браузере, адреса для загрузки на этой странице нет. Перетащенный файл читается на вашем устройстве, и его содержимое просто попадает в поле ввода.

Ограничение на файл — десять мегабайт. Для текста этого хватает с большим запасом.

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

Что происходит с пустыми строками?

Пустая строка разделяет абзацы: каждый блок текста становится отдельным <p>. Одиночный перенос внутри абзаца превращается в <br>, если включена соответствующая настройка, и иначе просто склеивается пробелом.

Распознаются ли маркированные списки?

Да. Строки, начинающиеся с дефиса, звёздочки или знака «•», собираются в <ul>, а строки вида «1.» или «1)» — в <ol>. Список должен идти подряд: одна такая строка посреди абзаца остаётся текстом.

Безопасно ли вставлять результат на сайт?

Да. Символы &lt;, &gt; и &amp; экранируются до того, как добавляется хоть один тег, поэтому текст, похожий на разметку, останется текстом. Вставленный <script> станет видимыми символами, а не выполнится.

Что происходит со ссылками?

Адреса, начинающиеся с http:// или https://, превращаются в ссылки с rel="noopener". Это не украшение: без noopener открытая страница получает доступ к window.opener, и это давняя дыра в безопасности.

Фрагмент или целая страница?

На выбор. Фрагмент — это только теги содержимого, их вставляют в существующий шаблон. Целая страница добавляет doctype, <html>, кодировку и viewport — файл, который открывается в браузере сам по себе.

Сохранятся ли отступы?

Нет, ведущие пробелы схлопываются, потому что HTML их и так игнорирует. Если отступы значимы — например, это код, — их нужно оборачивать в <pre>, а это уже другая задача и другой инструмент.

Отправляется ли что-нибудь на сервер?

Нет. Преобразование идёт в браузере, и на этой странице нет адреса для отправки. Файл, который вы перетащите, читается на вашем устройстве, а его текст просто попадает в поле ввода.

Можно загрузить файл .txt прямо, без вставки текста?

Да. Перетащите файл .txt на поле или выберите его через проводник — текст прочитается в браузере и преобразуется точно так же, как вставленный вручную. Готовый HTML можно скопировать или скачать файлом .html. Ничего не отправляется на сервер.

Об этом конвертере

Инструмент следует небольшому набору правил для простого текста и не является разборщиком Markdown или HTML. Результат стоит просмотреть перед публикацией — особенно если исходный текст был скопирован из редактора, который добавляет собственное форматирование.

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

Все инструменты Все калькуляторы

Ещё в разделе «Инструменты для текста»