enh: codespan click to copy content

This commit is contained in:
Timothy J. Baek 2024-08-26 14:17:33 +02:00
parent faeabfb3d4
commit 7fc049a513
42 changed files with 60 additions and 6 deletions

View File

@ -1,12 +1,17 @@
<script lang="ts">
import DOMPurify from 'dompurify';
import type { Token } from 'marked';
import { revertSanitizedResponseContent, unescapeHtml } from '$lib/utils';
import { onMount } from 'svelte';
import Image from '$lib/components/common/Image.svelte';
import { toast } from 'svelte-sonner';
import type { Token } from 'marked';
import { getContext } from 'svelte';
const i18n = getContext('i18n');
import KatexRenderer from './KatexRenderer.svelte';
import { WEBUI_BASE_URL } from '$lib/constants';
import { copyToClipboard, revertSanitizedResponseContent, unescapeHtml } from '$lib/utils';
import Image from '$lib/components/common/Image.svelte';
import KatexRenderer from './KatexRenderer.svelte';
export let id: string;
export let tokens: Token[];
@ -37,7 +42,15 @@
<svelte:self id={`${id}-em`} tokens={token.tokens} />
</em>
{:else if token.type === 'codespan'}
<code class="codespan">{unescapeHtml(token.text)}</code>
<!-- svelte-ignore a11y-click-events-have-key-events -->
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
<code
class="codespan cursor-pointer"
on:click={() => {
copyToClipboard(unescapeHtml(token.text));
toast.success($i18n.t('Copied to clipboard'));
}}>{unescapeHtml(token.text)}</code
>
{:else if token.type === 'br'}
<br />
{:else if token.type === 'del'}

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "تم نسخ عنوان URL للدردشة المشتركة إلى الحافظة",
"Copied to clipboard": "",
"Copy": "نسخ",
"Copy Code": "",
"Copy last code block": "انسخ كتلة التعليمات البرمجية الأخيرة",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Копирана е връзката за чат!",
"Copied to clipboard": "",
"Copy": "Копирай",
"Copy Code": "",
"Copy last code block": "Копиране на последен код блок",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!",
"Copied to clipboard": "",
"Copy": "অনুলিপি",
"Copy Code": "",
"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",

View File

@ -140,6 +140,7 @@
"Controls": "Controls",
"Copied": "Copiat",
"Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!",
"Copied to clipboard": "",
"Copy": "Copiar",
"Copy Code": "Copiar el codi",
"Copy last code block": "Copiar l'últim bloc de codi",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "",
"Copied to clipboard": "",
"Copy": "",
"Copy Code": "",
"Copy last code block": "Kopyaha ang katapusang bloke sa code",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Freigabelink in die Zwischenablage kopiert!",
"Copied to clipboard": "",
"Copy": "Kopieren",
"Copy Code": "",
"Copy last code block": "Letzten Codeblock kopieren",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "",
"Copied to clipboard": "",
"Copy": "",
"Copy Code": "",
"Copy last code block": "Copy last code block",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "",
"Copied to clipboard": "",
"Copy": "",
"Copy Code": "",
"Copy last code block": "",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "",
"Copied to clipboard": "",
"Copy": "",
"Copy Code": "",
"Copy last code block": "",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "¡URL de chat compartido copiado al portapapeles!",
"Copied to clipboard": "",
"Copy": "Copiar",
"Copy Code": "",
"Copy last code block": "Copia el último bloque de código",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!",
"Copied to clipboard": "",
"Copy": "کپی",
"Copy Code": "",
"Copy last code block": "کپی آخرین بلوک کد",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Jaettu keskustelulinkki kopioitu leikepöydälle!",
"Copied to clipboard": "",
"Copy": "Kopioi",
"Copy Code": "",
"Copy last code block": "Kopioi viimeisin koodilohko",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL du chat copiée dans le presse-papiers\u00a0!",
"Copied to clipboard": "",
"Copy": "Copie",
"Copy Code": "",
"Copy last code block": "Copier le dernier bloc de code",

View File

@ -140,6 +140,7 @@
"Controls": "Contrôles",
"Copied": "Copié",
"Copied shared chat URL to clipboard!": "URL du chat copiée dans le presse-papiers\u00a0!",
"Copied to clipboard": "",
"Copy": "Copie",
"Copy Code": "Copier le code",
"Copy last code block": "Copier le dernier bloc de code",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "העתקת כתובת URL של צ'אט משותף ללוח!",
"Copied to clipboard": "",
"Copy": "העתק",
"Copy Code": "",
"Copy last code block": "העתק את בלוק הקוד האחרון",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "साझा चैट URL को क्लिपबोर्ड पर कॉपी किया गया!",
"Copied to clipboard": "",
"Copy": "कॉपी",
"Copy Code": "",
"Copy last code block": "अंतिम कोड ब्लॉक कॉपी करें",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL dijeljenog razgovora kopiran u međuspremnik!",
"Copied to clipboard": "",
"Copy": "Kopiraj",
"Copy Code": "",
"Copy last code block": "Kopiraj zadnji blok koda",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Menyalin URL obrolan bersama ke papan klip!",
"Copied to clipboard": "",
"Copy": "Menyalin",
"Copy Code": "",
"Copy last code block": "Salin blok kode terakhir",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL della chat condivisa copiato negli appunti!",
"Copied to clipboard": "",
"Copy": "Copia",
"Copy Code": "",
"Copy last code block": "Copia ultimo blocco di codice",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "共有チャットURLをクリップボードにコピーしました",
"Copied to clipboard": "",
"Copy": "コピー",
"Copy Code": "",
"Copy last code block": "最後のコードブロックをコピー",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "ყავს ჩათის URL-ი კლიპბორდში!",
"Copied to clipboard": "",
"Copy": "კოპირება",
"Copy Code": "",
"Copy last code block": "ბოლო ბლოკის კოპირება",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "공유 채팅 URL이 클립보드에 복사되었습니다!",
"Copied to clipboard": "",
"Copy": "복사",
"Copy Code": "",
"Copy last code block": "마지막 코드 블록 복사",

View File

@ -140,6 +140,7 @@
"Controls": "Valdymas",
"Copied": "Nukopijuota",
"Copied shared chat URL to clipboard!": "Nukopijavote pokalbio nuorodą",
"Copied to clipboard": "",
"Copy": "Kopijuoti",
"Copy Code": "Kopijuoti kodą",
"Copy last code block": "Kopijuoti paskutinį kodo bloką",

View File

@ -140,6 +140,7 @@
"Controls": "Kawalan",
"Copied": "Disalin",
"Copied shared chat URL to clipboard!": "Menyalin URL sembang kongsi ke papan klip",
"Copied to clipboard": "",
"Copy": "Salin",
"Copy Code": "Salin Kod",
"Copy last code block": "Salin Blok Kod Terakhir",

View File

@ -140,6 +140,7 @@
"Controls": "Kontroller",
"Copied": "",
"Copied shared chat URL to clipboard!": "Kopiert delt chat-URL til utklippstavlen!",
"Copied to clipboard": "",
"Copy": "Kopier",
"Copy Code": "",
"Copy last code block": "Kopier siste kodeblokk",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL van gedeelde gesprekspagina gekopieerd naar klembord!",
"Copied to clipboard": "",
"Copy": "Kopieer",
"Copy Code": "",
"Copy last code block": "Kopieer laatste code blok",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "ਸਾਂਝੇ ਕੀਤੇ ਗੱਲਬਾਤ URL ਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰ ਦਿੱਤਾ!",
"Copied to clipboard": "",
"Copy": "ਕਾਪੀ ਕਰੋ",
"Copy Code": "",
"Copy last code block": "ਆਖਰੀ ਕੋਡ ਬਲਾਕ ਨੂੰ ਕਾਪੀ ਕਰੋ",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Skopiowano URL czatu do schowka!",
"Copied to clipboard": "",
"Copy": "Kopiuj",
"Copy Code": "",
"Copy last code block": "Skopiuj ostatni blok kodu",

View File

@ -140,6 +140,7 @@
"Controls": "Controles",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL de chat compartilhado copiado para a área de transferência!",
"Copied to clipboard": "",
"Copy": "Copiar",
"Copy Code": "",
"Copy last code block": "Copiar último bloco de código",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL de Conversa partilhado copiada com sucesso!",
"Copied to clipboard": "",
"Copy": "Copiar",
"Copy Code": "",
"Copy last code block": "Copiar último bloco de código",

View File

@ -140,6 +140,7 @@
"Controls": "Controale",
"Copied": "",
"Copied shared chat URL to clipboard!": "URL-ul conversației partajate a fost copiat în clipboard!",
"Copied to clipboard": "",
"Copy": "Copiază",
"Copy Code": "",
"Copy last code block": "Copiază ultimul bloc de cod",

View File

@ -140,6 +140,7 @@
"Controls": "Управление",
"Copied": "Скопировано",
"Copied shared chat URL to clipboard!": "Копирование в буфер обмена выполнено успешно!",
"Copied to clipboard": "",
"Copy": "Копировать",
"Copy Code": "Скопировать код",
"Copy last code block": "Копировать последний блок кода",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Адреса дељеног ћаскања ископирана у оставу!",
"Copied to clipboard": "",
"Copy": "Копирај",
"Copy Code": "",
"Copy last code block": "Копирај последњи блок кода",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Kopierad delad chatt-URL till urklipp!",
"Copied to clipboard": "",
"Copy": "Kopiera",
"Copy Code": "",
"Copy last code block": "Kopiera sista kodblock",

View File

@ -140,6 +140,7 @@
"Controls": "การควบคุม",
"Copied": "",
"Copied shared chat URL to clipboard!": "คัดลอก URL แชทที่แชร์ไปยังคลิปบอร์ดแล้ว!",
"Copied to clipboard": "",
"Copy": "คัดลอก",
"Copy Code": "",
"Copy last code block": "คัดลอกบล็อกโค้ดสุดท้าย",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "",
"Copied to clipboard": "",
"Copy": "",
"Copy Code": "",
"Copy last code block": "",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "",
"Copied shared chat URL to clipboard!": "Paylaşılan sohbet URL'si panoya kopyalandı!",
"Copied to clipboard": "",
"Copy": "Kopyala",
"Copy Code": "",
"Copy last code block": "Son kod bloğunu kopyala",

View File

@ -140,6 +140,7 @@
"Controls": "Керування",
"Copied": "Скопійовано",
"Copied shared chat URL to clipboard!": "Скопійовано URL-адресу спільного чату в буфер обміну!",
"Copied to clipboard": "",
"Copy": "Копіювати",
"Copy Code": "Копіювати код",
"Copy last code block": "Копіювати останній блок коду",

View File

@ -140,6 +140,7 @@
"Controls": "",
"Copied": "Đã sao chép",
"Copied shared chat URL to clipboard!": "Đã sao chép link chia sẻ trò chuyện vào clipboard!",
"Copied to clipboard": "",
"Copy": "Sao chép",
"Copy Code": "Sao chép Code",
"Copy last code block": "Sao chép khối mã cuối cùng",

View File

@ -140,6 +140,7 @@
"Controls": "对话高级设置",
"Copied": "已复制",
"Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!",
"Copied to clipboard": "",
"Copy": "复制",
"Copy Code": "复制代码",
"Copy last code block": "复制最后一个代码块中的代码",

View File

@ -140,6 +140,7 @@
"Controls": "控制項",
"Copied": "",
"Copied shared chat URL to clipboard!": "已複製共用對話 URL 到剪貼簿!",
"Copied to clipboard": "",
"Copy": "複製",
"Copy Code": "",
"Copy last code block": "複製最後一個程式碼區塊",