curry-club-aux / curry-club-augsburg.de

Our Website
http://curry-club-aux.github.io/curry-club-augsburg.de/
Other
17 stars 5 forks source link

Clay statt normalem CSS #5

Closed maxhbr closed 9 years ago

maxhbr commented 9 years ago

Hi,

ich würde gerne das CSS durch Clay ersetzen. Das finde ich angenehmer zum schreiben als CSS und passt natürlich super ins Thema.

Für meine Seite nutze ich bereits Clay, das ganze sieht dann so aus.

Würde mich auch bereit erklären, Interessenten kurze Einführungen in Clay zu geben (gerne beim ersten treffen) bzw. auch CSS schnipsel übersetzen.

EDIT: die Datei css/default.css würde dann dem hier exakt entsprechen.

timjb commented 9 years ago

Sieht cool aus! Zwei Anmerkungen:

  1. Kann man damit schnell Dinge ausprobieren? Eine Sache, die ich an CSS und JavaScript mag, ist, dass man einfach "neu laden" klicken kann, um neuen Code zu testen.
  2. Idealerweise sollte das Erzeugen des CSS aus dem Haskell-Clay-Code in den Hakyll-Buildprozess integriert sein. Damit 1. erfüllt ist, sollte man dazu vllt. sowas wie runhaskell CSS.hs verwenden und nicht etwa mit import CSS ein Neukompilieren von site.hs notwendig machen.
maxhbr commented 9 years ago

In hakyll lässt sich das recht einfach integrieren durch

match "css/*.hs" $ do
    route   $ setExtension "css"
    compile $ getResourceString
        >>= withItemBody (unixFilter "cabal" ["exec", "runghc"])

dann kann man im 'css/' Ordner einfach 'NAME.hs' Dateien erstellen, welche dann zu 'NAME.css' compiliert werden. Da habe ich nur im Moment Probleme, dass er das Clay in den Sandbox nicht finden.

Alternativ fügt man in die *.cabal ein weiteres executable hinzu. Muss mann halt jedes mal zum updaten ausführen.

EDIT: Man könnte auch das cabal run css von hakyll aus aufrufen.

timjb commented 9 years ago

Führ mal cabal exec --help aus. Die letzte Zeile sieht so aus, als wäre sie genau die Lösung für das Sandbox-Problem.

maxhbr commented 9 years ago

habe es mal eingebaut, zu starten mittels cabal run css erzeugt dann eine datei css/style.css welche das gleiche enthält wie css/default.css

EDIT: zu der cabal exec runghc ... Lösung. Das Code-Schnipsel für hakyll ruft die Clay Datei bereits so auf und das hat bei mir nicht geklappt.

maxhbr commented 9 years ago

Wenn niemand explizit etwas gegen die Clay variante hat, würde ich die default.css durch Clay erzeugen und überschreiben lassen. OK? Vor allem geht die Frage an @lukasepple, da du dich ja um das Styling kümmern möchtest.

sternenseemann commented 9 years ago

Ich bin nicht richtig überzeugt, ehrlich gesagt…

Erzähl mal, warum wäre das besser? :)

maxhbr commented 9 years ago
  1. Es ist Haskell
  2. Man kann alles direkt in Baumstruktur bauen (wie es beispielsweise mit LESS)
  3. Man kann es in wiederverwendbaren Funktionen kapseln (beispielsweise eine Funktion fügeMeineSchattenUndRahmenHinzu)
  4. Man kann Konstanten für Farben und ähnlichem verwenden um schnell/global zu verändern
  5. Man hat die geballte macht von Haskell auf seiner Seite
  6. Es ist schnell im erzeugen einer normalen/kompakten Version

und es macht, mir zumindest, deutlich mehr Spaß

sternenseemann commented 9 years ago

Dann fühle dich frei :)

maxhbr commented 9 years ago

die "deploy.sh" ruft jetzt cabal run css auf und überschreibt damit die css/default.css.

jetzt müsste man die neuen Abhängigkeiten noch NIX beibringen, könnte das jemand machen?

timjb commented 9 years ago

Das sollte nicht in der deploy.sh stehen. Die beiden Aufgaben "baue die statischen Dateien aus den Sources" und "aktualisiere den Inhalt der Webseite" sollten getrennt sein. Für erstes sollte site.hs zuständig sein, für letzteres deploy.sh (wobei deploy.sh natürlich site.hs benutzt, um alles neu zu erzeugen). Es sollte insbesondere möglich sein, die gesamte Webseite neu zu erzeugen, ohne sie gleich hochzuladen. Des Weiteren kann man, wenn man die CSS-Dateien aus den Haskell-Sources in site.hs erzeugt, die praktischen Features von Hakyll verwenden: z.B. bemerkt ./site --watch Änderungen an Quell-Dateien und baut sie automatisch neu. So hat muss man das CSS nicht ständig von Hand neu erzeugen.

sternenseemann commented 9 years ago

Was @timjb sagt