2015-10-20 35 views
0

在中间人,我想知道如何将头标签添加到我的基本布局从子布局。在中间人如何添加一个孩子布局的头标签?

我有一个layout.erb和一个blog-layout.erb。

我通过将额外的项目放在布局的YAML frontmatter中来解决Jekyll中的问题,并且我喜欢这种方法。

我一直试图在Middleman重新创建它,但它一直没有工作。

我有我的博客,layout.erb这样的:

--- 
head: 
- -<%= feed_tag :atom, "/blog/feed.xml", title: "Atom Feed" %>' 
--- 

<% wrap_layout :layout do %> 
<div id="main" role="main"> 
    <%= yield %> 
</div> 
<% end %> 

然后在我的layout.erb我想这样做:

<% current_page.data.head.each do |headItem| %> 
    < % = headItem %> 
< % end %> 

我试图从配置访问布局的frontmatter。 RB,但我没有得到那个工作。

这里是我的尝试之一:

with_layout :bloglayout do 
    page "/blog/*", :headers => config[:bloglayout].head 
end 

我无法揣摩出全球布局存储以及如何访问它们。

回答

0

Padrino的application helpercontent_for典雅的处理将头来自包装布局的标签。

我的布局:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" > 
    <%= yield_content :head %> 

我bloglayout:

<% wrap_layout :layout do %> 

    <%= yield %> 

    <% content_for :head do %> 
     <%= feed_tag :atom, "/blog/feed.xml", :title => "Atom Feed tag" %> 
    <% end %> 
<% end %> 

我config.rb

activate :blog do |blog| 
    blog.layout = "bloglayout" 
0

我还没有弄清楚如何通过孩子布局前置物。

我所做的就是创建一个数据文件:blogmetaheaders.yml

headers: > 
<link rel="alternate" type="application/atom+xml" title="Atom Feed" href="/blog/feed.xml" /> 

然后在我的layout.rb我有这样的代码注入头:

<% if current_page.path.start_with? 'blog' 
     data.blogmetaheaders.each do |headerItem, headerValue | %> 
     <%= headerValue %> 
     <% end %> 
     <% end %> 
相关问题