- Описание
- Отправленные решения
13. Редактор разметки текстов
Чтобы упростить жизнь контент-менеджеру сайта, сделали простую CMS, в которой тексты статей набираются в кастомной разметке.
Набор операторов ограничен:
- Заголовки
- Неупорядоченные списки одного уровня вложенности
- Абзацы — Ссылки
Необходимо написать тело преобразующей функции
module.exports = (str) => {
// Ваш код здесь
};
Формат ввода
= head
text ((https://ya.ru link)) text.
* item
* item
Формат вывода
<h1>head</h1><p>text <a href="https://ya.ru">link</a> text.</p><ul><li>item</li><li>item</li></ul>
Примечание
- Незначимые пробелы и переносы строк на выходе не имеют значения, т.к. в тестах html приводится к одной строке, а лишние пробелы удаляются;
- Одинарные кавычки в тесте приводятся к двойным;
- Формат заголовка (Начало строки, знак равно, пробел, текст заголовка, конец строки);
- Формат абзаца (Начало строки, текст абзаца, конец строки);
- Формат списка (Пункт списка, повторенный один и более раз: Начало строки, звёздочка, пробел, текст, конец строки. До и после списка пустые строки);
- Формат ссылки (Две открывающие скобки, адрес ссылки, первый пробел, текст ссылки с любым кол-вом пробелов, две закрывающие скобки)
Ограничения
Ограничение времени
1 с
Ограничение памяти
64 МБ
Пример 1
Ввод
* test
Вывод
<ul><li>test</li></ul>
Пример 2
Ввод
* item
* item
Вывод
<ul><li>item</li><li>item</li></ul>
Пример 3
Ввод
* test
* test 2
Вывод
<ul><li>test</li></ul><ul><li>test 2</li></ul>
Пример 4
Ввод
test
Вывод
<p>test</p>
Пример 5
Ввод
= head
text ((https://ya.ru link)) text.
* item
* item
Вывод
<h1>head</h1><p>text <a href="https://ya.ru">link</a> text.</p><ul><li>item</li><li>item</li></ul>