ruby-on-rails - Ruby on Rails 中的 HAML 能否以 "ordered hash"方式输出 HTML 属性?

标签 ruby-on-rails ruby haml

例如,如果使用 haml:

%html{'xmlns' => "http://www.w3.org/1999/xhtml",
      'xmlns:og' => "http://ogp.me/ns#",
      'xmlns:fb' => "http://www.facebook.com/2008/fbml"}

输出是:

<html xmlns:fb='http://www.facebook.com/2008/fbml' xmlns:og='http://ogp.me/ns#' xmlns='http://www.w3.org/1999/xhtml'> 

顺序不同。有没有办法按照指定的顺序制作它?

(它使用 Ruby 1.9.2 和 Rails 3.0.6)

更新 1: 虽然在 HTML 中,属性的顺序并不重要,但在某些情况下,我只想遵循规范所说的。谁知道他们的解析器做了什么以及它是否使用一些正则表达式来做一些遵循规范的人会匹配的事情,但不遵循规范的人将不匹配,因为他们使用正则表达式进行解析的“错误”。

更新 2: 或者,如果在一般情况下还有其他事情怎么办?它不需要是 HTML 属性。它可以是顺序很重要的任何内容。

最佳答案

我要指出的是,HTML 中的参数是无序的,因此您不清楚为什么要关心这个。

如果你真的想保持顺序,你可以使用替代的 HAML 语法:

%html(xmlns="http://www.w3.org/1999/xhtml"
  xmlns:og="http://ogp.me/ns#"
  xmlns:fb="http://www.facebook.com/2008/fbml")

<罢工>

编辑:替代语法给出相同的结果。 goto "arguments_are_orderless"

关于ruby-on-rails - Ruby on Rails 中的 HAML 能否以 "ordered hash"方式输出 HTML 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5953839/

相关文章:

ruby-on-rails - 评估 Controller 中每个 do block 内的迭代器

ruby-on-rails - ruby on Rails 3.2 将默认资源路径从/asset更改为其他目录

ruby - Jekyll 构建和服务无法在 Ubuntu (WSL) 上运行

ruby - 在 rspec 中指定内容类型

Ruby 转义 HTML 字符串

javascript - rails 中的 "invalid slice size"错误是什么? - @categories.each_slice(column_length) 做 |column|使用此代码发生。

ruby-on-rails - 使用 RSpec 测试 Rails API Controller POST

ruby-on-rails - named_scope 中的变量字段名称?

haml - html 中的 html 实体

ruby - 为什么这个简单的 Ruby 代码不能在 HAML 中运行?