Octopress-многоязычный с octopress-paginate не совместим с последним джекилом

Я пытаюсь объединить как осьминог-многоязычный, так и осьминог-пагинат, используя последнюю версию Jekyll. И это не работает должным образом.

В этом случае невозможно выполнить разбиение на страницы переведенного jekyll-страницы с помощью octopress-paginate.

Я пытаюсь добиться того, чтобы файл.rb был в папке _plugin, чтобы разрешить разбиение на страницы, т.е. сообщения, основанные на глобальной переменной, определенной в файле _config.yml. Это использует метод ruias alias_method для переопределения текущего поведения.

_config.yml (выдержка)

lang: en

_plugins /.yml (экстракт)

module Octopress
  module Paginate
    def paginate(page)
      defaults = DEFAULT.merge(page.site.config['pagination'] || {})
      if page.data['paginate'].is_a? Hash
        page.data['paginate'] = defaults.merge(page.data['paginate'])
      else
        page.data['paginate'] = defaults
      end
      if tag = Jekyll.configuration({})['lang']
        page.data['paginate']['tags'] = Array(tag)
      end
      if category = page.data['paginate']['category']
        page.data['paginate']['categories'] = Array(category)
      end
      old_paginate(page)
    end
    alias_method :old_paginate, :paginate
  end
end

Это мой макет: _pages/news.html (выдержка)

---
layout: default
title: news
permalink: /latest/news/
paginate:
  collection:   posts
  per_page:     4                       # maximum number of items per page
  limit:        false
  permalink:    :num/  # pagination path (relative to template page)
---
<!-- Page code goes here-->
{% assign news = paginator.posts | where:'category', 'articles' | where:'lang', site.lang %}
{% for post in news %}
<!-- News code goes here-->
{% endfor %}
<!-- Page code goes here-->
{% for page in (1..paginator.total_pages) %}
<!-- Paginator code goes here-->
{% endfor %}
<!-- Page code goes here-->

В приведенном выше примере я фильтрую посты по языку, но paginator не фильтрует по языку.

Цель здесь состоит в том, чтобы иметь возможность разбивать посты на основе тега lang в файле _config.yml.

Это возможно?

1 ответ

Решение

В конце концов это легко достижимо с помощью этого плагина https://github.com/sverrirs/jekyll-paginate-v2.

Вместо осьминога один. Просто вместо тега, названного 'lang', используется тег, называемый 'locale'.

Другие вопросы по тегам