2013-10-04 2 views
5

Я пытаюсь использовать @font-face селектор в шаблоне cassius без везения.Escape `@` в шаблонах yesod

Cassius использует @ для интерполяции, есть ли способ избежать его?

Я пробовал @@ и \@, ни один из них не работает.

После шаблон

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

Результаты в

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

ответ

0

это не является решением на ваш вопрос, но я думал, что я дам вам знать, что столкнулся с чем-то связанным этим утром. Я имел следующий CSS раздел:

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

Когда Йесод скомпилирован файл CSS, он не генерировать URL для background-image. Фактически, он пропустил всю строку и создал немного другое свойство background. Я закончил тем, что пропустил `@ {StaticR ...} и закодировал URL-адрес. Когда я получу шанс, я создам воспроизводимый код.

Так что я предполагаю, что это проблема с интерполяцией @ и не столько сбежанием. Не возражаете попробовать @{Handler} для вашего src? Если эта строка не получается сгенерированной, это может быть другая проблема, для которой нам нужно подать отчет об ошибке.

+0

Hi. Я не думаю, что наши вопросы связаны. Мне просто нужен символ '@', который появится в результирующем результате. Я пробовал ваш код, и все работает отлично. Может быть, вы должны попробовать 'cabal clean', это помогает, когда происходят странные вещи. – lambdas

1

Это очень некрасиво, но может работать:

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

другими словами, связать строку со значением «@» и интерполировать, что в файле Кассий. Я не могу проверить синтаксис сейчас, но он может работать.

+0

Это действительно работает. – MasterMastic

Смежные вопросы