middleman 변수 config.rb 및 페이지의 가시성
문제
변수의 가시성에 대해 뭔가를 놓치고 있습니다. 내 config.rb에서는 데이터 구조를 사용하여 동적 페이지를 생성합니다.
@pages = [
{
id: "cookies",
title: "Happy Chocolate Chip Cookies",
quote: "These cute cookies are full of sweet chocolate and ready to give you energy!",
content: "Orecchini a monachella. Realizzati in fimo, dipinti a mano e rivestiti con vernice lucida."
},
....]
@pages.each do |p|
page "/creations/#{p[:id]}.html", :proxy => "item-template.html", :ignore => true do
@tile = p
end
end
.
페이지 생성은 잘됩니다.하지만 ..
생성 된 페이지에 동적 링크를 제공하기 위해이 데이터 구조에 액세스하려면 어떻게해야합니까?다음 코드를 사용하여 인덱스 페이지 (IT Creations.html)를 생성 할 수 있습니다.
<ul>
<% @pages.each do |tile| %>
<li><a href="creations/<%= tile[:id]%>.html">
<%= tile[:title] %>
</a></li>
<% end %>
</ul>
. 해결책
사용자 지정 도우미를 만들 필요가 없으면 YAML 데이터 파일을 사용하여 템플리트를 채우고 링크 목록을 생성 할 수 있습니다. 설명하겠습니다.
원본과 빌드 디렉터리와 동일한 레벨에서 데이터 디렉토리를 만들지 확인하십시오. IE :
- 빌드
- 소스
- 데이터
내부에서는 "pages.yml"(예 :)이라는 파일을 만듭니다.
이 파일을 구체적으로 형식화해야하므로주의해야합니다 (또는 "NoFollow noreferrer"> Yaml Parser 누락 된 쉼표 또는 이스케이프 된 인용문과 같은 오류가 없는지 확인하려면
config.rb 파일의 데이터를 사용하여 예제는 다음과 같습니다.
.- id: "cookies" title: "Happy Chocolate Chip Cookies" quote: "These cute cookies are full of sweet chocolate and ready to give you energy!" content: "Orecchini a monachella. Realizzati in fimo, dipinti a mano e rivestiti con vernice lucida." - id: "bacon" title: "Smoked bacon bits" quote: "everything tastes better with bacon!" content: "blah"
등 ... ...
이제는 config.rb 파일에서 @ pages.each do | p | 을 data.pages.each do | p | 로 바꿉니다.
data.pages.each.each 루프 새로 생성 된 yaml 파일의 각 항목을 통해
다음과 같이 인덱스 파일 (Creations.html)에서 동일한 파일을 참조하십시오.
.<ul> <% data.pages.each do |tile| %> <li><a href="creations/<%= tile[:id]%>.html"> <%= tile[:title] %> </a></li> <% end %> </ul>
이것은 도움이되기를 바랍니다. 행운을 빌어!
다른 팁
파일에서 @pages
파일의 creations.erb
데이터 구조를 리턴하는 도우미를 추가 할 수 있습니다.나는config.rb
파일에 추가 :
helpers do
def dynamic_pages()
@pages
end
end
.
및 creations.erb
에서 다음과 같습니다.
<ul>
<% dynamic_pages.each do |tile| %>
<li><a href="creations/<%= tile[:id]%>.html">
<%= tile[:title] %>
</a></li>
<% end %>
</ul>
.
및 동적 페이지 (!)에서 동적 페이지를 참조하려면 도우미가 HTML을 생성 할 수 있고 ... NAH를 호출 할 수 있습니다.