예상 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>
의 자식이된다는 의미입니다.