如何在第一页而不是“/blog”中显示我的帖子并维护其他子文件夹,如“/about”和“/projects”
How to show my posts in the first page and not in the "/blog" and maintaining other sub folders working like "/about" and "/projects"
我正在尝试使用 Lektor 作为我的博客平台,但我 运行 遇到了一些问题。
遵循 guide 我可以使一切正常。当我尝试将博客设为首页但没有“/blog”时,我的问题就开始了。
如果我在页面模板中查询博客子项,则分页不起作用。
如果我使用 "replaced_with = site.query('/blog')" 创建页面的 blog-post 子页面,初始页面呈现良好,但如果我尝试访问任何页面,则会出现“未找到”消息。
我的目标是在第一页显示我的 post,并在根文件夹中有其他文件夹,例如“/about”或“/projects”。
我遇到了同样的问题。我尝试了几件事,其中 none 成功了。
我最终进行了页面重定向。 Lektor 尚不支持重定向,它们是 working on it.
我创建了 home.html
以便它重定向到 /blog
。
<meta http-equiv="refresh" content="0; url=http://example.com/blog/" />
这已被 WWC 弃用。在 lektor 支持重定向之前,这是要走的路。
我明白了!方法是在页面模型的 "items" 键中设置查询。
像这样:
[model]
name = Page
label = {{ this.title }}
hidden = yes
protected = yes
[fields.title]
label = Title
type = string
[pagination]
enabled = yes
per_page = 10
items = site.query('/blog')
在那之后,它就像一个魅力。 :)
我就是这样做的。
[model]
name = Blog
label = {{ this.title }}
hidden = yes
[fields.title]
label = Title
type = string
[children]
model = blog-post
order_by = -pub_date, title
[pagination]
enabled = yes
per_page = 5
items = this.children.filter(F._model == 'blog-post')
我最近的用例有点不同。我不想要首页上的博客,而是 /about
的副本,使用的模板是 page.html
.
因此,仅如 所示替换分页 items
(N.B。我过去也将其用于博客)是行不通的。我需要替换我已经成功完成的整个 this
变量。
为了实现这一点,我在 page.html
模板的顶部(好吧,几乎是在 {% extends %}
行之后)添加了以下内容:
{% if this.path == '/' %}
{% set this = site.get('/about') %}
{% endif %}
效果很好,我认为它更通用、更优雅。
我想,为了让它变得更好,我将 '/about'
放入数据包并从那里获取数据源。此外,我可以在数据包中包含 / = /about
的整个映射,以说明未指定数量的别名。
我正在尝试使用 Lektor 作为我的博客平台,但我 运行 遇到了一些问题。
遵循 guide 我可以使一切正常。当我尝试将博客设为首页但没有“/blog”时,我的问题就开始了。
如果我在页面模板中查询博客子项,则分页不起作用。
如果我使用 "replaced_with = site.query('/blog')" 创建页面的 blog-post 子页面,初始页面呈现良好,但如果我尝试访问任何页面,则会出现“未找到”消息。
我的目标是在第一页显示我的 post,并在根文件夹中有其他文件夹,例如“/about”或“/projects”。
我遇到了同样的问题。我尝试了几件事,其中 none 成功了。
我最终进行了页面重定向。 Lektor 尚不支持重定向,它们是 working on it.
我创建了 home.html
以便它重定向到 /blog
。
<meta http-equiv="refresh" content="0; url=http://example.com/blog/" />
这已被 WWC 弃用。在 lektor 支持重定向之前,这是要走的路。
我明白了!方法是在页面模型的 "items" 键中设置查询。
像这样:
[model]
name = Page
label = {{ this.title }}
hidden = yes
protected = yes
[fields.title]
label = Title
type = string
[pagination]
enabled = yes
per_page = 10
items = site.query('/blog')
在那之后,它就像一个魅力。 :)
我就是这样做的。
[model]
name = Blog
label = {{ this.title }}
hidden = yes
[fields.title]
label = Title
type = string
[children]
model = blog-post
order_by = -pub_date, title
[pagination]
enabled = yes
per_page = 5
items = this.children.filter(F._model == 'blog-post')
我最近的用例有点不同。我不想要首页上的博客,而是 /about
的副本,使用的模板是 page.html
.
因此,仅如 items
(N.B。我过去也将其用于博客)是行不通的。我需要替换我已经成功完成的整个 this
变量。
为了实现这一点,我在 page.html
模板的顶部(好吧,几乎是在 {% extends %}
行之后)添加了以下内容:
{% if this.path == '/' %}
{% set this = site.get('/about') %}
{% endif %}
效果很好,我认为它更通用、更优雅。
我想,为了让它变得更好,我将 '/about'
放入数据包并从那里获取数据源。此外,我可以在数据包中包含 / = /about
的整个映射,以说明未指定数量的别名。