Frage

Ich versuche HAML zu verwenden wechseln für meine Ansichten, aber ich halte unerwartete KENSURE Nachrichten bekommen. Ich habe html2haml Dateien zu wechseln Arbeitsansicht verwendet. Erster Lauf durch sie hat mir gesagt, ich habe nicht das Ende brauchen, die in ihrem Ausgang hatte html2haml so nahm ich es und jetzt bekomme ich Fehler, wie es aussehen wird über die Form nicht beschweren beendet wird.

Was mache ich falsch?

Fehlermeldung:

compile error
app/views/sessions/new.html.haml:20: syntax error, unexpected kENSURE, expecting kEND
app/views/sessions/new.html.haml:22: syntax error, unexpected $end, expecting kEND

application.html.haml:

!!!
%html
%head
  %title
    = APP_CONFIG[:site_name] + ': ' + @page_title  
  == <meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />
  == <meta http-equiv="imagetoolbar" content="no"  />
  == <meta name="distribution" content="all" />
  == <meta name="robots" content="all"  />
  == <meta name="resource-type" content="document" />
  == <meta name="MSSmartTagsPreventParsing" content="true"   />
  = stylesheet_link_tag 'base'
  = javascript_include_tag :defaults

  %body
    #container
      #header
        - if logged_in?
          = link_to 'Logout', logout_path
        - else
          = link_to 'Login', login_path
          = link_to 'Signup', signup_path
      #content
        = flash_messages
        = yield :layout

und Sitzungen / new.html.haml

= title "Login", :h2
- form_tag session_path do
%fieldset
  %legend
    Your Details
  %ol
    %li
      = label_tag 'login', 'Username'
      = text_field_tag 'login', @login
    %li
      = label_tag 'password'
      = password_field_tag 'password', nil
    %li
      = label_tag 'remember_me', 'Remember me'
      = check_box_tag 'remember_me', '1', @remember_me
.buttons
  = submit_tag 'Login'
  = link_to 'Forgotten Password', forgot_password_path
War es hilfreich?

Lösung

Das ist etwas haml nicht, wenn Sie Ihr Abstand falsch bekommen haben. html2haml macht die meiste Arbeit für Sie, aber Sie müssen noch die Änderungen überprüfen. Das Problem in Sitzungen / new.html.haml ist, dass Sie einen do-Block ohne Inhalt beginnen:

- form_tag session_path do
%fieldset

Die ganze Fieldset verschachtelt werden sollte (eingekerbt) innerhalb dieses do Block. Da es überhaupt kein Inhalt ist, haml nicht in einer end Erklärung setzen, so dass, wenn die Datei interpretiert wird, erhalten Sie:

unexpected $end, expecting kEND

im Sinne von "ich das Ende der Datei ($ end) getroffen, ich erwartete das Ende Schlüsselwort (KEND)"

Andere Tipps

Wie gezeigt, hat die erste chunk% Körper eine Ebene mehr als% Kopf eingekerbt und% Kopf auf dem gleichen Niveau wie html%, von denen keines gut ist. Wenn es funktioniert, können Sie so etwas wie

erhalten
<html>
</html>
<head>
  ...
  <body>
  ...
  </body>
</head>

Ich denke, die meisten Browser auf, dass ersticken! ; -)

Im Allgemeinen bin ich kein Fan von html2haml, die, obwohl es hart versucht, scheint nicht der Lage zu sein, alles zu handhaben. Es sei denn, Sie ernsthaft großen Haufen von View-Dateien haben, würde ich geneigt sein, die Zeit Nacharbeiten die Dateien von Hand zu verbringen. Sie müssen sie alle auf einmal nicht, warum sie nicht einfach übersetzen, wie Sie gehen? Sie werden viel mehr über HAML auf diese Weise auch lernen. Genug, dass - hoffentlich -. Sie werden den ganzen Einzug finden, was instinktiv wird, nach dem Fortschritt zu beschleunigen beginnt

HAML verhält sich wirklich schlecht mit Problemen wie Tabs statt Leerzeichen, und falscher Einzug.

Meine Abhilfe (zumindest auf OSX mit Textmate) ist Textmate zu verwenden, haben Sie die HAML / SASS Bundle installiert . Dann benutze ich CMD- [um die Einrückung den Text, gefolgt von CMD-] erneut Einzug den Text richtig. Das entledigt irgendwelchen unsichtbaren Tabs und falsche Vertiefung plus deckt alle strukturellen Probleme.

Ein wenig genutzt Merkmal ist der ERB-Modus von html2haml.

html2haml -e < input.html > output.html.haml

Just-Ihre HAML etwa 95% des Weges dorthin kommt eher als 50% unter Verwendung von reinen html2haml

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top