Paste as Markdown

Фича для Lexical-редактора в Payload 3.x: вставка сырого Markdown в богатый текст через панель инструментов, слеш-команду или диалог.

Сообщество 0 11/нед MIT v0.1.2

Установка

pnpm add payload-paste-as-markdown

Описание

Фича Lexical-редактора для Payload 3.x, позволяющая вставлять сырой Markdown в поле богатого текста. В фиксированную и плавающую панели инструментов добавляется кнопка, а в слеш-меню попадает пункт, реагирующий на команды /markdown, /md и /paste. После выбора открывается диалог с текстовой областью в моноширинном шрифте, куда автор вставляет Markdown. После подтверждения сконвертированные узлы вставляются в сохранённую позицию курсора, при необходимости разрывая текущий абзац, а курсор перемещается в конец вставленного фрагмента. Это не плагин buildConfig. MarkdownPasteFeature() добавляется в массив features объекта lexicalEditor внутри любого поля richText, после чего нужно перегенерировать import map командой npx payload generate:importmap. Серверная часть фичи регистрирует строку клиентской фичи, которую Payload резолвит через import map. Клиентская фича связывает Lexical-плагин, группы кнопок на панелях инструментов и группу в слеш-меню. Конвертация использует встроенные markdown-трансформеры Lexical, доступные через editorConfig.features.markdownTransformers. Подпрограмма вставки сохраняет текущее выделение и корневые дочерние узлы, конвертирует Markdown на месте для получения результирующих узлов, восстанавливает исходное содержимое, затем вставляет сконвертированные узлы по сохранённой позиции курсора и перемещает курсор в конец. Пакет содержит только клиентский код, бэкенда нет. Peer-зависимости: payload ^3.0.0, @payloadcms/richtext-lexical ^3.0.0, @payloadcms/ui ^3.0.0, react ^19.0.0. Payload 2.x не поддерживается. Диалог реализован как ручной React-портал, а не нативный компонент Payload, поэтому не получает стандартных возможностей дроверов Payload.

О пакете

Имя пакета
payload-paste-as-markdown
Последняя версия
0.1.2
Размер
20 кБ
Лицензия
MIT
Загрузок в неделю
11
Последняя публикация
25 авг. 2026 г.