В 2016 году интернет-изданиям недостаточно просто писать интересные материалы, нужно быстро и качественно их оформлять и показывать на разных устройствах. Я расскажу о нашем опыте создания JS-редактора, с помощью которого ежедневно публикуются десятки постов для 3 миллионов читателей.
1 of 46
More Related Content
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
12. Проблемы
•What You See !== What You Get
•Грязный HTML-код
•Слишком много инструментов и возможностей
•Разное поведение contenteditable в браузерах
12
17. HTML
The hobbit was a very well-to-do hobbit, and his name was Baggins.
The <a href=”http://en.wikipedia.org/wiki/The_Hobbit">hobbit</a>
was a very well-to-do hobbit,
and his name was <strong><em>Baggins</em></strong>.
<strong><em>Baggins</em></strong>
<em><strong>Baggins</strong></em>
<em><strong>Bagg</strong><strong>ins</strong></em>
<em><strong>Bagg</strong></em><strong><em>ins</em></strong>
17
18. Задачи
•WYSIWYRG
•Чистый кроссбраузерный HTML
•Гибкая система настроек
•Адаптация под различные устройства и экраны
•Привычный UX: горячие клавиши, контекстное меню,
copy&paste, undo/redo
•Удобен как для редакторов, так и для дизайнеров
18
23. Виртуальный DOM
•На вход получаем DOM Node, HTML или что-то ещё
•Формируем из содержимого поста дерево элементов
•Рендерим пост в любом формате: HTML, Markdown, JSON…
•Удобно для тестирования
23
37. Undo / Redo
Сохранение Editor State при каждом действии пользователя:
•контент
•выделенный элемент (один или несколько)
•положение курсора в тексте
•тема, лэйаут
37
44. Цифры
•91 модуль
•~330 КБ minified
•~15 000 строк кода
•4,5 месяца работы
•3 внедрения
•> 20 млн просмотров в месяц
•Время сборки поста: 10-60 минут
44