Die Empfindlichkeit und ob HTML erkannt wird, sind über Theme-Einstellungen konfigurierbar.
Einstellungen
Name
Beschreibung
emoji icon
Das Emoji-Symbol, das neben dem Titel im Warnmodus für nicht formatierten Code angezeigt wird.
disable at trust level
Warnung für Benutzer mit einem Vertrauenslevel von N oder höher deaktivieren. -1 = für alle Benutzer aktiviert.
sensitivity
Empfindlichkeit des Erkennungsalgorithmus. 0 = Plugin deaktiviert; 1 = Warnung für alles, das auch nur leicht wie Code aussieht.
min post length to check
Minimale Beitragslänge zum Prüfen (Anzahl der Zeichen)
max post length to check
Maximale Beitragslänge zum Prüfen (Anzahl der Zeichen). -1 = kein Maximum.
include html
Auch auf HTML-Tags prüfen, nicht nur auf andere Code-Arten. Empfohlen zu deaktivieren, wenn Benutzer häufig benutzerdefiniertes HTML in ihren Beiträgen rendern müssen.
Übersetzung
Standardwert
warning_modal.title
Veröffentlichen Sie Code?
warning_modal.content
Es scheint, als ob Ihr Beitrag Code oder Protokolle enthalten könnte. Um Ihren Beitrag lesbar zu halten, denken Sie bitte daran, Ihren Code mit dem Vorbereiteter Text-Symbol in der Werkzeugleiste oder der Backtaste ` auf Ihrer Tastatur zu formatieren, wie hier gezeigt: [examples]
warning_modal.do_not_show_again
Diese Nachricht nicht erneut anzeigen
warning_modal.fix_post
Beitrag bearbeiten
warning_modal.ignore_and_post_anyway
Trotzdem veröffentlichen
Debugging
Wenn Sie eine Warnung für einen Beitrag erhalten, der keinen Text enthält, können Sie Debug-Informationen ausgeben, indem Sie die JS-Konsole Ihres Browsers öffnen und debugUnformattedCodeDetector()Eingabe eingeben. Dies gibt Informationen darüber aus, welche Zeilen als „Code" betrachtet wurden, und welche Empfindlichkeitseinstellungen aktiv sind.
„Diese Nachricht nicht erneut anzeigen" funktioniert nur pro Gerät, nicht pro Benutzer. Dies ist ein bekanntes Problem und wird behoben, sobald Discourse die Möglichkeit erhält, Benutzerinformationen aus Themes zu übernehmen.
Von uns gehostet? Theme-Komponenten können in unseren Standard-, Business- und Enterprise-Plänen verwendet werden.
We at the Home Assistant forums think that this is the best thing invented since sliced bread. Or maybe Home Assistant. Thank you so so much @lionel-rowe!!!
Two minor request:
I don’t want to allow users to skip formatting or disable the dialog in the future. I want them to feel pain until they change their ways. I’m sadistic like that. Can you make the “Don’t show this message again” and “Post anyway” buttons optional? For now I’ve hid them with some CSS but would be better to just not include the HTML at all.
Unsure if you are doing language detection or not, but if you are, can you add the estimated language name after the first code fence so that users will properly syntax highlight too?
I wouldn’t recommend hiding them, especially if you leave the setting to include HTML detection on. Power users may still want to have their (sanitized) HTML parsed as such, not formatted as code. Two examples where this can be useful are kbd and abbr tags.
If you exclude HTML tags from detection (which may be viable depending on the scope of your forum), hiding the “don’t show this again” would probably be OK. I still wouldn’t recommend hiding the “post anyway”, though, because there are bound to still be some edge cases of false positives (I hit one the other day where I’d omitted a space before an opening parenthesis — poor typesetting, but not unformatted code). Then you’ll have a situation where users can’t post their question at all, and, unless they report the issue to you directly, you won’t even know about it.
Language detection is beyond the scope of this component, I’m afraid. Where possible, it looks for syntactical features shared by many languages, such as lines ending in semicolons, certain configurations of curly braces, and so on.
I am thinking about ways to enhance the UX, though. One big improvement would be to make it much more interactive. For example, instead of a simple modal, the user would be presented with a wizard that first asks them which language their post concerns (select from a dropdown), then a screen which asks them to select which ranges of their post are code (defaulting to lines that contain strings flagged by the plugin), then generating the appropriate markdown. This would still include a “skip and post anyway” option, though, for the reasons I mentioned.
I don’t have a timeline for this change, but it’d be good to know if it’s something people would be interested in.
Kurze Anmerkung: Wir werden diese Komponente bald offiziell machen und eng mit @lionel-rowe und @david zusammenarbeiten, um das Ziel zu erreichen. Haben Sie Ideen oder Feedback? Jetzt ist der richtige Zeitpunkt, sie zu teilen!
Ich bin mir nicht sicher, ob das sinnvoll ist, aber es wäre großartig, wenn dies auch auf die häufigsten Markdown-Fehler hinweisen könnte, die die Formatierung stören.
Es wäre auch toll, wenn es einen Hinweis darauf gäbe, wo der vermutete nicht formatierte Code steht.
Ich habe gerade eine weitere Antwort geschrieben und die Warnung erhalten, obwohl ich keinen Code eingefügt hatte. Nach einer Weile wurde mir klar, dass es daran lag, dass ich das Wort topic_id verwendet habe… Aber es ist nicht offensichtlich, dass der Detektor dieses Wort für Code hält (und die meisten Leute würden das auch nicht denken), meiner Meinung nach.
Ich finde, dass ein Wort mit einem Unterstrich darin nicht unbedingt Code sein muss.
Vielen Dank für all euer Feedback bisher, Leute! Wir werden einige Einstellungen hinzufügen und anpassen, um die Überempfindlichkeit der Erkennung zu verringern.
@tpetrov noch eine Sache — ist aus der Formulierung des Pop-ups klar ersichtlich, dass ihr es ignorieren und trotzdem veröffentlichen könnt, wenn ihr nicht glaubt, dass euer Beitrag Code enthält? Oder lässt es den Eindruck entstehen, ihr müsstet das wahrgenommene Problem finden und „beheben"?
Meine Sorge ist, dass viele Leute es nicht vollständig lesen werden…
Wenn Leute heutzutage ein Popup mit mehr als einem Satz sehen, ignorieren sie den Text oft und suchen direkt nach dem Button Ok (Ich akzeptiere Cookies, Bedingungen usw.).
Trotzdem könnte „It looks like your post may contain unformatted code
Oooh, ich mag diese Idee… aber ich habe gerade ein falsches Positiv erhalten:
Vielleicht waren es die defekten Links, die es ausgelöst haben? Sie stammen einfach aus der Template-Engine und sehen so aus: [keep things civilized](%{guidelines_url}). Oder vielleicht das HTML-img-Tag?
Wir führen neue Texte ein und bauen eine Sammlung positiver und negativer Test-Beiträge für die Komponente auf. Habt etwas Geduld, denn das entwickelt sich gut!
Kleiner Kritikpunkt: Der Standardwert für warning_modal.content verweist auf die Symbolleiste-Schaltfläche „code“, doch in der Editor-Oberfläche wird diese beim Überfahren mit der Maus als „Vorformatierter Text“-Schaltfläche bezeichnet.
Um neuen Nutzern die Suche nach dieser Schaltfläche zu erleichtern (da sie keine „code“-Schaltfläche finden werden), sollte der Inhalt von warning_modal.content von „code button“ in „Preformatted text button“ geändert werden.
Wie kann ich einen Link zu einem Thema mit weiteren Beispielen und Anweisungen hinzufügen?
Ich habe versucht, ihn einfach am Ende von warning_modal.content hinzuzufügen, aber das hat folgendes Ergebnis geliefert (meine Ergänzungen sind gelb markiert):
Noch schlimmer: Wenn ich einfach nur in das Eingabefeld warning_modal.content klicke und dann den Cursor mit den Pfeiltasten bewege, wird das Eingabefeld hervorgehoben. Nach dem Klicken auf das grüne Häkchen, um den „bearbeiteten
Gibt es eine Möglichkeit, dem Nutzer klarer zu machen, welchen Schlüssel er für die Code-Abgrenzungen wählen soll, wenn er dies manuell tut (also nicht über den Button)?
Der Nutzer hat offensichtlich versucht, den Anweisungen zu folgen, hat aber den falschen Schlüssel für die Code-Abgrenzungen gewählt ( ' statt `). In der Vergangenheit habe ich auch ... statt ``` gesehen. Beide Fälle deuten darauf hin, dass die Nutzer deutlichere Anweisungen benötigen, welchen Schlüssel sie wählen sollen.
Alternativ: Verwirren Sie die Nutzer nicht mit diesen Schlüsseln und sagen Sie einfach: Verwenden Sie den Button „Vorformatierter Text“ und Sie sind fertig.
@lionel-rowe Wie kann ich das Erkennungsverhalten anpassen?
Derzeit wird der Shebang nicht als Code erkannt, und ich möchte dies ändern.
Erwartetes Verhalten: #! kennzeichnet den Beginn eines Skripts und sollte daher als Code erkannt werden.
Zusätzlich dazu wäre es für uns nützlich, wenn root@ als Code erkannt würde.
root@OpenWrt:~# ip link add link eth0 name eth0.9 type vlan id 9
root@OpenWrt:~# brctl addbr br-foo
root@OpenWrt:~# brctl addif br-foo eth0.9
root@OpenWrt:~# ip link set eth0.9 up
root@OpenWrt:~# ip link set br-foo up
Es gibt derzeit leider keine Möglichkeit, benutzerdefinierte Anpassungen pro Site vorzunehmen. Wir könnten jedoch durchaus prüfen, die Erkennung von Shebangs und Shell-Prompts in das „Code Energy"-System aufzunehmen.
Danke, dass du das angesprochen hast – sieht nach einem Kernfehler bei mehrzeiligen Theme-Übersetzungen aus. Ich habe einen PR erstellt, um das zu beheben: