Хорошо, поэтому я создал CMS, в основном предназначенную для начальных школ. Он становится довольно популярным в Новой Зеландии, но единственное, что я ненавижу со страстью - это плохое качество браузерных WYSIWYG-редакторов. Я использую KTML (сделанный InterAKT, который был приобретен Adobe несколько лет назад). На мой взгляд, этот редактор делает много хороших вещей (редактирование / управление изображениями, миниатюры и довольно хорошее редактирование контента). К сожалению, время с этим продуктом пошло не так, и новые браузеры начинают ломать функции и, как правило, снижать производительность этого инструмента. Также довольно страшно основывать свои средства к существованию на несуществующем продукте!
Я охотился, на самом деле я регулярно охотюсь, чтобы увидеть, изменилось ли что-нибудь на арене WYSIWYG. Самая близкая вещь, которая меня поразила, - это структура WYSIHAT, но они решили игнорировать довольно актуальную парадигму редактирования, которую я собираюсь изложить ниже. Это идея моего предложенного редактора, и я не знаю ни одного из существующих продуктов, которые могли бы сделать это правильно:
Правильно, поэтому традиционная модель для редактирования, скажем, Страница в CMS, состоит в том, чтобы войти в «бэкэнд» и нажать «Изменить» на странице. Затем будет загружен другой экран с редактором и, возможно, с несколькими другими полями. Более продвинутые CMS могут иметь несколько полей для редактирования, предназначенных для разных частей страницы. В любом случае, большая проблема этого способа состоит в том, что пользователь редактирует документ вне конечного контекста, в котором он будет отображаться. В простейшем смысле это означает шаблон страницы. Многие вещи могут быть неправильными, например Размер области редактирования может отличаться от ширины фактической области шаблона. Высота почти всегда фиксирована, потому что существующие редакторы всегда используют IFRAMES для обратной совместимости. И есть много других проблем, о которых, я уверен, вы вполне осведомлены, находясь в этой области разработки.
Вот мой редактор утопии:
Вы нажимаете «Изменить страницу»: отображается фактическая страница (с ее текущим шаблоном). Части страницы были помечены как редактируемые через имя класса. Вы нажимаете на одну из этих областей (в моем случае это просто большая область «тело» в середине шаблона), и в верхней части экрана появляется панель редактирования со всеми стандартными элементами управления (полужирный, курсив). , вставьте изображение и т. д.). Iframes никогда не используются, вместо этого мы полагаемся на установку contentEditable в true для рассматриваемых DIV. Firefox 2 и IE6 могут уйти, давайте двигаться дальше. Вы можете редактировать страницу, точно зная, как она будет выглядеть при сохранении. Поскольку все стили для этого шаблона загружены, ваши заголовки будут выглядеть правильно, все будет просто модно. Это такая радикальная концепция? Почему мы до сих пор довольны TinyMCE и другим редактором, который слишком неловко использовать, потому что это звучит как ругательство!?
Давайте посмотрим правде в глаза:
Я новичок в JavaScript. Я однажды поиграл в этой области, используя в качестве руководства Javascript Anthology от SitePoint. Это был довольно крутой опыт обучения, но они, конечно, использовали IFRAME, чтобы облегчить свою жизнь. Я попытался пойти другим путем и просто использовать contentEditable и даже попытался обойти нативные процедуры редактирования контента (execCommand) и вместо этого написал свой собственный. Они вроде работали, но всегда были проблемы.
Теперь у нас есть jQuery и несколько библиотек, которые абстрагируют такие вещи, как отсутствие поддержки IE в Range. Мне интересно, я сумасшедший, или это действительно хорошая идея, чтобы попытаться построить редактор вокруг этой парадигмы редактирования, используя jQuery и соответствующие плагины, чтобы облегчить работу?
Мои актуальные вопросы:
- С чего бы вы начали?
- Какие плагины
знаете ли вы, что это поможет
больше всего?
- Стоит ли это того, или есть
волшебный проект, который уже существует
что я должен присоединиться?
- Какие самые большие препятствия нужно преодолеть в
проект, как это?
- Я сумасшедший?
Надеюсь, этот вопрос был размещен на правой доске. Я подумал, что это технический вопрос, так как я хочу знать конкретные препятствия и ловушки, на которые следует обратить внимание, а также, если это технически возможно с современной технологией.
С нетерпением жду возможности услышать мысли и мнения людей.
UPDATE
Я решил, что я попробую это и начну проект github, когда у меня будет что-то классное на что посмотреть. Оттуда я буду полностью рад любой помощи, которую могут предложить люди. Это будет с открытым исходным кодом, конечно:)
ОБНОВЛЕНИЕ 2
Я сделал проект и наметил цели. Дайте мне знать, если вы хотите присоединиться к группе проекта в качестве участника, но сначала я подойду к основам, поэтому есть с чего начать.
Вот ссылка: http://github.com/brendon/SpikeEdit
Обновление 3
Ничего себе! Я нашел этот проект. Какая классная идея! Я связываюсь с ним, чтобы узнать, получал ли он когда-нибудь это:
http://www.fluffy.co.uk/stediting
Обновление 4
Хорошо, я получил достаточно далеко. Самая большая проблема (как все всегда знают) состоит в том, как сохранить код, генерируемый в разумном состоянии. WYSIHAT, кажется, взял на себя все, что не связано с IFRAME, поэтому я сдерживаюсь, чтобы посмотреть, как далеко это продвинется. Они используют метод очистки кода в конце цикла редактирования. Я думаю, что это должно быть очищено на лету, иначе вы можете отредактировать себя в болоте (я делал это несколько раз). Когда у меня будет время, я исследую какой-то механизм гомогенизации, который можно подключить, чтобы процесс редактирования работал максимально схожим образом во всех современных браузерах.