Ich stoße auf ein Problem mit der Formatierung von Codeblöcken in Discourse. Beim Posten von Python-Code werden bestimmte Teile des Codes (wie URLs und Pfade) rot hervorgehoben oder unerwartet formatiert, wie im folgenden Screenshot gezeigt:
Wenn ich Python-Code mit dreifachen Backticks für Codeblöcke poste, werden bestimmte Textteile (wie Unterstriche in URLs oder Pfaden) rot hervorgehoben oder falsch formatiert.
Ich habe versucht, Zeichen zu escapen, HTML-Entitäten zu verwenden und die Syntaxhervorhebung zu deaktivieren, indem ich die Sprache nicht angegeben habe, aber das Problem besteht weiterhin.
Beispielcode
Hier ist ein Ausschnitt des Codes, der Probleme verursacht (Python):
Ich bin mit dem Syntax-Hervorhebungssystem / den Einstellungen als Ganzes nicht vertraut, aber wenn Sie nur den roten Text entfernen möchten, könnten Sie CSS in Ihrem Website-Theme verwenden:
code.language-python span {
color: inherit;
}
Das Rot wird zur Anzeige von Zeichenfolgen verwendet. Wenn Sie dies nur in eine andere Farbe ändern möchten, könnten Sie Folgendes tun:
code.language-python span.hljs-string {
color: #FFF; /* Ersetzen Sie dies durch die gewünschte Farbe */
}
Abgesehen vom roten Text gab es noch andere Teile, die falsch formatiert sind?
Vielen Dank für deinen Vorschlag, @bryce! Ich werde versuchen, das CSS im Theme unserer Website anzupassen, um das Problem mit dem roten Text zu beheben.
Ich werde versuchen, das CSS im Theme unserer Website anzupassen, um das Problem mit dem roten Text zu beheben.
Ich denke, das Hauptproblem ist, dass die Schriftart in meinem ursprünglichen Screenshot nicht wie Code formatiert ist – ihr fehlt der einheitliche Schriftstil, der normalerweise für Codeblöcke verwendet wird. Idealerweise hoffte ich, dass der Code eher so aussehen würde, mit der richtigen Schriftart und Schriftfarbe:
Gibt es eine Möglichkeit, sicherzustellen, dass der Code in einer einheitlichen Schriftart angezeigt wird, ähnlich der in diesem Beispiel?
Abgesehen davon sind mir keine weiteren größeren Formatierungsprobleme aufgefallen, aber ich werde weiter testen und dich informieren, wenn etwas anderes auftaucht.
Die Hervorhebungsfarben können durch Überschreiben dieser CSS-Variablen geändert werden:
--hljs-comment: Wird für Code-Kommentare verwendet
--hljs-number: Wird für Zahlenwerte in Code verwendet
--hljs-string: Wird für Zeichenkettenwerte in Code verwendet
--hljs-literal: Wird für Literalwerte in Code verwendet
--hljs-tag: Wird für HTML/XML-Tags verwendet
--hljs-attribute: Wird für Attribute in HTML/XML-Tags verwendet
--hljs-symbol: Wird für Symbole in Code verwendet
--hljs-bg: Wird für die Hintergrundfarbe von Codeblöcken verwendet
--hljs-builtin-name: Wird für integrierte Funktionsnamen verwendet
Zum Beispiel, um die Zeichenkettenfarbe zu überschreiben:
:root {
--hljs-string: pink;
}
Es scheint, dass hljs (die verwendete Hervorhebungsbibliothek) möglicherweise keine Python-Bezeichner wie degirum in Ihrem Beispiel unterstützt, aber Sie sollten ziemlich nah herankommen, indem Sie die anderen Farben ändern.
Was die Schriftart betrifft, ist das seltsam – Codeblöcke sollten standardmäßig mit einer Monospace-Schriftart angezeigt werden. Ich würde vorschlagen, Ihr Theme noch einmal zu überprüfen, um sicherzustellen, dass dort nichts überschrieben wird.
Nur zur Klarstellung: Wir verwenden derzeit das Standardthema ohne zusätzliche Komponenten, daher ist es seltsam, dass die Monospace-Schriftart nicht standardmäßig für Codeblöcke angewendet wird. Es sieht nicht so aus, als würde etwas sie überschreiben.
Zur Referenz: Ich arbeite mit Chrome Version 127.0.6533.100 unter macOS 14.6.1.
Die Schriftart sieht korrekt aus und die Links sind wie erwartet hervorgehoben. In unserer Community tritt das Problem jedoch weiterhin auf, dass die Schriftart nicht korrekt angezeigt wird und die Links nicht wie vorgesehen hervorgehoben werden.
Ich bin mir nicht sicher, warum diese Diskrepanz auftritt.
Als Referenz finden Sie hier den Link zur Seite in unserer Community.
Vielen Dank, dass Sie sich beide die Zeit genommen haben, mir dabei zu helfen. Es ist gut zu wissen, dass die Schriftart für andere als Monospace angezeigt wird.
Da sie auf meiner Seite nicht korrekt angezeigt wird, könnte es sich um ein Problem handeln, das spezifisch für meine Einrichtung oder Umgebung ist. Sie wird bei mir sowohl unter Chrome als auch unter Safari (beide neueste Versionen) falsch angezeigt. Sie wird auch bei anderen in meiner Organisation auf PCs falsch angezeigt.
Ich habe gerade von einem persönlichen Computer aus nachgesehen, und das Problem besteht auch dort fort. Die Code-Schriftart wird immer noch nicht als Monospace angezeigt, und die Links werden nicht richtig hervorgehoben.
Dies scheint ein Problem mit meiner primären Einrichtung auszuschließen, da das Problem auf verschiedenen Geräten konsistent ist.
Ich habe gerade im abgesicherten Modus nachgesehen, und das Problem scheint dort behoben zu sein – die Code-Schriftart wird als Monospace angezeigt und die Links werden korrekt hervorgehoben.
Das ist verwirrend, da wir das Standard-Theme ohne zusätzliche Komponenten verwenden, daher bin ich mir nicht sicher, was das Problem im normalen Modus verursachen könnte.
Das würde ich auch erwarten. Diese Zeichenfolgen haben eine andere Farbe, damit Sie schnell erkennen können, dass es sich um Zeichenfolgen handelt. Sieht das in Ihrem Texteditor nicht so aus?
Ich glaube, Sie möchten einfach nur SiteSetting.default_code_lang in „text“ oder „“ ändern. Es gibt auch eine Einstellung für highlighted_languages. Ich bin ziemlich sicher, dass hier die Standardsprache für Code auf etwas wie „text“ geändert wurde, also
Das sieht so aus:
result=model("https://big.bang")
und wenn ich es mit ```python erzwinge, sieht es so aus
Da ich die Community verwalte, ist es mein Ziel, sie so zu sehen, wie die Endbenutzer sie sehen sollten. Wie Sie auf der rechten Seite sehen können, sieht es einfach nicht richtig aus.