Копирование контента с помощью значка копирования

Привет! Вместо того чтобы выводить данные, которые мне предоставляет плагин через форму, я хочу дать пользователям возможность копировать этот контент по желанию, нажав на иконку «Копировать». Я заметил, что в Discourse появилась такая функция для блоков кода, но она работает только внутри этих блоков. Как я могу использовать её в других местах, как мне нужно? Copy codeblock contents to clipboard Спасибо.

Возможно, именно этот #theme-component вам нужен: 📄 Copy Post Component
С его помощью можно скопировать целый пост.

Я хочу использовать это для данных из плагина Custom Wizard, то есть мне нужно включить копирование конкретной фразы. Я думаю, что компонент темы этого не предоставляет. Но можно ли этого добиться через кастомизацию?

Вы правы, компонент копирует весь контент поста. Это, безусловно, можно кастомизировать. Можете ли вы поделиться визуальным примером того, чего вы ожидаете? Я никогда не использовал этот плагин, поэтому не уверен, на каком этапе или в каком контексте вы хотите эту настройку.

При создании страницы с помощью плагина Custom Wizards я хочу копировать вывод переменных, которые предоставляет этот плагин. Можно представить это как случайно выбранную область в содержимом сообщения. Я могу назначить собственный CSS-селектор для контента, который нужно скопировать.

https://github.com/keegangeorge/discourse-copy-post/blob/main/javascripts/discourse/widgets/copy-widget.js

  click(attrs) {
    const copyButton = attrs.currentTarget.activeElement;
    const rawCooked = this.attrs.attrs.cooked;
    const cookedText = this.attrs.attrs.cooked.replace(/<p>(.*)<\/p>/g, "$1\n");
    let postContents = cookedText.replace(/(<([^>]+)>)/gi, "");

    if (settings.copy_raw_html) {
      postContents = rawCooked;
    }

const rawCooked = this.attrs.attrs.cooked;

Селектор находится здесь. Я хочу нацелиться на последний тег p или предпоследний тег p внутри div с обработанным контентом, а не на весь обработанный контент. Если возможно, я хочу нацеливаться на них по отдельности и разместить иконки копирования прямо рядом с абзацами.