2017-01-18 1 views
0

들여 쓰기 누군가는 HAML 코드를 들여 쓰기 방법을 이해를 도와 줄 수있는 적절`(다른 많은 템플릿 등) HAML의 주요 목표는 혼란을 줄이기 위해이해 HAML

.wrapper_with_padding 
#docs.clearfix 
- unless @docs.blank 
    - @docs.each do |doc| 
    %a{ href: (url_for [doc])} 
    .doc 
    %p.title= doc.title 
    %p.date= time_ago_in_words(doc.created_at) 
    %p.content= truncate(doc.content, length:50) 

    - else 
%h2 Create Doc! 
%p Start Creating Documents and Organizing your life! 
%button= link_to "Create Doc", new_doc_path 

답변

2

; 모든 괄호와 괄호 및 이것 저것 완전히 제거됩니다. 그러나 사물이 시작되고 끝날 때 (컴퓨터는 똑똑하고 똑똑하지는 않습니다) 말할 필요가 있습니다. 대신에 들여 쓰기를 사용하십시오. 태그 안에 무언가를 쓸 때마다 들여 쓰기하십시오! 당신이 그 꼬리표로 끝내면, 들리지 않는다! 예를 들어

:

<p>This is a <small>very small</small> paragraph</p>Yay! 

%p 
    This is a 
    %small 
    very small 
    paragraph 
Yay! 

당신이 태그를 열 때마다, 다음 줄이 들여 쓰기되며, 즉시 해당 태그를 닫습니다, 우리가까지 뒤로 이동된다 왼쪽. if s와 동일!

3

예상 html을 게시하는 것이 더 쉬울 것입니다. 여기서 하나의 가능성이다

- docs = %w[google.com yahoo.com apple.com] 

.wrapper_with_padding 
    #docs.clearfix 
    - unless docs.empty? 
    - docs.each do |doc| 
     %a{ href: (doc) } link text 
     .doc 
     %p.title= "some title" 
     %p.date= "some date" 
     %p.content= "some content" 

    - else 
    %h2 Create Doc! 
    %p Start Creating Documents and Organizing your life! 
    %button{href: "http://www.example.com"} Create Doc 

출력 : 문서 어레이가 비어 있으면

<div class='wrapper_with_padding'> 
    <div class='clearfix' id='docs'></div> 
    <a href='google.com'>link text</a> 
    <div class='doc'> 
    <p class='title'>some title</p> 
    <p class='date'>some date</p> 
    <p class='content'>some content</p> 
    </div> 
    <a href='yahoo.com'>link text</a> 
    <div class='doc'> 
    <p class='title'>some title</p> 
    <p class='date'>some date</p> 
    <p class='content'>some content</p> 
    </div> 
    <a href='apple.com'>link text</a> 
    <div class='doc'> 
    <p class='title'>some title</p> 
    <p class='date'>some date</p> 
    <p class='content'>some content</p> 
    </div> 
</div> 

그리고

:

루비 블록

:
<div class='wrapper_with_padding'> 
    <div class='clearfix' id='docs'></div> 
    <h2>Create Doc!</h2> 
    <p>Start Creating Documents and Organizing your life!</p> 
    <button href='http://www.example.com'>Create Doc</button> 
</div> 

haml docs 따르면

Ruby 블록은 XHTML 태그와 마찬가지로 Haml에서 명시 적으로 닫을 필요가 없습니다. 오히려 들여 쓰기를 기반으로 자동으로 닫힙니다. A Ruby 평가 명령 이후에 들여 쓰기가 증가 할 때마다 블록이 시작됩니다. 들여 쓰기가 줄어들면 끝납니다 ( 은 else 절이 아닌 것과 비슷합니다).

if/unless 문 뒤에 루비 코드로 블록을 시작하려면 코드 표시기 -에서 들여 쓰기해야합니다. 그리고 each() 문 다음에 또 다른 블록을 시작하려면 각() 행의 코드 표시기 -에서 들여 쓰기해야합니다. 블록을 완료하면 블록을 시작한 코드 표시기 인 -의 레벨로 되돌아갑니다.

요소를 생성하는 haml 행 을 검색하여 이전 haml 행이 요소를 만든 위치를 확인합니다. 현재 햄 줄이 이전 햄 줄에서 들여 쓰기되어 있다면, 현재 요소는 이전 요소의 자식이됩니다. 얼마나 들여 쓰기가되는지는 중요하지 않습니다. 예를 들어 블록으로 제어하려면 내 예제에서 <a> haml을 세 번 들여 쓰기해야합니다. 그리고 <a> haml이 #doc.clearfix haml에서 들여 쓰기되어 <div>을 생성하기 때문에 <a> 태그가 <div>의 자식이된다는 의미입니다.