我正在建立英语和西班牙语两种语言的博客。我的意图是直接从基本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/
之类的内容时,网址看起来像http://blog/en/category-1/category-2/post-name
。
在每个英文帖子中定义一个永久链接也是一种选择,因为我希望它们是根据帖子数据(日期和标题)生成的。
是否缺少我想使用的/en/
作为URL的一部分?
菜单语言选择器和分页功能均只显示所选语言的帖子。但是,当将鼠标悬停在英语帖子上时,尽管我将它们放在_posts/en
中,但该子文件夹不会成为URL的一部分。当我尝试相反的操作时,在项目根目录中创建一个名为en
的新文件夹并在其中添加所有英文帖子的情况下,也会出现类似en/_posts/
答案 0 :(得分:2)
您可以为英语页面设置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/