Редактори кодів за допомогою javascript

Дуже часто в web-проектах треба використовувати візуальний редактор коду (richtext code editor), схожий на існуючі IDE, з номерами рядків і підсвічуванням коду. Найбільш часто він використовується в редагуванні вихідного коду статті або шаблонів в адмінці. У цій статті я перерахую існуючі скрипти за аналогією до списку WYSIWYG-редакторів.


Практично всі існуючі візуальні редактори створюють iframe і генерують всередині сторінку у відповідності з даними javascript-об'єкта, що займаються всіма завданнями по генерації коду і обробці клавіш.

Засновані на iframe:

  • EditArea - найбільш популярний редактор завдяки табуляції, gzip, сумісність простору імен з іншими бібліотеками
  • CodePress - парсит SQL, Perl, C #, XSL, ASP, VBscript. Окремі рушії для різних браузерів (gecko = firefox, ie, opera). Створюється iframe з внутрішнім CodePress'об'єктом з обігом через Відразу всередині скрипту йде пошук textarea-елементів по класу, так що з динамічними ajax-редакторами доведеться змінювати скрипт. Крім того, нумерація (до 1500) рядків зроблена за допомогою однієї картинки
  • CodeMirror - парсит JS, HTML, CSS

Нагадаю, що iframe не відповідає XHTML специфікації, а з використання

запропонований тег object з не сильно вийде, через обмеження на

доступ внутрішніх dom-елементів (поправте якщо я неправий).

Засновані на div'ax

  • MDK-editor - найбільш нормальний редактор, є контекстне меню. У мінуси можна віднести негарний скін, невелику гальмованість і невідому ліцензію на використання.
  • Helene - замість iframe використовується фоновий div і динамічно позиціонована textarea поверх. Оскільки змінюється лише один ряд, неможливо виділити декілька рядків відразу
  • 9ne - схожий на консоль, але немає можливості виділення всього рядка Shift + End. Емулює каретку миготливим div'ом.

PS. Аннонсирую что в скором времени выйдет блог-движок моего производства...

Оригінал