застрял с шаблонами haml - PullRequest
       6

застрял с шаблонами haml

4 голосов
/ 11 октября 2011

Я хочу преобразовать некоторые haml (* .html.haml файлы) в xhtml.Команда haml говорит: «Использование: haml [опции] [ВХОД] [ВЫХОД]».Поэтому я попробовал это со следующим ответом:

Exception on line 1: undefined method `content_for' for #<Object:0xb730af2c>

Я заметил, что существуют разные форматы, которые все называются хамлами.Я заметил один, который часто использует угловые скобки.Нужна ли какая-то предварительная обработка?

Вот пример файла html.haml, который я хочу преобразовать:

- content_for :head do
  = stylesheet_link_tag    'jquery.autocomplete'
  = javascript_include_tag 'jquery.autocomplete'
- javascript_behaviour '$("input#user_full_name").autocomplete("project_roles/auto_complete_for_user_full_name")'

Примечание: я знаю, как Google, поэтому я ищу конкретныесоветы.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Вы используете rails helper, content_for, поэтому, когда вы вызываете haml с помощью программы командной строки, он не знает, что он обозначает.Поэтому либо добавьте гем haml в свой гемфайл и сохраните шаблон в шаблоне .html.haml и попробуйте его отрендерить, либо замените content_for на html-результат, сгенерированный rails.

0 голосов
/ 24 октября 2011

То, что вы хотели, это преобразовать Haml в Erb - язык шаблонов Ruby, который выглядит как HTML.Haml этого не делает, поэтому он попытался визуализировать ваш шаблон haml в xhtml вместо его преобразования в другой шаблон.

Вы могли бы использовать гем haml2erb сделать преобразование.Это будет выглядеть так:

Dir["**/*.haml"].each do |filename|
  File.open(filename.gsub(/haml$/, 'erb'),'w') do |f|
    f.puts Haml2Erb.convert( File.read(filename) )
  end
end
...