html -> markdown и обратно
Некоторое время назад начал писать под свои нужды редактор текста.
Он преобразовывает html в кастомизированный markdown, и загружает результат в текстовую форму. При каждом изменении текста генерируется html превью, и сохраняется весь результат снова в html. Плюс в том, что можно менять синтаксис этого маркдауна и не нужна поддержка со стороны сервера. Минус в достаточно громоздком коде. Сейчас он состоит из десятков разнообразных регулярок и иже с ними. Может есть другой подход для достижения цели, чем прогон сотни .replace и хаков? Скриншот: http://i.imgur.com/uDafA.png?1?3010 Сырой и грязный код: gist.github.com/3342971 Многие мелкие вещи можно почистить и сократить. Но думаю сам метод неправильный. Как можно сделать по другому? Как минимум мне не нравится, что я заменяю часть элементов на пустышки перед регулярками, а потом меняю обратно когда те отработают. Может у кого-нибудь есть опыт перевода из одного формата в другой и желание им поделиться. |
ну, заниматься рефакторингом чужого кода - трудоёмко очень. Тем более, что конечную цель, и поведение кода знает лучше всего его написавший - ведь в коде отражаются мысли программиста.
Посему, вместо сухих советов, лучше посоветовать литературу : - изучить парочку паттернов (книга Стефанова подойдет) - почитать статьи про оптимизации, их полно в инете (http://webo.in/articles/) - почитать "Сильные стороны" Крокфорда. после прочтения оных, возможно, к Вам придёт озарение, что как, и что писать, чтобы было "лучше". |
Книги и статьи это конечно замечательно, но я хочу решить свою проблему сейчас, не читая годик книжки и статьи. И потом я ведь не прошу никого сделать за меня рефакторинг кода.
Меня интересует вполне приземлённый вопрос — как можно перевести текст из одного формата в другой и обратно не используя регулярные выражения и хаки для них (заменить часть текста на пустышки и вернуть обратно, когда регулярки отработают). Или хотя бы как сделать это малой кровью. Принцип действия. Возможно кто-то решал подобную задачу и захочет поделиться опытом. upd: Изменил название топика на более корректное. |
ksevelyar,
a) Приведите текстовый пример пусть небольшого начального куска HTML кода b) Небольшой его модификации пользователем - опишите - что делаете Вы и Выходной HTML Код (Желательно минимальный пример в достаточной степени объясняющий суть и последовательность |
Часовой пояс GMT +3, время: 03:12. |