[prg] разработка html редактора
Здравствуйте товарищи программисты! Встала передо мной задача разработки
html редактора, но вот вопрос с чего начать. Подобной задачи в литературе не
нашел даже на примере простенького редактора, следовательно, задачу надо
делить. Если я правильно понимаю задача делится на 3 этапа. Первый этап:
создание интерпритатора, (это хорошо описано в литературе, лексемы,
синтаксис семантика и т.д.), построение непосредственно самого редактора с
необходимыми функциями (ну если совсем просто делать, то это не задача, а
просто многострочное текстовое поле с автозавершением строк и т.д.) и третья
часть: как строить отображение html кода в отдельном окне - вот как эту
задачу нешить не знаю. В общем у кого какие мысли есть? Особую сложность
как мне кажется представляет тег <a>, предназначенный для перехода по
ссылке. Хотя как заставить текст выйти темно-синим по центру тоже не очень
понятно. Вобщем, у кого какие соображения?
Здравствуйте, Константин Петухов.
Не очень понял, что под этим вы подразумеваете, если компонент для
отображения у вас рассматривается дальше отдельно?
Честно говоря, у меня самая первая мысль - это желание пойти по пути
наименьшего сопротивления и де-факто схалтурить, а именно написать текстовый
редактор с автоподстановкой и подсветкой HTML-синтаксиса, а весь функционал
предпросмотра поднять просто в окне браузера, в котором будет открываться
пересохраняемый файл, над которым мы работаем.
Если же говорить о более полноценном решении, то архитектурно я бы разделил
это на две части: редактор кода и обработчик страницы для предпросмотра.
С редактором кода всё более-менее понятно, а просмоторщик надо делать на
базе какой-нибудь готовой библиотеки для рендеринга HTML.
То есть просто изучите поисковую выдачу по запросу "HTML rendering library"
и подберите подходящую под ваши требования библиотеку: зависимости,
лицензия, язык разработки и т.п.
Ну а если делать серьёзно, то можно сразу брать открытый движок WebKit и
поднимать просмоторщик на его базе, тогда и специфика отображения будет
совпадать с наиболее распространёнными браузерами, что достаточно важно в
подобном продукте. Браузеры ведь частенько один и тот же код могут
отображать по-разному.
Успехов. Никита.