Сверстайте страницу (стилевое оформление на свое усмотрение), разделенную пополам. В левой части страницы разместите поле для ввода текста. В правой половине отведите место место для вывода результата.
Ваше приложение должно преобразовать вводимый текст (из левой части), преобразовать его в HTML и отобразить в правой части страницы по определенным правилам:
# Заголовок - вся строка, которая начинается с символа # помещается в тег <H1/>. При переходе на новую строку, тег H1 закрывается. Символ # удаляется из этой строки. Жирный текст - Текст помещенный между становится жирным, то есть помещается в тег<b/>, символы удаляются из этой строки. Курсив - Текст помещенный между становится курсивным, то есть помещается в тег <i/>, символ удаляется из этой строки. Перенос строки заменяется на <br>
Иначе говоря, с правой стороны должен появиться красивый сверстанный текст.
Каким образом можно реализовать? Хотелось бы через PHP это всё прогнать.
>>1621693 Да запросто - отправляешь формой на сервер по клику, а тот ответ присылает. Можно без перезагрузки страницы реализовать - ажаксом. Можно на чистом жс распарсить.
Верстать можно на гридах, флексах или бутстрапе его лучше не надо на этом задании.
Я бы за час-два сделал в любом виде - я сам ждун в поисках первой работы.
Где вы вообще такие тестовые берёте? Я что ни постучусь на вакансию, то всякие круды на Ларавель пилить надо или баги править на куске реального проекта. И это только тестовые.
Тащемт js может и должен это всё прямо на странице сделать, нахера для такого сервер? Сверстаю на изи если давать остальную работу и платить зарплату тоже будут мне
>>1625112 Да ладно там же все просто и понятно. 1-2. инклюды чтобы строки и консолька работали 3-4. разработчики юникода и шиндоус мудаки, поэтому копипаста чтобы utf-16 работало 5. ненужный инклюд забыл убрать 6. конфиг. половинная ширина терминала (подобранная методом проб и ошибок) 7. функция для перевода символа юникода в его смещение относительно буквы А 8. функция добавления символа к строке с учетом текущих тегов. 9. если нет тегов или символ не конвертируемый, добавить как есть 10. если символ в нижнем регистре, то доп.смещение. потому что авторы юникода мудаки 11. автоматически высчитываемое смещение в зависимости от текущих тегов. 12. фикс пропущенных символов. потому что авторы юникода мудаки. 13. добавление к строке суррогатной пары. потому что авторы юникода и шиндоус мудаки. 15-16. глобальные переменные, вынесены туда из мейна для простоты. 17. функция, дописывающая к строке накопленные символы незавершенного тега. есть бага. 18. псевдохешмап, на два валидных и один невалидный тег 19. главная функция 20. копипаста чтобы utf-16 работало, потому что авторы юникоды и шиндоус мулаки. 21. цикл, считывающий строку целиком из консольки и сбрасывающий переменные 22. цикл для всех сивмолов в строке. есть бага. 23. если самый первый символ строки #, то вход в режим заголовка. сам # не добавляется к строке 24. добавление к строке символа в режиме заголовка 26. конечный автомат микропарсера тегов 27. в начальном состоянии, если символ открытия тега, то следующее состояние 28. иначе символ добавляется к строке с учетом текущих тегов 29. в состоянии ожидания буквы тега, если /, то переход в состояние закрывающегося тега 30. в состоянии ожидания буквы тега или закрывающегося тега, запомнить букву тега 31. в случае незавершенного тега, записать сохраненные символы. 32. в состоянии окончания открывающего или закрывающего тега, если тег валиден, то (кроме случая, когда тег не был открыт) увеличить или уменьшить счетчик активных тегов. И сбросить состояние конечного автомата. 33. как 31. 36. завершение последнего незакрытого тега в строке 37. обрезать обработанную строку по полуширине терминала 38. выровнять строку пробелами до полуширины терминала и отделить вертикальной чертой 39. вывести обработанную строку и подготовиться к вводу новой строки, вернув каретку в начало. 40. повторить весь цикл ввода.
Спасибо всем кто не помог. Сделал на js, с помощью регулярных выражений. Спасибо Stack Overflow и Google. >>1625179 Ну ты и даун. >>1625080 Спасибо бро, вот именно так и запилил. Почёт и уважение.
Сверстайте страницу (стилевое оформление на свое усмотрение), разделенную пополам. В левой части страницы разместите поле для ввода текста. В правой половине отведите место место для вывода результата.
Ваше приложение должно преобразовать вводимый текст (из левой части), преобразовать его в HTML и отобразить в правой части страницы по определенным правилам:
# Заголовок - вся строка, которая начинается с символа # помещается в тег <H1/>. При переходе на новую строку, тег H1 закрывается. Символ # удаляется из этой строки.
Жирный текст - Текст помещенный между становится жирным, то есть помещается в тег<b/>, символы удаляются из этой строки.
Курсив - Текст помещенный между становится курсивным, то есть помещается в тег <i/>, символ удаляется из этой строки.
Перенос строки заменяется на <br>
Иначе говоря, с правой стороны должен появиться красивый сверстанный текст.
Каким образом можно реализовать? Хотелось бы через PHP это всё прогнать.