Включить подкаталог как часть почтового URL Jekyll - PullRequest
0 голосов
/ 15 января 2019

Я строю блог на английском и испанском языках. Мое намерение - получить доступ к содержимому по умолчанию на испанском языке напрямую с базового 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/post-name .

Определение постоянной ссылки в каждом английском сообщении также не вариант, так как я хотел бы, чтобы они генерировались из данных сообщения (дата и заголовок).

Есть ли что-то, чего мне не хватает, что позволило бы мне использовать /en/ как часть URL, как я хочу?

Работает как выбор языка меню, так и разбиение на страницы, отображая только сообщения на выбранном языке. Однако при наведении указателя мыши на сообщения на английском языке, хотя я помещаю их в _posts/en, подпапка не становится частью URL-адреса. То же самое происходит, когда я пробую противоположное: создаю новую папку в корневом каталоге проекта с именем en и добавляю в нее все английские сообщения, оставляя мне что-то вроде en/_posts/

1 Ответ

0 голосов
/ 15 января 2019

Вы можете установить 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/
...