HAML - добавьте type = text / css в тег <style>с помощью: css filter - PullRequest
22 голосов
/ 16 января 2012

Я пытаюсь добавить встроенный CSS в файл HAML. Я думал, что

%noscript
  :css
    .pagecontent {display:none;}

будет производить:

<noscript>
  <style type="text/css">
    /*<![CDATA[*/
      .pagecontent {display:none;}
    /*]]>*/
  </style>
</noscript>

но это не так. Поскольку это исключает type="text/css" и производит:

<noscript>
  <style>
    /*<![CDATA[*/
      .pagecontent {display:none;}
    /*]]>*/
  </style>
</noscript>

Я мог бы просто использовать грубую силу %style(type="text/css"), но фильтр HAML :css выглядит так: должен быть более "элегантным"?!? Или я что-то упустил (я редко имею дело со встроенным CSS) и type больше не нужен?!?

Ответы [ 2 ]

20 голосов
/ 17 января 2012

Haml выдаст атрибут type, если для опции format установлено значение xhtml или html4. Если формат установлен на html5, атрибут будет опущен.

См. Документы Haml по вариантам и источник CSS-фильтра .

По умолчанию в Haml 3.1.x установлено значение xhtml, за исключением Rails, когда оно равно html5, поскольку это значение по умолчанию для Rails. В Haml 4+ по умолчанию будет html5. (Также в 4+ теги CDATA будут по умолчанию опущены, если формат html4 или html5.)

9 голосов
/ 16 января 2012

type по умолчанию text/css с HTML5 , и всегда делал это на практике (т.е. в реализациях браузера).

Так что да, type="text/css" не требуется(и никогда не было).

...