Codeblocks-Themenkomponente kopieren

:warning: Diese Theme-Komponente ist nun veraltet und wurde durch Codeblock-Inhalte in die Zwischenablage kopieren, eine Kernfunktion von Discourse, ersetzt.

:sun_with_face: Vorschau im Theme-Creator
:computer: Git-Repository: https://github.com/discourse/discourse-copy-codeblocks
:bulb: Wie installiere ich ein Theme oder eine Theme-Komponente?

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.

24 „Gefällt mir“

Was ist der Unterschied zwischen diesem und https://meta.discourse.org/t/copy-option-for-code-blocks-in-discourse/60961?u=falco?

7 „Gefällt mir“

Mehrere Punkte:

  • keine vollständige Zwischenablage-Bibliothek wird eingebunden
  • keine Abhängigkeit von jQuery
  • keine undichten Event-Listener
  • keine Abhängigkeit von mehreren Events
  • Verwendung aktueller Coding-Standards
  • kein Problem mit der Anführungszeichen-Quoting-Frage

Ich bin mir nicht sicher, ob dies auch auf Mobilgeräten korrekt funktioniert.

15 „Gefällt mir“

Toll!!

Ich frage mich, ob wir in Betracht ziehen, den lokalisierten Text „Kopieren

3 „Gefällt mir“

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.

7 „Gefällt mir“

Es klingt so, als sollten wir das eine oder das andere entfernen oder veralten lassen und die Bemühungen bündeln? :thinking:

7 „Gefällt mir“

Kleinigkeit: Die Verzögerung beim Kopieren ist auf meinem iPhone zu kurz. Der Text sollte etwa 3 Sekunden lang als „Kopiert

8 „Gefällt mir“

Hier geändert:

https://github.com/discourse/discourse-copy-codeblocks/commit/d1af36a4a5197dab4ca1dd62a05930088882de45

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)

7 „Gefällt mir“

Entschuldigung, aber ein :heart: reicht diesmal nicht.

Toll! Das ist großartig. Das zusammen mit Placeholder Forms ist wirklich cool.

Was ich gerade damit gemacht habe

sfdisk -d /dev/=gooddev= | sfdisk /dev/=newdev=
mdadm --manage /dev/md1 --add /dev/=newdev=
mdadm --detail /dev/md1

Schau dir an, wie es funktioniert!

while true; do mdadm --detail /dev/md1|grep "Rebuild Status" ; sleep 10;done

Betriebsstunden für alle Laufwerke abrufen

for x in a b c d ; do smartctl -a /dev/sd$x|grep Power_On; done
12 „Gefällt mir“

Das gefällt mir sehr gut! :heart_eyes: 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:

Andererseits wird mir klar:

  • Code-Blöcke sind nicht so häufig
  • 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.

Nicht dringend.

3 „Gefällt mir“

Ja, das ist eine absolut berechtigte Anfrage :+1: Ich teile diese Sorge ebenfalls, wir werden eine Lösung finden.

1 „Gefällt mir“

Selbst das wäre meiner Meinung auf Mobilgeräten vorzuziehen. Die Ausrichtung ist nicht ganz richtig, aber Sie verstehen das Prinzip:

(Auch wenn es Text usw. überlappt – ich bin mir nicht sicher, ob das es schwieriger oder einfacher macht als die Anzeige beim Tippen? :thinking:)

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.

1 „Gefällt mir“

Auf dem Handy ist das ein deutlich besserer Kompromiss. Auf Laptop, Desktop oder Tablet ist der zusätzliche Platzverbrauch absolut in Ordnung.

1 „Gefällt mir“

Hallo,

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

2 „Gefällt mir“

Oh wow, das klingt tatsächlich nach einem ernsten Fehler!

1 „Gefällt mir“

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.

3 „Gefällt mir“

Hast du einen Link zu deiner Seite? Es scheint sehr seltsam, dass ein Theme dies verursachen könnte. Wie viele Codeblöcke hast du auf einer Seite?

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:

Nur eine kleine Unannehmlichkeit: Bei langen ERSTEN Zeilen wird es hinter dem Button versteckt. Ich denke, das ist akzeptabel, da man scrollen kann:

Und auf dem Desktop funktioniert es wie zuvor, ohne den Fehler beim Zitieren:

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/
7 „Gefällt mir“

Diese Funktion ist jetzt im Kern von Discourse enthalten :tada:

Daher ist diese Theme-Komponente nun VERALTET. Sie funktioniert weiterhin für ältere Discourse-Instanzen, erhält jedoch keine Updates mehr.

Ich habe den ursprünglichen Beitrag aktualisiert, um diese Informationen widerzuspiegeln.

5 „Gefällt mir“