2013-10-04 25 views
5

Próbuję użyć selektora @font-face w szablonie cassius bez powodzenia.Escape `@` w szablonach yesod

Cassius używa @ do interpolacji, czy jest jakikolwiek sposób, by z niej uciec?

Próbowałem już @@ i \@, żaden z nich nie działa.

następujący szablon

@font-face 
     font-family: 'Monsieur La Doulaise' 
     src: url('http://fonts.googleapis.com/css?family=Monsieur+La+Doulaise') 

Wyniki w

src: url('http://fonts.googleapis.com/css?family=Monsieur+La+Doulaise');} 

Odpowiedz

0

nie jest to rozwiązanie do Twojego pytania, ale myślałem, że dam wam znać, że wpadł na coś związanego rano. Miałem następującą sekcję CSS:

.myclass { 
    background: #d880efe; 
    background-image:url(@{StaticR img_myimage_png}); 
    /* more stuff */ 
} 

Kiedy Jesod skompilowany plik CSS, nie generują adres URL background-image. W rzeczywistości przeskoczył całą linię i stworzył nieco inną właściwość background. W efekcie pominąłem `@ {StaticR ...} i zakodowałem adres URL. Kiedy dostanę szansę, utworzę odtwarzalny kod.

Zgaduję, że to jest problem z interpolacją @ i nie tyle ucieka. Czy chcesz przetestować model @{Handler} pod kątem swojego src? Jeśli linia ta nie zostanie wygenerowana, może to być inny problem, dla którego musimy zgłosić raport o błędzie.

+0

Witam. Nie sądzę, że nasze pytania są ze sobą powiązane. Potrzebuję tylko symbolu '@ ', aby pojawić się w wynikach końcowych. Wypróbowałem twój kod i działa dobrze. Może powinieneś wypróbować 'cabal clean', pomaga to kiedy dziwne rzeczy się zdarzają. – lambdas

1

Jest to dość brzydki, ale może pracować:

... defaultLayout $ do let atSym = "@" [cassius|#{atSym}font-face ... |] ...

innymi słowy, związać ciąg na wartość „@” i interpolacji, że w pliku Cassius. Nie mogę teraz sprawdzić składni, ale może działać.

+0

To rzeczywiście działa. – MasterMastic