Sam*_*mer 5 ruby liquid jekyll
我正在建立一个英语和西班牙语的博客。我的目的是直接从基本 url: 访问西班牙语的默认内容:http://blog/和来自http://blog/en.
在分页时,我已经拥有了所有代码来循环浏览仅用英语或西班牙语编写的帖子,方法是检查locale我在每个帖子前面设置的变量。虽然我的博客文章没有相同的文件名,但我在前面使用另一个名为ref.
因此,对于西班牙语的帖子 A 和英语的帖子 B,我将有以下内容:
2018-01-01-post-A.md
---
locale: en
ref: my-ref
---
foo
Run Code Online (Sandbox Code Playgroud)
2019-01-04-post-B.md:
---
locale: es
ref: my-ref
---
bar
Run Code Online (Sandbox Code Playgroud)
我的问题是:我应该把我的英文帖子放在哪里,以便可以通过 访问它们http://blog/en/post-name/?
这些帖子除了他们的语言之外已经有了他们的类别,所以把它们放在里面/en/_posts是行不通的,因为当将永久链接指定_config.yml为类似的东西permalink: /:categories/:year/:month/:title/会使 url 看起来像http://blog/en/category-1/category-2/post-name.
在每个英文帖子中定义固定链接也不是一种选择,因为我希望它们是从帖子数据(日期和标题)中生成的。
有什么我遗漏的东西可以让我根据需要/en/用作 URL 的一部分吗?
菜单语言选择器和分页都可以工作,只显示所选语言的帖子。但是,当将鼠标悬停在英文帖子上时,虽然我将它们放在了里面_posts/en,但子文件夹不会成为 url 的一部分。当我尝试相反的方法时也会发生同样的情况,在名为的项目根目录中创建一个新文件夹并在其中en添加所有英文帖子,给我留下类似的东西en/_posts/
小智 4
您可以为您的英文页面设置默认的 frontmatter。
# _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/
Run Code Online (Sandbox Code Playgroud)