2017-09-07 10 views
0

最新のJekyllを使用して、octopress-multilingualとoctopress-paginateの両方を統合しようとしています。そして、これは正しく動作していません。Octopress-Paginateを使用したOctopress-Multilingualは、最新のジキールと互換性がありません

この場合、octopress-paginateを使用して翻訳されたジキールページにページを設定することはできません。

私が達成しようとしているのは、_config.ymlファイルで定義されたグローバル変数に基づいてページングを許可するために_pluginフォルダに.rbファイルを置くことです。これはrubyメソッド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--> 

上記の例では、言語による投稿をフィルタリングしていますが、ページ設定は言語別にフィルタリングされていません。

ここでの目標は、_config.ymlファイルのlangタグに基づいて投稿にページを設定できるようにすることです。

これは可能ですか?

+0

残念ながら[Octopress](https://github.com/octopress/octopress)は死んだプロジェクトのようです。 1年半以上はそれ以上のことは起こっていないし、最新バージョンは完全には醸造されていない。ちょっとしたことがうまくいきません:-( – axiac

+0

そうかもしれませんが、少なくとも可能でなければならないでしょうか? – ccamacho

答えて

0

これは、このプラグインhttps://github.com/sverrirs/jekyll-paginate-v2を使用すると簡単に達成できます。

オクトプレース1の代わりに。 'lang'という名前のタグの代わりに 'locale'というタグを使用するだけです。

関連する問題