Anfangs dachte ich, ich müsste ganze Vorlagen ersetzen, um Tailwinds Utility-Klassen zu HTML hinzuzufügen. Das Ersetzen von Discourse-Vorlagen im Ganzen ist eine schlechte Idee, wie mir mitgeteilt wurde. Glücklicherweise erlaubt Tailwind auch, sein CSS auf beliebige Klassennamen anzuwenden.
Etwas wie das Folgende ist möglich…
@layer components {
.d-header {
@apply bg-blue-100;
}
#main-outlet.wrap {
@apply bg-yellow-200;
}
}
…was eine gute Nachricht ist. Also habe ich ein neues Theme mit dem discourse_theme CLI eingerichtet. Ich habe eine tailwind-input.css-Datei erstellt und Tailwind gebeten, diese zu verarbeiten und daraus eine common/common.scss zu generieren.
Aber dann beschwerte sich Sass. Es sagte:
✘ Error in common scss: Error: Function rgb fehlt das Argument $green.
on line 477 of common.scss
>> background-color: rgb(239 246 255 / var(--tw-bg-opacity));
Anscheinend soll man generiertes CSS von Tailwind nicht in eine Sass-Datei einspeisen. Die empfohlene Lösung ist, Ihre Rails-App mit Folgendem zu konfigurieren:
config.assets.css_compressor = nil
Ich kenne mich nicht mit Rails aus oder wie das Backend von Discourse konfiguriert ist, und ich bin bei einem Managed-Hosting, daher weiß ich nicht, ob das eine praktikable Lösung für mich ist.
Also suchte ich weiter nach einer anderen Lösung und fand heraus, dass ich Tailwind anweisen kann, diese problematische rgb-Syntax nicht zu verwenden.
Also habe ich mich vorerst dafür entschieden, und die Dinge scheinen bisher zu funktionieren… aber das fühlt sich eher wie eine temporäre Lösung als eine richtige an…
Eine gute Lösung wäre, dem Discourse-Theme eine normale CSS-Datei, wie common.css, anstelle von common.scss zur Verfügung zu stellen. Ich habe das versucht, aber Discourse hat meine CSS-Datei ignoriert.
Ist es möglich, Discourse anzuweisen, diese CSS-Datei anstelle der Sass-Datei zu verwenden? Oder gibt es eine andere gute Lösung für dieses Problem?