我刚刚用middleman 3和middleman-blogging宝石建立了一个小的静态博客,目前正在润色一切。我从SEO的角度看我的网页,并且注意到我所有的日历页面都显示相同的标题(这对SEO,afaik来说是相当糟糕的)。
目前,我使用它在布局中生成标题标记(Slim模板引擎):
title
| #{current_article.title unless current_article.nil?}
| #{ " | " unless current_article.nil?}
| My blog name对于文章来说,这很容易,因为我只需要在前端定义标题,但是我显然不能这样处理动态生成的日历页面。除非我可以在calendar.slim的前端使用变量,但到目前为止,我无法让任何东西工作。也许是通过config.rb文件?
谢谢你的帮助!
发布于 2014-03-26 21:08:08
最后,我选择了这样做:在我的calendar.slim和tag.slim模板中,我只是定义了一个在默认布局中使用的@title变量。在calendar.slim中,我使用内置变量year、month和day构建标题字符串,在tag.slim中使用内置tagname变量。
[calendar.slim]
- case page_type
- when 'month'
- date = date_to_fr Date.new(year, month, 1).strftime('%B %Y')
- when 'year'
- date = year
- @title = "#{date} - Archives"
(...)然后在布局中,我使用以下代码显示我的@title变量,后面跟着我的博客名,除非@title不存在(然后我只使用我的博客名作为页面标题):
[layout.slim]
title
= "#{@title} | " unless @title.nil?
| Pierre-Adrien Buisson : Le Blog !发布于 2014-03-22 04:12:16
您可以使用year、month和day变量集。您还可以像使用anywhere (current_resource.data)一样在日历模板中使用前端,您还可以在articles中访问该日历页面的文章,并循环它们从每个日历页面中提取数据。很多很多选择。
默认生成的calendar.html.erb有使用这些示例。
发布于 2014-05-31 19:00:52
只是建立在pabuisson's answer上。
您不能动态地设置前端变量。
current_page.data.foo = true
current_page.data.too #=> nil前额也没有模板
---
title: <%= "foo" %>
---
<%= current_page.data.title %> == <%%= "foo" %>所以我所做的就是在我的布局中首先检查例如变量,然后回到前端。
<title><%= @title || current_page.data.title %></title>这样,我可以在前端设置大部分变量,但是当我需要一个动态变量时,我可以使用一个实例变量。
https://stackoverflow.com/questions/22562665
复制相似问题