18

我对稍后在 PHP 中使用的模板使用 staticmatic。有一种奇怪的情况,一些标签属性有单引号,而一些有双引号。我希望他们所有人都有双引号(我猜这并不重要,但我希望他们那样!)

例如haml代码:

!!! XML
%html{html_attrs('hr-HR')}
  %head
    %title Some title
    %meta{'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8'}/
    %meta{'name' => "description", :content => 'Some title - YO!'}/
    = stylesheets
    = javascripts('test', :other)
  %body
    = yield

产生以下内容:

<?xml version='1.0' encoding='utf-8' ?>
<html lang='hr-HR' xml:lang='hr-HR' xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>Some title</title>
    <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
    <meta content='Some title - YO!' name='description' />
    <link href="stylesheets/application.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/grid.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/text.css" media="all" rel="stylesheet" type="text/css"/>
    <script language="javascript" src="javascripts/test.js" type="text/javascript"></script><script language="javascript" src="javascripts/other.js" type="text/javascript"></script>

  </head>
  <body>
    <h1>some body stuff!</h1>
    utf test šđčćž ŠĐČĆŽ
  </body>
</html>

请注意,无论我在 haml 代码中使用单引号还是双引号,我总是得到相同的输出!

此外,haml->html 输出似乎按字母顺序对标签属性进行排序,而不是我在 haml 中对它们排序的方式。我怀疑这与 ruby​​ 数组有关,但我不确定,因为我不/不能在 staticmatic 中使用除haml 之外的 Ruby。我怎样才能让它们与我在 haml 代码中的 ruby​​ 数组中订购它们的顺序相同?

4

3 回答 3

29

尝试以下操作:

Haml::Template.options[:attr_wrapper] = '"'
于 2009-06-08T21:12:23.793 回答
2

Haml 确实按字母顺序排列属性,这确实是 Ruby 解析器的结果。将来,属性可能会尽可能按文档顺序排列,但这在 Haml 2.2 或更高版本之前不太可能发生。

于 2009-06-09T04:48:52.930 回答
1

引用自:http ://haml.info/docs/yardoc/file.REFERENCE.html#options

Haml 了解影响其性能和输出的各种配置选项。

Haml::Template.options 在 Rails 中,可以通过在初始化程序中设置哈希来设置选项:

# config/initializers/haml.rb

Haml::Template.options[:format] = :html5

在 Rails 之外,您可以通过在以下位置全局配置它们来设置它们Haml::Options.defaults

Haml::Options.defaults[:format] = :html5

最后,您还可以通过将选项哈希传递给 [ Haml::Engine#initialize ][1] 来设置它们。有关可用选项的完整列表,请参阅 [ Haml::Options ][2]。

[1]: http ://haml.info/docs/yardoc/Haml/Engine.html#initialize-instance_method

[2]:http ://haml.info/docs/yardoc/Haml/Options.html

于 2015-02-05T09:43:32.903 回答