ebi*_*461 10 pagination nunjucks yaml-front-matter eleventy
尝试使用数据设置分页,其中{{ title }}
in是projects.json中定义的当前<head><title>{{ title }}</title></head>
页面的标题
假设可以这样做:
# main.njk
<head>
<title>{{ title }}</title>
</head>
Run Code Online (Sandbox Code Playgroud)
# page.njk
---
layout: main.njk
pagination:
data: projects
size: 1
alias: project
permalink: "work/{{ project.title | slug }}/"
title: {{ project.title }}
Run Code Online (Sandbox Code Playgroud)
可能误解了一些基本原理,但{{ title }}
结果却是[object, object]
这样。固定链接工作正常...
Dee*_*pta 10
现在eleventyComputed
可以使用了
# main.njk
<head>
<title>{{ title }}</title>
</head>
Run Code Online (Sandbox Code Playgroud)
# page.njk
---
layout: main.njk
pagination:
data: projects
size: 1
alias: project
permalink: "work/{{ project.title | slug }}/"
eleventyComputed:
title: "{{ project.title }}"
Run Code Online (Sandbox Code Playgroud)
{{ project.title }}
实际上可以在主模板中访问项目标题main.njk
,就像在 中为该项目定义的任何其他项目数据一样projects.json
。
对于任何其他页面(未在 中定义为对象projects.json
),可以使用条件语句:
<title>{{ project.title if project.title else title}}</title>
以便:
# main.njk
<head>
<title>{{ project.title if project.title else title}}</title>
</head>
Run Code Online (Sandbox Code Playgroud)
# page.njk
---
layout: main.njk
pagination:
data: projects
size: 1
alias: project
permalink: "work/{{ project.title | slug }}/"
---
Run Code Online (Sandbox Code Playgroud)
# other_page.njk
---
layout: main.njk
title: Other Page
---
Run Code Online (Sandbox Code Playgroud)
# projects.json
[
{
"title": "Project 1"
},
{
"title": "Project 2"
}
]
Run Code Online (Sandbox Code Playgroud)
输出:
# work/project-1/
<head>
<title>Project 1</title>
</head>
Run Code Online (Sandbox Code Playgroud)
# work/project-2/
<head>
<title>Project 2</title>
</head>
Run Code Online (Sandbox Code Playgroud)
# other-page/
<head>
<title>Other Page</title>
</head>
Run Code Online (Sandbox Code Playgroud)