3 Beiträge wurden in ein neues Thema aufgeteilt: Probleme mit neuen Fontawesome 6 Icons in Theme-Komponenten
@awesomerobot Ich habe die Anweisungen in deinem Beitrag nach bestem Wissen und Gewissen (mit meinen begrenzten Fähigkeiten) befolgt und stoße auf mehrere Probleme, von denen nur eines meiner Meinung nach mit der Änderung der Font Awesome-Icons zusammenhängt. Aber lass uns das hier behandeln.
Hier ist ein Screenshot dessen, was in der Konsole passiert:
Wenn ich mich auf die Deprecation-Meldung konzentriere, scheint das Icon „search“ ein Problem zu sein, wobei das neue Icon „magnifying-glass“ heißt. Eine Suche nach „search“ in der Suchfunktion der Entwicklertools liefert (wenig überraschend) viele Ergebnisse – (6.504 passende Zeilen in 278 Dateien) – und ich kann wirklich den Wald vor lauter Bäumen nicht sehen. Aber ich kann sagen, dass es NICHTS gibt, das den in deinem ursprünglichen Beitrag, Absatz 3, angezeigten Ergebnissen ähnelt!
Deine Vorschläge, wie man die Komponente findet, die dieses Problem verursacht, wären sehr willkommen!
Das Ember.js-Problem werde ich später in einem anderen Beitrag posten.
Vielen Dank – Discourse ist normalerweise ein Kinderspiel, aber das hat mich verwirrt.
Hallo @PatrickF
Haben Sie zufällig Advanced Search Banner installiert?
Wenn ja, können Sie bitte prüfen, ob die Komponente auf dem neuesten Stand ist?
Ich sehe, dass es vor einem Monat aktualisiert wurde:
Ah ja, das ist nicht ideal ![]()
Wenn Sie JS- und CSS-Sourcemaps deaktivieren, kann dies die Anzahl der Dateien in den Ergebnissen reduzieren. Dann können Sie nach Ergebnissen suchen, die sich speziell in Themes befinden.
Ah, wir haben tatsächlich ein Suchbanner installiert – und es wurde vor einiger Zeit von jemandem angepasst. Ich werde mir das jetzt ansehen.
Gut bemerkt, danke!
Bearbeitung zur Ergänzung:
OK, ich sehe, dass wir eine neue Zeile in <search-icon.gjs> benötigen:
@icon="magnifying-glass"
Ich habe diese Datei heruntergeladen, indem ich die Komponente exportiert habe – aber wie lade ich die Datei mit Änderungen hoch?
(Ich glaube nicht, dass ich das kann, da unsere Discourse-Community von Discourse gehostet wird, oder?)
Ich sehe auch nirgends einen Update-Button in Discourse – sollte ich die Komponente einfach neu installieren?
Sie können benutzerdefinierte Theme-Komponenten auf den meisten Hosting-Plänen installieren
Vielen Dank, ich habe all diese verlinkte Dokumentation mehrmals gelesen.
Ich sehe keinen Update-Button, wie in @Arkshine’s Beitrag beschrieben:
Mein Komponenten-Panel sieht so aus:
Der einzige Button auf dieser Seite ist “Installieren”, weiter unten auf der Seite. Vermutlich werden bei einer Neuinstallation des Themas alle unsere Anpassungen überschrieben.
Ich weiß es zu schätzen, dass ich (wahrscheinlich) etwas begriffsstutzig wirke
, aber was ich in Discourse Meta sehe, scheint nicht mit dem übereinzustimmen, was ich in unserer Discourse-Instanz sehe.
Vielen Dank für Ihre Geduld.
Es sieht so aus, als hätten Sie manuell eine modifizierte Version der ursprünglichen Theme-Komponente hochgeladen.
Sie würden einen Button sehen, wenn sie über einen GitHub-Repository-Link installiert worden wäre. (Auch der Autor wäre Discourse)
Ja, Sie müssen die aktualisierte Komponente neu installieren. Sie können den Button „Settings Editor“ verwenden, um Ihre Einstellungen zu exportieren/importieren.
Erinnern Sie sich, welche Anpassungen Sie vorgenommen haben? Wenn es nur CSS ist, empfehle ich Ihnen, die offizielle Version zu verwenden und CSS-Anpassungen zu Ihrem Theme oder einer separaten Theme-Komponente hinzuzufügen. Auf diese Weise erhalten Sie immer das neueste Update.
@Arkshine, @Moin – vielen Dank für eure Hilfe.
Ich habe das vorhandene Theme gelöscht und es aus dem GitHub-Repository neu installiert, und jetzt ist alles in Ordnung. Die Website sieht aus wie zuvor, und der Hinweis auf FontAwesome ist verschwunden. Das Theme wird von nun an automatisch aktualisiert.
Nochmals vielen Dank!
Aktualisierter Diskurs.
Diese Benachrichtigung wird immer noch angezeigt.
Kein Theme/Plugins zeigt eine Update-Benachrichtigung an.
Muss ich noch etwas tun?
Überprüfen Sie die Protokolle. Ich glaube, sie zeigen, welche oder welche Symbole einen alten Namen verwenden. Wenn es sich um eines der Symbole handelt, das von einem Administrator geändert werden kann, wird der Name dieser Komponente nicht angezeigt.
Vielen Dank @Jagster
Ich habe diesen Konsolen-Log gefunden
Deprecation notice: The icon name "undo" has been updated to "arrow-rotate-left". Please use the new name in your code. Old names will be removed in Q2 2025. [deprecation id: discourse.fontawesome-6-upgrade] [info: https://meta.discourse.org/t/325349]
Bin mir aber nicht sicher, wo ich dieses Icon aktualisieren muss.
Können Sie zuerst bestätigen, dass alle Ihre Plugins/Komponenten auf dem neuesten Stand sind?
Ja, alle sind aktualisiert.
Gerade gestern aktualisiert.
Können Sie mit dem abgesicherten Modus herausfinden, ob es sich um eine Plugin- oder eine Theme-Komponente handelt?
Ich verstehe, dass die Umbenennungen von einem upstream-Projekt außerhalb Ihrer Kontrolle erzwungen werden, aber warum können die Kompatibilitätszuordnungen nicht einfach für immer dort gelassen werden? Welchen Schaden verursachen sie?
Verstehen eigentlich diejenigen, die an Discourse oder seinen Abhängigkeiten arbeiten, das Konzept einer veröffentlichten API, die von anderen genutzt wird?
Man bricht eine API nur, wenn es wirklich einen guten Grund gibt. Die Namen von Dingen, die nur intern von Entwicklern gesehen werden und nicht vollständig perfekt sind, nur weil sie jemandes Willkür entsprechen, sind kein ausreichender Grund, den Code anderer Leute zu zerbrechen.
Ich werde wirklich müde von der Menge an Arbeit, die notwendig ist, um bestehende Dinge vor dem Zerbrechen bei Discourse zu bewahren. Es wäre in Ordnung, wenn es eine weltverändernde Verbesserung gäbe, die die Zeit und den Aufwand bei jedem Mal rechtfertigt, aber das ist nie der Fall. Es fühlt sich so an, als würden ständig zerbrechliche Änderungen aus kleinlichen Gründen vorgenommen, ohne die Zeit und den Aufwand für andere zu berücksichtigen.
Entschuldigung für die Frustration, wir versuchen, diese Updates einfach zu gestalten und bieten monatelange Zeiträume, um sie durchzuführen — aber es gibt immer einen Kompromiss. Wenn wir Remappings unbegrenzt beibehalten würden, hätten wir bereits mehrere Ebenen davon von V4 → V5 → V6, und das wäre Schulden, die eigenes Verständnis und Wartung erfordern würden. Wenn wir das für jeden Codeabschnitt tun würden, wäre Discourse viel größer und schwieriger zu verstehen und zu handhaben.
[Zitat=“LeoDavidson, Beitrag:42, Thema:325349”]
Versteht jemand, der an Discourse oder seinen Abhängigkeiten arbeitet, das Konzept einer veröffentlichten API, die von anderen genutzt wird?
[/Zitat]
Ja, weshalb wir Warnungen vor Abnutzung und Anweisungen zum Aktualisieren bereitstellen. Wir aktualisieren nicht nur eine Datei und überlassen die ganze Arbeit — jedes Mal, wenn wir eine solche Aktualisierung vornehmen, müssen wir Dokumentationen, Warnsysteme schreiben und Hunderte von Themes, Theme-Komponenten und Plugins selbst aktualisieren. Für Ember-Updates haben unsere Ingenieure völlig neue Systeme entwickelt, um legacy Anpassungen überhaupt erst möglich zu machen.
Selbst viel größere Softwarefirmen aktualisieren ihre APIs auf brechende Weise. Ich musste unsere Google Fonts-Komponente mindestens zweimal aufgrund von API-Änderungen aktualisieren, und Google ist ungefähr zwei Billionen Dollar wert. Jeder Authentifizierungsdienst, mit dem wir zur Anmeldung integriert sind, erforderte eine Aktualisierung wegen API-Änderungen.
Wenn Sie keine Zeit für gelegentliche Wartung haben, würde ich empfehlen, die Anpassungen so weit wie möglich zu reduzieren. Wenn Sie Off-the-Shelf-Themes/Komponenten/Plugins für Discourse verwenden, aktualisieren wir diese meistens kostenlos.
Sie können auch vermeiden, Discourse zu aktualisieren, aber alles ändert sich immer, und Sie würden schließlich mit neuen Sicherheitsproblemen oder Browser-Kompatibilitätsproblemen konfrontiert werden. Jede Option hat Kosten und Kompromisse.
Und doch kann ein für Windows 95 geschriebenes Programm 30 Jahre später unverändert verwendet werden. Es ist also möglich.
Nur weil andere Unternehmen den einfachen Weg wählen, heißt das nicht, dass Sie das auch tun müssen. Es ist eine Wahl.
Es ist eine Wahl, die durch das Agieren in der Realität eingeschränkt ist, was viele Kompromisse in Bezug auf Zeit und Budget mit sich bringt. Wir müssen uns nicht in einen „technisch ist alles möglich“-Exkurs begeben.
Davon abgesehen ist das Schöne an Discourse, dass es kostenlos und Open Source ist – wenn Sie also eine Version von vor 1 oder 10 Jahren ausführen möchten, können Sie das auf jeden Fall tun, es wird wahrscheinlich nur mehr Probleme verursachen, als es lösen würde.
Danke @Arkshine
Die Benachrichtigung ist automatisch verschwunden.
Heute habe ich sie wiedergefunden, dann die Browserkonsole überprüft, die Namen der Symbole gefunden und nachdem ich diese aktualisiert hatte, verschwand die Benachrichtigung.



