Эта статья рассказывает, как преобразовать простой текст (plain text) в форматированный код html или наоборот в bat файле или командной строке.
Возможность программы nhrt выполнять замены по списку команд идеально подходит для этих задач, так как позволяет в удобной форме задать большое количество действий по замене или удалению текста.
Конвертировать текст в html файл
Форматирование обычного текста в код html может показаться простой задачей – казалось бы, только вставить заголовок в начало и добавить закрывающие теги в конце текста, но в дополнение к этому потребуется:
- вставить абзацы <p>…</p> или переводы строк <br> там, где в исходном файле есть переводы строк \n или \r\n
- заменить символы на последовательности html, например, угловую скобку > на
>
или символ верхней двойки (квадрата) ² на²
- привести в соответствие фактическую кодировку файла и заголовок html
Вставить переводы строк
Чтобы вставить абзацы, каждый перевод строки в тексте заменяем на </p><p>. Соответственно, в начале текста вставляем <p> и в конце — </p>.
-sre:"[\r\n]+" -t:"
Преобразовать символы в последовательности html
Реализуется простой заменой параметрами -spt и -t, по одной замене на строку:
-spt:">" -t:">"
-spt:"<" -t:"<"
-spt:"²" -t:"²"
-spt:"⎓" -t:"⎓"
Здесь показано только несколько замен, остальные символы есть в файлах для скачивания.
Вставить заголовок <head>
Команда -insert вставляет заданный текст в начало файла. Здесь сразу и заголовок с кодировкой, и начало текста.
-insert -et:"<!DOCTYPE html><head><meta charset=\"UTF-8\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><body><p>"
Вставить завершающие теги
-append -t:"</p></body></html>"
Итоговый список команд и строка запуска
В итоге, список команды для преобразования обычного текста в формат html получается таким:
-spt:">" -t:">"
-spt:"<" -t:"<"
-spt:"¹" -t:"¹"
-spt:"²" -t:"²"
-spt:"³" -t:"³"
-spt:"€" -t:"€"
-spt:"←" -t:"←"
-spt:"→" -t:"→"
-spt:"°" -t:"°"
-spt:"…" -t:"…"
-spt:"⎓" -t:"⎓"
-sre:"[\r\n]+" -t:"</p><p>"
-insert -et:"<!DOCTYPE html><head><meta charset=\"UTF-8\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><body><p>"
-append -t:"</p></body></html>"
Эта команда выполняет все действия в списке для файла text.html:
nhrt -list:txt2html.list -o:d text.html
После выполнения этой команды в text.html будет код html.
Конвертировать html файл в txt
Чтобы удалить весь html код из файла, нужно не только удалить теги в угловых скобках <...>
, но и также:
- заголовок, скрипты, стили
- перевести абзацы
<p>...</p>
и переводы строк<br>
в текстовые\n
или\r\n
- перевести элементы списков
<li>
в строки с тире — или точками • в начале строки и с переводами строк - отформатировать таблицы, хотя бы по строкам
- заменить html последовательности типа
>
на соответствующие символы >
Вставить переводы строк для абзацев и списков
Простая замена
-spt:"<br>" -et:"\r\n"
-spt:"<p>" -et:"\r\n"
-spt:"<li>" -et:"\r\n- "
Форматировать таблицы
Каждая строка таблицы будет с новой строки в текстовом файле, благодаря простой замене тега <tr> на перевод строки.
-spt:"<tr>" -et:"\r\n"
Преобразовать последовательности html в символы
Также делается простой заменой.
-spt:">" -t:">"
-spt:"<" -t:"<"
-spt:"©" -t:"©"
-spt:"®" -t:"®"
-spt:"…" -t:"…"
Удалить скрипты, стили, комментарии
Чтобы удалить скрипты <script>...</script>
, и аналогичные конструкции:
-sre:"<!--.*?-->" -e
-sre:"<head.*>.*?<\/head>" -i -e
-sre:"<script.*>.*?<\/script>" -i -e
-sre:"<style.*>.*?<\/style>" -i -e
Итоговый список команд и строка запуска
Этот список включает рассмотренные выше команды замены, а также удаление исходные переводов строк, комментариев и тегов html.
-sre:"[\r\n]+" -t:" "
-sre:"<!--.*?-->" -e
-sre:"<head.*>.*?<\/head>" -i -e
-sre:"<script.*>.*?<\/script>" -i -e
-sre:"<style.*>.*?<\/style>" -i -e
-spt:"<br>" -et:"\r\n"
-spt:"<p>" -et:"\r\n"
-spt:"<li>" -et:"\r\n"
-spt:"<tr>" -et:"\r\n"
-sre:"<.*?>" -e
-spt:">" -t:">"
-spt:"<" -t:"<"
Файлы для скачивания
По ссылке находятся все необходимые bat файлы и конфигурационные файлы.
Полезные ссылки
Программа замены текста в файлах nhrt: загрузка, справка.
Онлайн анализатор регулярных выражений regex101.com