Diese Theme-Komponente fügt Codeblöcken in Discourse-Beiträgen eine Kopier-Schaltfläche hinzu – ideal für Communities, die Codebeispiele oder Wissensdatenbankartikel teilen, bei denen das Kopieren von Text erforderlich ist.
Auf dem Desktop erscheint die Kopier-Schaltfläche beim Hovern über den Block.
Auf Mobilgeräten wird die Kopier-Schaltfläche immer angezeigt, schiebt jedoch den Code im Block nach unten, um zu verhindern, dass die erste Codezeile bei zu langer Länge verdeckt wird.
Bitte beachten Sie, dass dies nur für Codeblöcke funktioniert, die mit ``` ``` erstellt wurden, nicht jedoch für Inline-Codeblöcke.
Dies ist ein Codeblock.
Kopieren Sie diesen Text.
Dies ist ein Inline-Codeblock. Kopieren funktioniert hier nicht.
Großer Dank an @j.jaffeux, der einen Großteil der anfänglichen Entwicklung hierfür übernommen hat.
Ich bin offen dafür, eine Einstellung für die Komponente hinzuzufügen. Der Grund, warum ich mich für lokalisierten Text entschieden habe, ist, dass damit klar wird, was passiert. Außerdem kann Text eine geringere Höhe haben und trotzdem gut lesbar sein. Die Ästhetik passte für den Anwendungsfall einfach besser.
Außerdem wurden einige Fehler mit älteren Discourse-Versionen behoben, die @ember/runloop und Promise aus der rsvp-Bibliothek nicht zur Verfügung haben. (Vielen Dank an @jomaxro für die Berichte dazu)
Das gefällt mir sehr gut! Aber kann der Kopier-Button auf Mobilgeräten nur beim Tippen sichtbar sein? Ich bin ein bisschen enttäuscht über den ständigen Verlust von Bildschirmplatz auf Mobilgeräten durch eine zusätzliche Zeile für jeden Code-Block:
da es eine optionale Funktion ist, würde man sie nur auf Seiten aktivieren, auf denen das Kopieren von Code-Blöcken tatsächlich eine häufige Tätigkeit ist
… das heißt … die Wahrscheinlichkeit, dass ein beliebiger Code-Block auf einem Mobilgerät kopiert wird, ist verschwindend gering. Daher finde ich das Verhältnis von Benutzeroberfläche zu Nutzung hier nicht ganz stimmig und würde lieber eine Funktion bevorzugen, die auf Mobilgeräten nur beim Tippen erscheint.
Das hatten wir ursprünglich, aber es überlappte den Text, ohne dass man ihn sehen konnte. Die Idee, dass es beim Tippen sichtbar wird, gefällt mir. Ich werde das prüfen.
ich würde dieses Tool gerne nutzen, aber sobald ich es für mein Grey-Amber-Theme aktiviert habe, wurde meine Website träge und zeitweise nicht mehr ansprechbar, bis ich es wieder deaktiviert habe.
Hat jemand ähnliches erlebt, oder kann die Aktivierung die VPS so stark belasten?
Die Seite besteht zu etwa 99,9 % aus einzelnen Codezeilen, und ich hatte gehofft, diese in Codeblöcke umzuwandeln. Es sollte also nicht so sein, dass bereits vorhandener Code zum Konvertieren abgerufen wird. Oder doch?
Muss ich dem Tool etwas Zeit geben, um sich zu normalisieren? Es hat die Website immer wieder vorübergehend lahmgelegt, und wenn manchmal doch eine Seite geladen wurde, erschien eine Fehlermeldung mit der Aufforderung „Nochmal versuchen
Kleiner Fehler: Der Text „Kopieren“ kann in einem Zitat erscheinen. (Viel weniger gravierend als der vorherige Beitrag.)
Der button.copy-cmd muss aus dem Zitat ausgeschlossen werden. Das Anwenden von user-select: none im CSS behebt zwar Strg-C, aber nicht die Zitierfunktion.
Ich habe hier also mehrere Änderungen vorgenommen. Da unsere Probleme waren:
Platzmangel auf Mobilgeräten
Fehler beim Kopieren von Text in Zitaten
und wir die Anforderung hatten, ein Icon anstelle von Text zu verwenden
lag die offensichtliche Lösung, die all dies behebt… in der Verwendung eines Icons.
Auf Mobilgeräten ist es jetzt akzeptabel, es rechts zu platzieren, da es weniger Platz einnimmt und wir einfach etwas Abstand für den Text lassen können:
Bezüglich des möglichen Leistungsfehlers habe ich eine Seite mit Dutzenden von Codeblöcken getestet und hatte 0 Probleme. Daher benötige ich eine Reproduktion, bevor ich etwas unternehmen kann, @lcestou bitte.
Teste den neuen Codeblock hier:
rsync -a file.txt file_backup.txt
rsync -a /var/www/public_html/ /var/www/public_html_backup/