В статьях базы знаний вы публикуете предварительно отформатированные блоки текста или кода. Чтобы пользователям не пришлось выделять примеры и копировать их вручную, прописывайте в исходном коде статьи специальные блоки с тегами pre и code, которые автоматически добавят иконку. При нажатии на нее текст сразу скопируется в буфер обмена.
Перейдите в режим исходного кода редактора и добавьте один из варинатом HMTL-разметки.
а) Текст или код, прописанный с помощью тегов pre и code, не используя стилизованный блок. Пример для тега pre:
<div class="copy_block"> <code>[Ваш предварительно отформатированный код]</code> </div>
б) Текст или код, прописанный с помощью тегов code, используя стилизованный блок:
<div class="omni_block [выберите кастомный блок]">
<code class="[подсветка синтаксиса кода]">[Ваш предварительно отформатированный код]</code>
</div>
В результате мы динамически добавим элемент span class="omni_block-copy fa-duotone fa-copy". При копировании функция стирает все пустые пространства до и после вашего текста с помощью JS метода trim().
PRO Подсказка
Если хотите, чтобы все теги pre и code автоматически добавляли специальный блок .copy_block и элемент span для отображения иконки, то добавьте такой JS-скрипт по пути аккаунт администратора → раздел «Центр поддержки» → подраздел «Персонализация» → блок «виджеты и скрипты»:
<script>
$(document).ready(function () {
$("pre, code").each(function () {
const codeElement = $(this);
if (!codeElement.parent().hasClass('copy_block')) {
const copyBlock = $('<div class="copy_block"></div>');
codeElement.wrap(copyBlock);
const copyIcon = $('<span class="omni_block-copy fa-duotone fa-copy"></span>');
codeElement.parent().append(copyIcon);
copyIcon.click(function () {
let codeText = codeElement.text().trim();
const omniText = document.createElement('textarea');
omniText.style.position = 'fixed';
omniText.style.left = '0';
omniText.style.top = '0';
omniText.style.opacity = '0';
omniText.value = codeText;
document.body.appendChild(omniText);
omniText.focus();
omniText.select();
document.execCommand('copy');
document.body.removeChild(omniText);
});
}
});
});
</script>
Если вы добавляли кастомные стили, то такой скрипт может сбить верстку или отображаться некорректно.