我正在用英语和西类牙语建立一个博客。我的目的是直接从基本 url 访问西类牙语的默认内容:http://blog/
和来自 http://blog/en
的英文内容.
我已经有了所有代码,在通过检查我在每个帖子前端设置的 locale
变量进行分页时,仅以英语或西类牙语循环浏览帖子。虽然我的博客文章没有相同的文件名,但我在前面使用另一个变量链接它们,称为 ref
。
所以对于帖子 A,用西类牙语,帖子 B,用英语,我会有这样的东西:
2018-01-01-post-A.md
---
locale: en
ref: my-ref
---
foo
2019-01-04-post-B.md:
---
locale: es
ref: my-ref
---
bar
我的问题是:我应该把我的英文帖子放在哪里,以便可以通过 http://blog/en/post-name/
访问它们?
这些帖子除了语言之外已经有了它们的类别,所以将它们放在 /en/_posts
中是行不通的,就像在 _config.yml
中指定永久链接一样像 permalink:/:categories/:year/:month/:title/
这样的东西会让 url 看起来像 http://blog/en/category-1/category-2/后缀名
.
在每个英文帖子中定义永久链接也不是一种选择,因为我希望它们是从帖子数据(日期和标题)生成的。
我是否遗漏了一些可以让我根据需要使用 /en/
作为 URL 的一部分的东西?
菜单语言选择器和分页都有效,只显示所选语言的帖子。但是,当将鼠标悬停在英文帖子上时,虽然我将它们放在 _posts/en
中,但子文件夹不会成为 url 的一部分。当我尝试相反的方法时,也会发生同样的情况,在项目根目录中创建一个名为 en
的新文件夹,并在其中添加所有英文帖子,给我留下类似 en/_posts/
最佳答案
你可以设置一个 frontmatter default用于您的英文页面。
# _config.yml
defaults:
-
scope:
locale: "en" # To sort by locale. You could also sort by path.
type: "posts"
values:
permalink: en/:categories/:year/:month/:title/
关于ruby - 包含子目录作为 Jekyll 的帖子 URL 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54189226/