2010-10-19 14 views
9

Da ich mich genervt mit den HTML-Tags war, begann ich mein Projekt in HAML zu konvertieren, da es viel besser strukturiert ist. Ich bin froh, dass die Installation das Tool html2haml zur Verfügung stellt, um mir dabei zu helfen.Missing keyword_end auf haml teilweise Vorlage Verarbeitung

Während syntaktisch korrekt ist, die Verarbeitung die Datei gibt mir einen seltsamen Fehler, den ich nicht ganz erhalten:

/stories/_story.html.haml:28: syntax error, unexpected keyword_ensure, expecting keyword_end 
...:Util.html_safe(_erbout);ensure;@haml_buffer = @haml_buffer.... 
...        ^
/stories/_story.html.haml:31: syntax error, unexpected $end, expecting keyword_end 

Meine haml Quelle hat nur 27 Zeilen, und da ich bin sehr neu, dies zu, ich habe keine Ahnung, wo es schief gegangen ist ... hier ist der Code:

%h1= story.title 
%center 
    %i 
    by #{link_to story.user.name, story.user} 
#story-short= story.short_desc 
- if logged_in? and @current_user.id == story.user_id 
    .list-buttons 
    %center 
     = link_to 'Edit', edit_story_path(story) 
     | 
     \#{link_to 'Delete', story, :method => 'delete', :confirm => 'Are you really sure?'} 
#story-body 
    - story.body.split("\n").each do |line| 
    - if line.strip.empty? 
    %hr/ 
    - else 
    %p= line.strip 
#comments 
    %p{:onclick => "$('#comments').find('dl').slideToggle();"} Comments to this story (click to expand) 
    %dl 
    = render :partial => 'comment', :collection => @story.comments 
    - if logged_in? and @current_user.id != story.user_id 
     %dt Leave a comment: 
     %dd 
     = form_for [story, story.comments.build] do |f| 
      .field= f.text_area :body 
      .actions= f.submit "Comment!" 

Also ja, ich würde wirklich gerne wissen, wo das ist falsch. Überprüft es mehrmals, vielleicht ein Bug?

Danke für Ihre Zeit.

Antwort

9

Die Zeilen unter - story.body.split("\n").each do |line| sind nicht eingerückt. Dies bedeutet, dass Haml nicht automatisch einen end für den Block hinzufügen kann, der den fraglichen Fehler verursacht.

+1

Ein Fehler in html2haml, vielleicht? Danke trotzdem! –

+0

Ich bin daran interessiert, es zu beheben, wenn es ein html2haml Bug ist. Kannst du den originalen ERB, der in diesen Haml umgewandelt wurde, zur Verfügung stellen? –