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のパーサーの結果です。将来的には、属性は可能な限りドキュメント順に並べられる可能性がありますが、Haml2.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 に答える