The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Facebook открыл код Lexical, библиотеки для создания редакторов текста

14.04.2022 08:24

Компания Facebook (запрещена в РФ) открыла исходные тексты JavaScript-библиотеки Lexical, предлагающей компоненты для создания текстовых редакторов и продвинутых web-форм редактирования текста для сайтов и web-приложений. Из отличительных качеств библиотеки выделяется простота интеграции на сайты, компактное исполнение, модульность и поддержка средств для людей с ограниченными возможностями, таких как экранные ридеры. Код написан на языке JavaScript и распространяется под лицензией MIT. Для ознакомления с возможностями библиотеки подготовлено несколько интерактивных демонстраций.

Библиотека рассчитана на простоту подключения и не зависит от внешних web-фрейворков, но при этом предоставляет готовые привязки для упрощения интеграции с фреймворком React. Для использования Lexical достаточно привязать экземпляр редактора к редактируемому элементу, после чего в процессе редактирования можно контролировать состояние редактора через обработку событий и команд. Библиотека позволяет отслеживать состояния редактора в любой момент времени и отражать в DOM изменения на основании вычисления различий между состояниями.

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

Базовый каркас библиотеки содержит минимально необходимый набор компонентов, функциональность которого расширяется через подключение плагинов. Например, через плагины можно подключить дополнительные элементы интерфейса, панели, средства для визуального редактирования в режиме WYSIWYG, поддержку формата markdown или компоненты для работы с отдельными видами контента, такими как списки и таблицы. В форме плагинов также доступны такие функции как автодополнение ввода, ограничение на максимальный размер вводимых данных, открытие и сохранение файлов, прикрепление примечаний/комментариев, голосовой ввод и т.п.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: В рамках проекта Sandstorm развивается платформа для персональных web-серверов
  3. OpenNews: Ice.js - система наглядного отслеживания изменений в web-формах
  4. OpenNews: Представлен ProseMirror 1.0, тулкит для создания визуальных редакторов для Web
  5. OpenNews: Релиз встраиваемого в web-приложения редактора кода ACE Editor 1.0
  6. OpenNews: Facebook открыл Draft.js, библиотеку для построения web-редакторов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57018-lexical
Ключевые слова: lexical, facebook, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, n00by (ok), 09:03, 14/04/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –9 +/
     

     ....ответы скрыты (2)

  • 1.8, Аноним (8), 09:49, 14/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Не надо делать текстовые редакторы в браузере.
     
     
  • 2.10, Аноним (10), 10:11, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Комьюнити VS Code вас не любит! Но они напыщенные чудилы. Говорят всем на форумах что "VSCode уже считается быстрым и легковесным редактором. Переходите на него! Столько новых фич!"
     
     
  • 3.12, Аноним (12), 10:26, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    а шо поделать, если он существенно быстрее, легковеснее(ой вэй! даже с обвесом из плагинов) и удобнее нативненького QtCreator, и не нативных Visual Studio и бесчисленного числа IDE работающих на jvm(привет тем кто в упор не видит тормознутость jb, на протяжении лет так 15, и рекомендует апгрейдить железо).
     
     
  • 4.20, InuYasha (??), 11:04, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Быстрее QtCreator? Сильное заявление. Проверять его я, конечно не буду. А так - есть C::B.
     
     
  • 5.30, Аноним (30), 12:44, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Creator очень сильно жрёт память и тормозит. Особенно его модель кода. Студия жрала намного меньше. LSP-сервера вообще мрак. Почему-то все жрут ОЧЕНЬ много.
     
     
  • 6.33, InuYasha (??), 13:14, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я пользовал лишь 4ый креатор, так, что, не спорю. Но и студии легковесными никак не назову. Когда там появился дотнет, всё накрылось. Перешёл пока на kdevelop, но там всё от бакенда зависит. cmake + гцц сами могут тормознуть ого-го.
     
  • 6.36, Аноним (36), 14:22, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Особенно его модель кода.

    А, так то к Шлангу претензии. Я QtCreator собираю без шлангопотрохов, у меня не тормозит.

     
     
  • 7.46, Аноним (30), 17:22, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А Студия и смоделью не тормозила и не жрала. Я про 2013 Студию, если что.
     
     
  • 8.48, Аноним (48), 21:41, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так, я так понимаю, она тогда ещё не была на Electron Да и Шланг тогда ещё не и... текст свёрнут, показать
     
  • 6.39, Аноним (39), 14:58, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А у VSCode LSP не тормозит, так как его там нет, ага. А на самом деле и там и там сейчас clangd есть, если нужны именно сишка-плюсы.
     
     
  • 7.49, Аноним (48), 21:49, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Использую именно для Плюсов без Шланга. Полёт нормальный.
     
     
  • 8.51, topin89 (ok), 23:39, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Везуха Использую Code с IntelliSense, оно работает быстро, а потом просто вылет... текст свёрнут, показать
     
  • 4.40, Аноним (-), 15:32, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в мечтах быстрее? или на проекте в 3 строчки? на больших vs code безбожно тормозит и уступает даже eclipse
     
     
  • 5.42, Аноним (12), 15:52, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на больших проектах я использовал vscode с языком go и там же был ui на js/ts/html/css, тормозов не было от слова совсем(и с go.mod и без всё было хорошо), памяти конечно gopls отъедал прилично, порядка от 10 при открытии и около 14 Гб к концу рабочего дня, но всё ворочалось очень даже приятно быстро. Ищите проблемы тормозов в используемом Вами language server'е, а не в vscode.
     
     
  • 6.52, topin89 (ok), 23:42, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ну в условиях бесконечной памяти vscode конечно будет хорошим.
     
  • 4.43, Аноним (43), 15:59, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > привет тем кто в упор не видит тормознутость jb, на протяжении лет так 15, и рекомендует апгрейдить железо

    На 64ГБ+ рам и nvme jb работает быстрее меня. И хотя это действительно грустно немного — куда более скромные по параметрам сервера справляются с куда более серьёзной нагрузкой, в итоге это не так уж и важно. При условии, что jb экономит твоё время в значительной мере, конечно же. Стоимость рабочего места будет размазана по нескольким клиентам и вычтена из налогооблагаемой базы, так что пусть хоть 128ГБ сожрёт, я за них не из своего кармана плачу как ни крути.

     
     
  • 5.58, Аноним (58), 09:41, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Грустно всё это, вот буквально 5 лет назад 8Гб рам хватало для запуска нескольких эклипсов и пары тестовых виртуалок. Ныне же котлин и идея и памяти уже нужно поболее, раза в 3 поболее
     
  • 5.59, Аноним (12), 11:26, 15/04/2022 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.65, Vacu923ek (ok), 13:19, 15/04/2022 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.64, Vacu923ek (ok), 13:18, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если брать сугубо редактор - да, достаточно быстро. Но система сборки!!!! Ой вэй.... жабописак надо почётно кремировать, чтобы они не засирали ИТ своей жабкой, ибо уныло, тормознуто и мёртворождённо.
     
  • 3.26, Аноним (26), 11:24, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    vscode самая быстрая программа в галактике
     
     
  • 4.31, Жироватт (ok), 12:53, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    vscode не просто самая быстрая программа в галактике: она исполняется быстрее скорости света, поэтому на процессорный конвейер приходят команды из будущего и выполняется тот релиз, который будет в первом коммите через десять лет. Но власти скрывают!
     
     
  • 5.37, Аноним (36), 14:26, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты выдал главный секрет аннунаков-прогеров.
     
  • 5.63, Vacu923ek (ok), 13:15, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хочу такую же траву, как у тебя!! :)))
     
     
  • 6.66, Жироватт (ok), 13:35, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У ар велком, бразер! Москва, Нарвская улица, дом 15 А, спросить Васька. Он тебе даст мои координаты - ты сможешь программировать на эрланге левой сишной пяткой

     
  • 2.11, kusb (?), 10:16, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Emacs.js
     
     
  • 3.14, Аноним (14), 10:35, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда нужно и конкурентов: vim.js, nano.js. Для полноты картины прикрутить cat.js, ed.js и echo.js
     
     
  • 4.19, Аноним (36), 11:03, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    bash.js, systemd.js, wayland.js
     
     
  • 5.21, Аноним (21), 11:07, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    держи литературку на посмеяться:

    ls /bin | sed s/$/.js/

    смотри, не лопни со смеху. (А ты налей - и отойди! (с) ты)

     
  • 5.23, Аноним (23), 11:10, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    kerneld.js
     
     
  • 6.25, Аноним (36), 11:17, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    vmlinuz.js
     
     
  • 7.45, Аноним (-), 17:09, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока вы стеблись Беллард давно это заимплементил. Его linux бутается в браузере. Так что баян!
     
     
  • 8.50, Аноним (48), 21:52, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если быть точнее, он запилил эмулятор железа x86 на JS Ядро он грузит бинарное ... текст свёрнут, показать
     
  • 2.28, Аноним (30), 12:04, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Правильные вещи говорите. Нужен 1 (один) компонент редактирования, выполненный в виде shared lib, максимально оптимизированный под создание редакторов с подсветкой синтаксиса и автодополнением. Синтаксис должен задаваться в виде грамматики в рантайме и jit-компилироваться. Автодополнение - через callbackи, навешанные на грамматику. Написанный на Rust/Go. Встроенный в каждую ОС и используемый всеми программами, от браузеров, до IDE и текстовых редакторов.

    Тогда будет и быстро и экономично и функционально и красиво. А не когда на каждый токен по узлу HTML генерится с навешанными на него стилями и event listenerами в ручшем случае. А в худшем да, React и ещё более жуткие жор памяти и тормоза, чем в случае Vanilla JS.

     
     
  • 3.35, Аноним (35), 13:40, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нужен 1 (один) компонент редактирования

    ...сделанный с единственно верной архитектурой, которую я вам сейчас расскажу". Да вообще, всего должно быть по одному! Один ЯП, одна операционка, один браузер и т.д. Чо уж там - и каша только перловая! А то понаплодили...

    Особенно понравилась постановка ТЗ в словах "...максимально оптимизированный под создание редакторов с подсветкой синтаксиса и автодополнением...". Максимально оптимально и конкретно описан набор требований.

    > и используемый всеми программами, от браузеров, до IDE и текстовых редакторов

    Требования у "всех программ" тоже сделать одинаковыми. По ГОСТу.

     
     
  • 4.56, Оскорбитель военных (?), 00:02, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И чтоб синтаксис был на языке 1С
     
  • 3.47, kusb (?), 18:16, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще грустно, что разметка html не работает в обратном направлении и безопасность не поддерживается на уровне браузера. А потом начинаются всякие экранирования, у каждого свои.
     
  • 2.44, Аноним (43), 16:01, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Удобные пользователю формы ввода тоже не надо делать?
     
     
  • 3.62, Vacu923ek (ok), 13:12, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Откровенно, дай дураку молоток и он ВСЁ кругом забьёт до смерти! Так же с JS-библиотеками - неуёмные дизайнеры прямо ТАК стараются помочь бедному юзеру, что буквально заваливают его хелперами! "Не надо так!".
    Удобство формы должно быть прежде всего в интуитивной понятности. Затем, в простоте и фривольности ввода - я НЕНАВИЖУ писать даты в формате, удобном веб-дизайнеру! Я хочу "1 апр 2000" и чтобы всё работало. Вместо этого мне подсовывают у6людские "помощники" в виде календаря, где ввести дату 20-летней давности - целый квест! ЗАЧЕМ?!

    Удобство форм далеко не в технических плюшках, прилепленных сбоку, а в юзабилити.

     
     
  • 4.69, Аноним (43), 16:56, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Откровенно, дай дураку молоток и он ВСЁ кругом забьёт до смерти

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

     
     
  • 5.70, Vacu923ek (ok), 17:19, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Откровенно, дай дураку молоток и он ВСЁ кругом забьёт до смерти
    > Крайне редко встречаю настолько тупых людей. Не проболвал круг общения сменить?

    Да куда его сменишь! Заходишь на опеннет - там ты. :))

     
     
  • 6.73, Аноним (43), 06:47, 16/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А ты не заходи.
     
     
  • 7.76, Vacu923ek (ok), 14:35, 16/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А ты не заходи.

    Да на кого ж я вас оставлю! :) Да и я - существо социальное, мне хоть с котом, а поговорить надо.

     
  • 2.61, Vacu923ek (ok), 13:08, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    +1000000000000000. Если приложение выходит за рамки простого HTML, надо писать нормальное нативное приложение. А у6людские имитации редакторов пусть используют изобретатели жабоскрипта.
     

  • 1.13, Fracta1L (ok), 10:32, 14/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Текстовые редакторы на джаваскрипте - именно то, чего так не хватало Линуксу, лол
     
     
  • 2.16, Аноним (36), 10:59, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Аналогично, как и на Расте.
     
  • 2.18, Аноним (21), 11:00, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > джаваскрипте

    Джава — остров в составе Индонэйжа.
    Индонэйжа — государство в Оушиэния.

     
     
  • 3.29, Клирик Министерства Любви (?), 12:08, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как же так? Океания всегда воевала с Остазией, забыл что ли?
     
     
  • 4.32, Жироватт (ok), 12:56, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Стоп. А разве Океания и Остазия не были всегда верными союзниками? Это же написано во вчера-газете, а значит плюс-плюс-верно. А ты не клиник, ты плюс-мыслепреступник.
     
  • 3.53, topin89 (ok), 23:51, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Раздражение понятно, но это же язык речи, в нём всегда подобной фигни навалом. Типа города Мехико (Mexico), столицы Мексики(Mexico), или там Солт-Лейк-Сити (Solt Lake City), расположенного у Большого Солёного озера (Great Solt Lake).
    Как по мне так даже удобнее, чем в оригинале: Джава -- язык, Ява -- остров (и кофе).
     
     
  • 4.71, Первая буква (?), 17:48, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ява - в первую очередь легендарный мотоцикл! Послушай Сектор Газа.
     

  • 1.22, Аноним (36), 11:07, 14/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Немного подрихтовал: Для использования Lexical достаточно привязать экземпляр редактора к редактируемому элементу, после чего в процессе редактирования можно контролировать состояние редактора удалённо.
     
  • 1.38, Ддд (?), 14:53, 14/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Нифига он не легко интегрируемый
     
     
  • 2.41, Аноним (43), 15:46, 14/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А ты научись программировать, станет легко.
     
     
  • 3.55, Оскорбитель военных (?), 00:01, 15/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    программирование и кодовые извращения разные понятия
     

  • 1.60, Vacu923ek (ok), 13:06, 15/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хуже нет "редактора", чем его у6людская имитация на жабоскрипте!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру