Хорошо, поэтому я создал CMS в основном для начальных школ. Это становится довольно популярным в Новой Зеландии, но одно, что я ненавижу со страстью, - это в значительной степени плохое качество в редакторах WYSIWYG в браузере. Я использовал KTML (сделанный InterAKT, приобретенный Adobe несколько лет назад). По-моему, этот редактор делает много замечательных вещей (редактирование/управление изображениями, миниатюра и довольно хорошее редактирование контента). К сожалению, время с этим продуктом было неприятным, и новые браузеры начинают нарушать функции и вообще ухудшают производительность этого инструмента. Это также довольно страшно, основывая мои средства к существованию на несуществующем продукте!
Я охотился, на самом деле я регулярно охочусь, чтобы увидеть, изменилось ли что-то на арене WYSIWYG. Самое близкое, что я видел, что меня волнует, - это основа WYSIHAT, но они решили игнорировать довольно соответствующую парадигму редактирования, о которой я расскажу ниже. Это идея моего предлагаемого редактора, и я не знаю каких-либо существующих продуктов, которые могут сделать это правильно:
Правильно, поэтому традиционная модель для редактирования позволяет использовать страницу в CMS, чтобы войти в "конец" и нажать "Изменить" на странице. Затем он загрузит другой экран с помощью редактора и, возможно, нескольких других полей. Более продвинутая CMS, возможно, имеет несколько полей редактирования, которые предназначены для разных частей страницы. В любом случае, большая проблема с этим способом заключается в том, что пользователь редактирует документ за пределами конечного контекста, в котором он появится. В простейших терминах это означает шаблон страницы. Многие вещи могут быть неправильными, например. область редактирования может отличаться от ширины фактической области шаблона. Высота почти всегда исправлена, потому что существующие редакторы всегда используют IFRAMES для обратной совместимости. И есть много других говядинок, которые, я уверен, вы прекрасно знаете, находитесь ли вы в этой области разработки.
Здесь мой редактор utopia:
Вы нажимаете "Изменить страницу": отображается фактическая страница (с ее фактическим шаблоном). Части страницы отмечены как редактируемые с помощью имени класса. Вы нажимаете на одну из этих областей (в моем случае это будет просто большая область тела в середине шаблона), и панель редактирования сбрасывается с верхней части экрана со всеми стандартными элементами управления (жирным шрифтом, курсивом, вставить изображение и т.д.). Iframes никогда не используются, вместо этого мы полагаемся на настройку contentEditable на true в рассматриваемом DIV. Firefox 2 и IE6 могут уйти, давайте двигаться дальше. Вы можете редактировать страницу, зная, как она будет выглядеть при ее сохранении. Поскольку все стили для этого шаблона загружены, ваши заголовки будут выглядеть правильно, все будет просто денди. Является ли это такой радикальной концепцией? Почему мы все еще довольны TinyMCE и другим редактором, который слишком неловко использовать, потому что это звучит как ругательное слово!?
Посмотрим правде в глаза:
Я новичок в JavaScript. Я когда-то играл в этой области, используя Антологию Javascript из 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, поэтому я держусь, чтобы увидеть, как далеко это доходит. Они используют подход только для очистки кода в конце цикла редактирования. Я думаю, что это должно быть очищено на лету, иначе вы можете отредактировать себя в трясине (я сделал это несколько раз). Когда у меня будет время, я исследую какой-то механизм гомогенизации, который можно подключить, чтобы процесс редактирования вел себя как можно ближе во всех современных браузерах.