2015-08-02 3 views
1

Не лучший титул, но я честно не уверен, как правильно объяснить, что я ищу.Использование статьи frontmatter при итерации в блоге Middleman

Итак, я использую блог Миддман, чтобы создать свой блог. В любом случае, я использую frontmatter для передачи css, которые изменяют внешний вид каждой страницы по отдельности. Я использую 4 переменные, link_color, text_color, bg_link. Так что я хочу, чтобы повторно использовать ту же самую информацию о фронте в файле layout.html.erb.

Так layout.html.erb стандартная

<% if paginate && num_pages > 1 %> 
    <p>Page <%= page_number %> of <%= num_pages %></p> 

    <% if prev_page %> 
     <p><%= link_to 'Previous page', prev_page %></p> 
    <% end %> 
    <% end %> 

    <% page_articles.each_with_index do |article, i| %> 
    <li class="article_summary"> 
     <h1><%= link_to article.title, article, id: "#{i}" %></h1> 
    </li> 
    <% end %> 

    <% if paginate %> 
    <% if next_page %> 
     <p><%= link_to 'Next page', next_page %></p> 
    <% end %> 
    <% end %> 

То, что я пытаюсь сделать, это для каждой статьи в этом итераторе, если изделие имеет bg_color frontmatter затем использовать это и изменить цвет article.title если нет, то ничего не делайте. В настоящее время, если я попытаюсь что-то вроде:

<style> 
<% if article.data.bg_color? %> 
    .article_summary a#<%= i %>{ 
    color: rgb(<%=article.data.bg_color %>); 
    } 
    <% end %> 
</style> 

Я делаю это так, потому что мой блог живет на Github.

В настоящее время это работает, но поскольку это просто простая итерация, он дает каждой статье тот же цвет, но не на основе статьи. Поэтому я пытаюсь найти лучший способ использовать индекс как своего рода идентификатор, чтобы они были нацелены индивидуально.

Возможно, изменение li из класса в id, состоящее из индекса, но тогда я не смогу применить глобальный стиль из scss в папке stylesheet no?

ответ

0

Я нашел грязный метод, который работает.

<% page_articles.each_with_index do |article, i| %> 
    <li class="article_summary" id="test_<%=i %>"> 
     <h1><%= link_to article.title, article %></h1> 
     <style> 
      <% if article.data.bg_color? %> 
       #test_<%=i%> a{ 
       color: <%=article.data.bg_color %>; 
      } 
      <% end %> 
     </style> 
    </li> 
    <% end %> 

Довольно много добавили «test_» к идентификатору (до этого я просто делал сам индекс) и альт!