Подтвердить что ты не робот

Haml - как заставить атрибуты тегов использовать только двойные кавычки И как мне упорядочить атрибуты тегов, как я не сделал?

Я использую staticmatic для шаблонов, которые я использую позже с PHP. Существует странная ситуация, когда некоторые атрибуты тегов имеют одинарные кавычки, а некоторые имеют двойные кавычки. Я бы хотел, чтобы у всех из них были только двойные кавычки (не то, что это важно, я думаю, но я хочу, чтобы они были такими!)

Например, код 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 output сортирует атрибуты тегов в алфавитном порядке, а не так, как я их заказывал в haml. Я подозреваю, что это имеет какое-то отношение к рубиновым массивам, но я не уверен, так как я не могу/не могу использовать Ruby отдельно от haml в staticmatic. Как я мог их заказать так же, как я заказал их в ruby-массиве в haml-коде?

4b9b3361

Ответ 1

Попробуйте следующее:

Haml::Template.options[:attr_wrapper] = '"'

Ответ 2

Haml действительно упорядочивает атрибуты в алфавитном порядке, и это действительно является следствием анализатора Ruby. В будущем атрибуты могут быть упорядочены в порядке документа как можно больше, но это вряд ли произойдет до Haml 2.2 или новее.

Ответ 3

Цитата: http://haml.info/docs/yardoc/file.REFERENCE.html#options

Haml понимает различные параметры конфигурации, которые влияют на его производительности и производительности.

В Rails параметры можно установить, установив Haml::Template.optionsхэш в инициализаторе:

# 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