Sass-/ Compass-Encoding auf UTF-8 umstellen

Beim erstmaligen compass compile eines neuen Projekt wurde mir heute die folgende Fehlermeldung ausgegeben:

Invalid US-ASCII character "\xC3"

Sass und Compass bekommen ihre Encoding-Optionen von Ruby, dass sie wiederum vom Environment (sprich: Dem Server, auf dem es läuft) übernimmt.

Um dieses Problem zu beheben, können zum einen die Locales (Spracheinstellungen) des Systems angepasst werden oder aber „nur“ das Encoding von Sass/ Compass auf UTF-8 umgestellt werden.

Locales umstellen

Achtung: Ich habe, was Server-Geschchichten angeht, maximal Achtelwissen und frage lieber sachkundige Mitmenschen. Daher verweise ich gern auf den Wiki-Artikel Locales unter Ubuntu konfigurieren.
In meinem konkreten Fall bekam ich (wie immer) schnell und kompetent Support von meinem Hoster Uberspace, der mit freundlicherweise die benötige Zeile Code gleich per Mail schickte:

export LC_CTYPE="en_US.UTF-8"

Hat bei mir funktioniert:

[user@server ~]$ locale
LANG=
LC_CTYPE=en_US.UTF-8

Encoding von Sass/ Compass ändern

Um das Encoding von Sass/ Compass zu ändern, muss in der config.rb-Datei folgende Zeile Code eingefügt werden:

Encoding.default_external = 'utf-8'

Quellen

Encoding error on compass font-face mixin

Compass und das WordPress-eigene style.css

In WordPress-Themes muss innerhalb des Theme-Root-Verzeichnis‘ ein Stylesheet namens style.css liegen, ansonsten wird das entsprechende Theme nicht erkannt. Dies ist innerhalb meines normalen Compass-Setups nicht ganz unproblematisch, da ich normalerweise alle Stylesheets im Ordner css/ lagere, also auch das normale style.css. Meine bisherige Lösung sah so aus, dass ich im Theme-Root ein Stylesheet hatte dass das von Compass kompilierte Css importiert. Wirklich schön war das allerdings nicht, da so für die Einbindung zwei Requests von Nöten waren.

Umso erfreuter war ich, als ich bei Chris Coyier ein äußerst hilfreiches Snippet fand.

require 'fileutils'
on_stylesheet_saved do |file|
  if File.exists?(file) && File.basename(file) == "style.css"
    puts "Moving: #{file}"
    FileUtils.mv(file, File.dirname(file) + "/../" + File.basename(file))
  end
end

Das Snippet sucht nach dem Kompilieren die Datei style.css und schiebt sie innerhalb der Verzeichnisstruktur eine Ebene höher, in meinem Fall also ins Root-Verzeichnis des Themes.

Links

Compass Compiling and WordPress Themes