在中间人中使用全局变量?即网站标题
Using global variables in middleman? i.e. Website title
我正在尝试找到一种在中间人中使用全局变量的方法,即设置网站名称,如果当前页面没有标题或在像 <meta name="application-name" content="Site name">
这样我就不用每次都手动写了。问题是,目前我只能获得当前页面标题,如 <%= current_page.data.title || "Site Name" %>
,其中每个布局都不同,而不是 "Site Name"
我想传递一个存储在某个地方的全局变量文件,每个页面都可以访问。
我已经有一段时间没有使用 Middleman 了,但我认为这样做的方法是在 config.rb
中使用 set
,例如:
set :site_title, "Site Name"
然后在您的模板中,您可以使用 settings
对象访问它:
<%= current_page.data.title || config.site_title %>
或者,您可以创建一个辅助方法,如 Custom Extensions 中所述,例如:
class MyFeature < Middleman::Extension
SITE_TITLE = "Site Name"
helpers do
def page_title
current_page.data.title || SITE_TITLE
end
end
end
在 config.rb
中激活扩展后,您可以在模板中执行此操作:
<%= page_title %>
然后在您的模板中您可以
您可以使用 data files。只需在项目根级别的 data 文件夹中创建一个名为 site.json 的文件。然后您可以使用数据路径访问它。
例如:
data/site.json:
{
"title": "Foo Test"
}
partials/head.html.erb(或任何其他 partial/layout/page)
<title><%= current_page.data.title || data.site.title %></title>
我刚刚对此进行了测试,它适用于使用 Middleman 3.4 的我。
我正在尝试找到一种在中间人中使用全局变量的方法,即设置网站名称,如果当前页面没有标题或在像 <meta name="application-name" content="Site name">
这样我就不用每次都手动写了。问题是,目前我只能获得当前页面标题,如 <%= current_page.data.title || "Site Name" %>
,其中每个布局都不同,而不是 "Site Name"
我想传递一个存储在某个地方的全局变量文件,每个页面都可以访问。
我已经有一段时间没有使用 Middleman 了,但我认为这样做的方法是在 config.rb
中使用 set
,例如:
set :site_title, "Site Name"
然后在您的模板中,您可以使用 settings
对象访问它:
<%= current_page.data.title || config.site_title %>
或者,您可以创建一个辅助方法,如 Custom Extensions 中所述,例如:
class MyFeature < Middleman::Extension
SITE_TITLE = "Site Name"
helpers do
def page_title
current_page.data.title || SITE_TITLE
end
end
end
在 config.rb
中激活扩展后,您可以在模板中执行此操作:
<%= page_title %>
然后在您的模板中您可以
您可以使用 data files。只需在项目根级别的 data 文件夹中创建一个名为 site.json 的文件。然后您可以使用数据路径访问它。
例如:
data/site.json:
{
"title": "Foo Test"
}
partials/head.html.erb(或任何其他 partial/layout/page)
<title><%= current_page.data.title || data.site.title %></title>
我刚刚对此进行了测试,它适用于使用 Middleman 3.4 的我。