В посреднике, как добавить теги заголовка из дочернего макета?

В посреднике мне интересно, как добавить теги заголовка в мой базовый макет из вспомогательного макета.

У меня есть layout.erb и blog-layout.erb.

Я подошел к проблеме в Jekyll, поместив дополнительные элементы в переднюю часть макета YAML, и мне нравится такой подход.

Я пытался воссоздать это в Middleman, но это не сработало.

У меня есть мой blog-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 %>

Я попытался получить доступ к переднему плану макета из config.rb, но у меня это тоже не сработало.

Вот одна из моих попыток:

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

Я не мог понять, где в глобальном масштабе хранятся макеты и как получить к ним доступ.


person David Silva Smith    schedule 20.10.2015    source источник


Ответы (2)


Я еще не понял, как это сделать с помощью переднего плана дочернего макета.

Что я сделал, так это создал файл данных: 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 %>
person David Silva Smith    schedule 21.10.2015

помощник приложения от Padrino content_forэлегантно обрабатывает добавление тегов заголовка из обернутого макета.

Мой макет:

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

Мой макет блога:

<% wrap_layout :layout do %>

    <%= yield %>

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

Мой конфиг.рб

activate :blog do |blog|
  blog.layout = "bloglayout"
person David Silva Smith    schedule 17.12.2015