БлогNot. Преобразовать plain текст в простую разметку HTML онлайн

Преобразовать plain текст в простую разметку HTML онлайн

...точней, преобразовать txt2html прямо в вашем браузере, так как сервис на Яваскрипте. Здесь мне требовалось только следующее:

  • заменить "критичные" для HTML символы <, > и & на их HTML-сущности;
  • убрать лишние (больше одной подряд) пустые строки;
  • поставить в конце строк теги разрыва строки <br>;
  • опционально сжать "лишние" пробелы между лексемами и в начале или конце строк.

Другие задачи - в других заметках, например, слияние строк, массив из строк, перeвернуть список строк и т.д. Чуть более "мощный" сервис на PHP есть здесь.

Вот скрипт в работе онлайн и его небольшой исходник (документ HTML без обрамляющих тегов в кодировке Юникода UTF-8). Нужный текст вводится или вставляется в верхнее поле, результат будет в нижнем.

<div>
 <p><textarea id="srcText" rows="12" cols="80"></textarea></p>
 <p><textarea id="resHtml" rows="12" cols="80"></textarea></p>
 <p>
  <input type="checkbox" id="trimSpaces">
   <label for="trimSpaces">Сжимать лишние пробелы в строках</label>
  <button id="calcButton">Выполнить</button>
  <button id="clearButton">Очистить</button>
 </p>
</div>
<script>
document.getElementById('calcButton').onclick = function (e) { //Кнопка Выполнить
 e.preventDefault();
 let text = document.getElementById('srcText').value;
 let output = text.replace(/&/gu,'&amp;').replace(/</gu,'&lt;').replace(/>/gu,'&gt;');
 let dividor = '<br>\n';
 output = output.replace(/\n{1,}/gu, dividor);
 if (document.getElementById('trimSpaces').checked) {
  let arr = output.split (dividor);
  let res = [];
  for (let i=0; i<arr.length; i++) {
   let s = arr[i].replace (/\s+/gu,' ').replace(/(^\s*)|(\s*)$/gu,'');
   if (s.length) res.push (s);
  }
  output = res.join(dividor);
 } 
 document.getElementById('resHtml').value = output;
};
document.getElementById('clearButton').onclick = function (e) { //Кнопка Очистить
 document.getElementById('srcText').value = document.getElementById('resHtml').value = '';
};
</script>
<noscript>
 <div>Включите в браузере JavaScript для работы приложения!</div>
</noscript>

теги: javascript textprocessing сервис

02.04.2020, 22:34; рейтинг: 86