首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MiddleMan中定义日历页的自定义标题

在MiddleMan中定义日历页的自定义标题
EN

Stack Overflow用户
提问于 2014-03-21 15:17:33
回答 3查看 294关注 0票数 1

我刚刚用middleman 3和middleman-blogging宝石建立了一个小的静态博客,目前正在润色一切。我从SEO的角度看我的网页,并且注意到我所有的日历页面都显示相同的标题(这对SEO,afaik来说是相当糟糕的)。

目前,我使用它在布局中生成标题标记(Slim模板引擎):

代码语言:javascript
复制
title
  | #{current_article.title unless current_article.nil?} 
  | #{ " | " unless current_article.nil?}
  | My blog name

对于文章来说,这很容易,因为我只需要在前端定义标题,但是我显然不能这样处理动态生成的日历页面。除非我可以在calendar.slim的前端使用变量,但到目前为止,我无法让任何东西工作。也许是通过config.rb文件?

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-26 21:08:08

最后,我选择了这样做:在我的calendar.slim和tag.slim模板中,我只是定义了一个在默认布局中使用的@title变量。在calendar.slim中,我使用内置变量yearmonthday构建标题字符串,在tag.slim中使用内置tagname变量。

代码语言:javascript
复制
[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不存在(然后我只使用我的博客名作为页面标题):

代码语言:javascript
复制
[layout.slim]

title 
      = "#{@title} | " unless @title.nil?
      | Pierre-Adrien Buisson : Le Blog !
票数 0
EN

Stack Overflow用户

发布于 2014-03-22 04:12:16

您可以使用yearmonthday变量集。您还可以像使用anywhere (current_resource.data)一样在日历模板中使用前端,您还可以在articles中访问该日历页面的文章,并循环它们从每个日历页面中提取数据。很多很多选择。

默认生成的calendar.html.erb有使用这些示例。

票数 0
EN

Stack Overflow用户

发布于 2014-05-31 19:00:52

只是建立在pabuisson's answer上。

您不能动态地设置前端变量。

代码语言:javascript
复制
current_page.data.foo = true
current_page.data.too #=> nil

前额也没有模板

代码语言:javascript
复制
---
title: <%= "foo" %>
---
<%= current_page.data.title %> == <%%= "foo" %>

所以我所做的就是在我的布局中首先检查例如变量,然后回到前端。

代码语言:javascript
复制
<title><%= @title || current_page.data.title %></title>

这样,我可以在前端设置大部分变量,但是当我需要一个动态变量时,我可以使用一个实例变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22562665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档