Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Рефакторинг редактора (https://javascript.ru/forum/jquery/30734-refaktoring-redaktora.html)

ksevelyar 13.08.2012 22:32

html -> markdown и обратно
 
Некоторое время назад начал писать под свои нужды редактор текста.

Он преобразовывает html в кастомизированный markdown, и загружает результат в текстовую форму.

При каждом изменении текста генерируется html превью, и сохраняется весь результат снова в html.

Плюс в том, что можно менять синтаксис этого маркдауна и не нужна поддержка со стороны сервера.

Минус в достаточно громоздком коде. Сейчас он состоит из десятков разнообразных регулярок и иже с ними.

Может есть другой подход для достижения цели, чем прогон сотни .replace и хаков?

Скриншот: http://i.imgur.com/uDafA.png?1?3010
Сырой и грязный код: gist.github.com/3342971

Многие мелкие вещи можно почистить и сократить.

Но думаю сам метод неправильный. Как можно сделать по другому?

Как минимум мне не нравится, что я заменяю часть элементов на пустышки перед регулярками, а потом меняю обратно когда те отработают.

Может у кого-нибудь есть опыт перевода из одного формата в другой и желание им поделиться.

melky 13.08.2012 22:40

ну, заниматься рефакторингом чужого кода - трудоёмко очень. Тем более, что конечную цель, и поведение кода знает лучше всего его написавший - ведь в коде отражаются мысли программиста.

Посему, вместо сухих советов, лучше посоветовать литературу :
- изучить парочку паттернов (книга Стефанова подойдет)
- почитать статьи про оптимизации, их полно в инете (http://webo.in/articles/)
- почитать "Сильные стороны" Крокфорда.

после прочтения оных, возможно, к Вам придёт озарение, что как, и что писать, чтобы было "лучше".

ksevelyar 13.08.2012 22:56

Книги и статьи это конечно замечательно, но я хочу решить свою проблему сейчас, не читая годик книжки и статьи. И потом я ведь не прошу никого сделать за меня рефакторинг кода.

Меня интересует вполне приземлённый вопрос — как можно перевести текст из одного формата в другой и обратно не используя регулярные выражения и хаки для них (заменить часть текста на пустышки и вернуть обратно, когда регулярки отработают). Или хотя бы как сделать это малой кровью.

Принцип действия.

Возможно кто-то решал подобную задачу и захочет поделиться опытом.

upd:
Изменил название топика на более корректное.

Deff 14.08.2012 00:18

ksevelyar,

a) Приведите текстовый пример пусть небольшого начального куска HTML кода
b) Небольшой его модификации пользователем - опишите - что делаете Вы и Выходной HTML Код

(Желательно минимальный пример в достаточной степени объясняющий суть и последовательность


Часовой пояс GMT +3, время: 14:46.