Я сделал вам пример, показывающий, как вы можете вводить абсолютно все в любой компонент WYSIWYG (кроме действительно плохих:)
Используя ваш первый выбор редактора WYSIWYG, и, возможно, самый приятный из них всех .. .
https://quasar.dev/vue-components/editor
Здесь вы можете увидеть, как легко, например, вставить изображение случайного кота. Вы можете открыть диалоговое окно и запросить имя изображения, вы можете позволить пользователю загрузить изображение, дождаться обещания, которое возвращает ссылку, затем вставить это изображение по возвращенной ссылке или сделать еще более дикие вещи.
https://codepen.io/njsteele/pen/wvBNYJY
Здесь выполняется рендеринг компонента:
<!-- Here is where we render the component and capture it's output... -->
<div ref="renderComponent" v-show="false">
<!-- Due to limitation of codepen, must not self-close -->
<component :is="renderThisComponent" v-bind="renderTheseProps">
</component>
</div>
При нажатии «Вставить случайного кота» будет вставлен GIF случайного анимированного кота из Cats As. Служба.
Нажав Вставить компоненты квазара, вы сможете выбрать один из компонентов q-icon и анимированный неопределенный круг выполнения. Вы также можете добавить свои собственные компоненты. Это работает абсолютно с любым Vue компонентом, но он не будет обновлять его, как только он будет визуализирован в вашем редакторе WYSIWYG, и после этого он станет равным HTML. Я также использовал рефрендер, который работает, но он основан на c, чтобы показать вам, как легко выполнить sh. Вместо этого я бы обновил его до прокси-компонента, чтобы он никогда не отображался в DOM с первого раза или не ожидал $ nextTick.
Вы также можете видеть, что вы можете вводить токены (хотя это было сделано в Quasar). игровая площадка). Он показывает, как вы можете внедрить переменные, которые могли иметь отношение к текущему пользователю / et c.
Если вы хотите, вы также можете разрешить пользователям создавать свои собственные компоненты или разрешить создавать созданные пользователем шаблоны. впрыскивая, вы также можете вставить список Emoji или даже @mentions, которые могут вставлять живые просмотры, если этот пользователь в данный момент онлайн, и т. д. c.
, так как эта функция действительно мощная и ее легко Реализовав это теоретически, я написал действительно крошечный генератор шаблонов без ошибок, который можно расширить до бесконечности (372 байта). Это также безопасно для пользователей, поскольку в нем используются только списки функций, которые вы предварительно разрешаете для своих пользователей.
Получите здесь источник и используйте его в своих проектах, если хотите ... https://github.com/onexdata/nano-var-template