2013-10-04 35 views
5

我试图在cassius模板中使用@font-face选择器,但没有运气。在yesod模板中跳出`@`

卡修斯使用@进行插值,有什么办法可以逃脱它吗?

我试过@@\@,它们都不起作用。

以下模板

@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文件,它并没有产生对background-image的URL。实际上,它跳过了整个行,​​并创建了一个稍有不同的background属性。我最终跳过了`@ {StaticR ...}并对网址进行了硬编码。当我有机会时,我会创建一个可重复的代码。

所以我猜这是@插值问题,并没有太多的转义。您介意为您的src尝试@{Handler}吗?如果那条线没有被生成,那么它可能是一个不同的问题,我们需要提交一个错误报告。

+0

嗨。我不认为我们的问题是相关的。我只需要一个'@'符号出现在结果输出中。我试过你的代码,它工作得很好。也许你应该试试'cabal clean',它会在奇怪的事情发生时帮助你。 – lambdas

1

这是很丑陋的,但可能工作:

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

换句话说,字符串绑定到“@”的值,并插值,在卡西乌斯文件。我现在无法检查语法,但它可能工作。

+0

它确实有效。 – MasterMastic