登录 haml class 个名字

At-sign in haml class names

我正在尝试使用 UIkit(前端框架,而非 iOS 框架)制作网页。

从 v3 开始,UIkit 在其响应式 class 名称中使用 at 符号(.uk-text-left@s 影响小型及以上设备,.uk-text-left@l 大型及以上设备...)。

直接使用那些 classes 会导致 haml 抱怨:

Illegal nesting: content can't be both given on the same line as %div and nested within it. (Haml::SyntaxError)

或者,如果 html 元素不包含任何其他元素,则生成错误输出,在 html 内容中使用 @:

<div class="uk-text-left">@s hello</div>

使用 %div{ :class => "uk-text-left@s" } 工作正常,但这种框架非常依赖那些 classes 与仅输入 .uk-text-left@s.[=17= 相比有很大的不同]

是否有任何其他方法可以让 haml 接受 at 符号作为 class 名称的一部分?

您可能需要对属性使用长格式方法。

代替shorthand方法

%h1.awesome-sauce

你需要这样做

%h1{class: "@awesome-sauce"}

shorthand 只是语法糖。如果有明显的模式,您总是可以编写帮助程序或装饰器来处理名称生成。