39 Stimmen

Inline-Tag in haml

In HTML können Sie etwa so vorgehen

<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
  aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
  <em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin, 
  lectus eget varius tincidunt, felis sapien porta eros, non 
  pellentesque dui quam vitae tellus. 
</p>

Das ist schön, weil der Textabsatz im Markup immer noch wie ein Absatz aussieht. In haml sieht er wie folgt aus

%p
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
    aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
    %em Etiam nec nisi lorem
    , ac venenatis ipsum. In sollicitudin, 
    lectus eget varius tincidunt, felis sapien porta eros, non 
    pellentesque dui quam vitae tellus. 

Gibt es eine Möglichkeit, ein Tag in haml vollständig zu inlinen?

5 Stimmen

Ich finde es toll, dass der SO-Helfer nicht weiß, was er mit dem Schinkenblock machen soll.

0 Stimmen

Dies wäre ein guter Vorschlag für eine neue Funktion. Was wir wirklich schreiben wollen, ist etwas wie: %p I %em{love} you.

0 Stimmen

69voto

Andrew Vit Punkte 18653

Haml eignet sich hervorragend für strukturelles Markup, aber es ist nicht wirklich für Inline-Markup gedacht. Lesen: Haml ist schlecht für den Inhalt . Setzen Sie Ihre Inline-Tags einfach als HTML:

.content
  %p
    Lorem ipsum <em>dolor</em> sit amet.

Oder verwenden Sie eine Filter :

.content
  :markdown
    Lorem ipsum *dolor* sit amet.

23voto

Skäggiga Mannen Punkte 974

Ich weiß, das ist alt. Aber ich dachte, ich poste das mal, falls jemand hier landet. Sie können diese Art von Dingen auch in haml tun (und vielleicht mehr, was der OP gesucht hat?).

%p Here is some text I want to #{content_tag(:em, "emphasize!")}, and here the word #{content_tag(:strong, "BOLD")} is in bold. and #{link_to("click here", "url")} for a link.

Nützlich für Situationen, in denen bei der Eingabe in mehreren Zeilen Leerzeichen hinzugefügt werden, die nicht erwünscht sind Z.B. wenn man einen Link am Ende eines Satzes hat und nicht das dumme Leerzeichen zwischen dem Link und dem Punkt haben will. (oder wie im Beispiel des Auftraggebers ein Leerzeichen zwischen dem und dem Komma.

Aber übertreibe es nicht, wie ich es in dem Beispiel getan habe :)

10voto

Rafa de Castro Punkte 2474

Sie können HTML in jedes HAML einfügen, indem Sie

%p!= "Lorem ipsum <em>dolor</em> sit amet"

Der Operator != bedeutet, dass das, was die rechte Seite zurückgibt, ausgegeben wird.

6voto

Quv Punkte 2713

Als eine Mischung aus diesen netten Antworten von anderen, denke ich, dass Sie eine Helper-Methode in Ihrem application_helper.rb für einige Inline-Auszeichnungen, die Sie häufig verwenden würden. Sie müssen weder HTML mit HAML mischen, noch müssen Sie viel tippen.

In Ihrem Gehilfen;

def em(text)
  content_tag(:em, text)
end

#def em(text)
#  "<em>#{text}</em>".html_safe
#end

In Ihrem haml;

%p
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
    aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
    #{em 'Etiam nec nisi lorem'}, ac venenatis ipsum. In sollicitudin, 
    lectus eget varius tincidunt, felis sapien porta eros, non 
    pellentesque dui quam vitae tellus.

1voto

drjorgepolanco Punkte 5859

Es geht um die Einrückung:

%p
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 

  %em 
    Etiam nec nisi lorem, ac venenatis ipsum. In sollicitudin, lectus eget varius tincidunt, felis sapien porta eros, non pellentesque dui quam vitae tellus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X