Wie fügt man in einem Plugin ein benutzerbezogenes CSS hinzu? Z.B. verursacht durch eine Benutzereinstellung?
Was versuchst du zu tun? Du kannst einzelne Benutzernamen-/Erwähnungsfarben nur durch das normale Theme-CSS ändern. Wenn du eine spezifische Änderung an einem Theme nur für einen Benutzer meinst, glaube ich nicht, dass du das tun könntest, ohne ihnen ihr eigenes Theme zu geben. Ich bin aber kein Experte.
Zum Beispiel eine benutzerspezifische Einstellung, um Schriftarten für bestimmte Elemente zu ändern (z. B. den Markdown-Editor).
Sie könnten Gruppen anbieten, denen der Benutzer beitreten kann, und CSS Classes for Current User's Groups verwenden.
Oder der Benutzer kann ein Browser-Plugin verwenden, um CSS nur für sich selbst zu ändern. Ich benutze Stylus, um meine Erfahrung auf Meta anzupassen.
War der Composer ein zufälliges Beispiel? Oder was möchten Sie zusätzlich zu „Monospace-Schriftart im Markdown-Modus des Composers verwenden“ anbieten, die in den Einstellungen aktiviert oder deaktiviert werden kann?
Irgendwie. Ich habe darüber nachgedacht, wie die Schriftart pro Benutzer geändert werden würde.
Sie können dies wahrscheinlich in einem Plugin erreichen, indem Sie ungefähr Folgendes tun:
- Fügen Sie mit der Plugin-API ein
api.addSaveableUserOptionField("composer-custom-font")hinzu - Fügen Sie das Feld zur
UserOption-Tabelle in der Datenbank und zum Serializer hinzu, damit es gesetzt werden kann - Fügen Sie einen Connector zur Benutzeroberflächenseite des Benutzers hinzu, damit die Einstellung vorgenommen werden kann
- Sie können die Einstellung beispielsweise zu einer Dropdown-Liste machen, sodass, wenn der Benutzer eine bestimmte Schriftart/einen bestimmten Schriftstil auswählt, seine Präferenz in der Datenbank gespeichert wird
- Sie können den Composer-Code erweitern, um seine ausgewählte Präferenz zu berücksichtigen und entweder die Stile direkt mit JS zu ändern oder eine CSS-Klasse basierend auf der gewählten Präferenz hinzuzufügen, für die Sie Stile über CSS für diese spezifische Klasse anwenden können