Иск searching за текстовым редактором в браузере с встроенными токенами.

Вопрос или проблема

Я пытаюсь создать систему, которая позволит пользователям генерировать текстовый шаблон, в который могут быть встроены конкретные, заранее определенные токены, доступные через браузер. (Представьте себе систему слияния почты, где документ состоит полностью из 2 вещей: статического текста и токенов, представляющих значение из базы данных.)

Я хотел бы иметь возможность вставить его на HTML-страницу, как обычный элемент текстового поля, за исключением того, что токены представляют собой нечто отличное от текста; они являются своим собственным типом элемента, встроенным в печатный текст, и не могут быть отредактированы или частично выделены, как текст, а только удалены, скопированы, вырезаны или вставлены как атомарный элемент. Должен быть какой-то способ для редактора получить список допустимых значений токенов с сервера, когда страница загружается, и интуитивный способ для пользователя ввести новый токен в позиции курсора.

Я знаю, что раньше видел что-то подобное в интернете, но поиск в Google не дает никаких полезных результатов. Я нахожу библиотеки для редактирования кода с подсветкой синтаксиса или библиотеки для WYSIWYG редактирования HTML, но ни одна из них не является тем, что я на самом деле ищу.

Кто-нибудь знает, где я мог бы найти такой компонент?

У меня было такое же требование, и пока я нашел пару вариантов:

Ни один из них не идеален. Tokchi, похоже, несколько устарел (например, нет поддержки npm / bower), а Textcomplete позволяет вам выбирать из выпадающего списка, но на самом деле не отображает вставленный текст в стиле токенов (насколько я могу судить).

Это, похоже, просто нечто подобное тому, как работают BB-код и смайлы на большинстве форумов. Магия происходит на серверной стороне, когда ввод, сгенерированный пользователем, выводится обратно и токены заменяются значениями из базы данных. Почти всегда это делается с помощью серверного программирования, а не клиентского JavaScript и т. д.

Любые из найденных вами WYSIWYG-редакторов, которые позволяют настраивать меню, подойдут — просто настроьте пользовательское меню “токены”, в котором будет ваш заранее определенный список возможных вставок.

Ответ или решение

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

Основные требования к текстовому редактору

  1. Токены как отдельные элементы: Необходимо, чтобы токены были отдельными элементами в документе и не могли редактироваться так же, как обычный текст. Пользователи должны иметь возможность только удалять, копировать, вырезать или вставлять токены как атомарные элементы.

  2. Интеграция с HTML: Editor должен быть легко интегрирован на веб-странице, как стандартный элемент текстового поля.

  3. Динамическая подгрузка токенов: При загрузке страницы редактор должен получать список допустимых токенов с сервера для их последующего использования.

  4. Интуитивный ввод токенов: Пользователи должны иметь возможность легко добавлять токены в тексте, используя позицию курсора.

Возможные решения

В вашем запросе уже упоминались два инструмента — Tokchi и Textcomplete. Оценим их возможности и ограничения.

  • Tokchi: Этот инструмент представляет собой легкий редактор текста, который поддерживает инлайновые элементы, однако, на данный момент он может быть устаревшим, так как отсутствует поддержка npm и bower. Но стоит отметить, что Tokchi может быть хорошей основой для дальнейшей разработки, если у вас есть веб-опыт и время для настройки.

  • Textcomplete: Он предлагает удобные возможности автодополнения, но как вы отметили, отсутствует визуальное представление токенов в тексте. Это может быть решено путем кастомизации с использованием JavaScript для визуального представления токенов.

Рекомендации

  1. Использование WYSIWYG редакторов: Многие WYSIWYG редакторы, такие как CKEditor или TinyMCE, могут быть настроены под ваши нужды. Вы можете создать отдельное меню с токенами и настроить его так, чтобы при выборе токена он вставлялся в текст в виде отдельного инлайнового элемента.

  2. Собственная реализация на основе ContentEditable: Если вы хотите больше контроля над поведением редактора, рассмотрите возможность создания собственного решения, основанного на contenteditable элементов в HTML. Вы можете программно управлять вводом токенов, используя JavaScript для отслеживания позиции курсора и добавления пользовательских токенов в текст.

  3. Пользовательский интерфейс: Создайте отдельный контрол для выбора токенов, который будет отображаться при взаимодействии пользователя с редактором — например, выпадающее меню, где можно выбрать токен для вставки.

  4. Финальная обработка на сервере: Как вы указали, окончательная обработка данных с подменой токенов на значения из базы данных должна происходить на сервере. Это может быть реализовано через регулярные выражения в вашем серверном коде.

Заключение

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

Если у вас есть дополнительные вопросы по реализации вашего проекта или по использованию конкретных библиотек, не стесняйтесь спрашивать.

Оцените материал
Добавить комментарий

Капча загружается...