diff --git a/lib/octopress-multilingual.rb b/lib/octopress-multilingual.rb index cff2b31..c28446e 100644 --- a/lib/octopress-multilingual.rb +++ b/lib/octopress-multilingual.rb @@ -75,7 +75,7 @@ def posts_by_language(lang=nil) @posts_by_language ||= begin posts = site.posts.reverse.select(&:lang).group_by(&:lang) ## Add posts that crosspost to all languages - + posts.each do |lang, lang_posts| if lang != main_language lang_posts.concat(crossposts).sort_by!(&:date).reverse! @@ -89,6 +89,24 @@ def posts_by_language(lang=nil) @posts_by_language[lang] || [] end + def pages_by_language(lang=nil) + @pages_by_language ||= begin + pages = site.pages.reverse.select(&:lang).group_by(&:lang) + ## Add pages that crosspost to all languages + ## commenting out as this was causing compile error by Jekyll; (my) Pages do not have a :date + #pages.each do |lang, lang_pages| + # if lang != main_language + # lang_pages.concat(crossposts).sort_by!(&:date).reverse! + # end + #end + + pages[main_language] = main_language_pages + pages + end + + @pages_by_language[lang] || [] + end + def crossposts site.posts.select(&:crosspost_languages) end @@ -99,10 +117,20 @@ def main_language_posts end end + def main_language_pages + site.pages.reverse.select do |page| + page.lang.nil? || page.lang == main_language + end + end + def posts_without_lang @posts_without_lang ||= site.reject(&:lang) end + def pages_without_lang + @pages_without_lang ||= site.reject(&:lang) + end + def articles_by_language(lang=nil) @articles_by_language ||= begin articles = {} @@ -149,7 +177,7 @@ def metadata_index_by_language(index) languages.each do |lang| indexes[lang] = {} site_indexes.each do |index, posts| - posts = posts.select do |p| + posts = posts.select do |p| p.lang == lang || (lang == main_language && p.lang.nil?) || p.crosspost_languages end @@ -172,8 +200,9 @@ def tags_by_language(lang=nil) def page_payload(lang) payload = { - 'site' => { + 'site' => { 'posts' => posts_by_language(lang), + 'pages' => pages_by_language(lang), 'linkposts' => linkposts_by_language(lang), 'articles' => articles_by_language(lang), 'categories' => categories_by_language(lang), @@ -194,6 +223,7 @@ def site_payload @payload ||= { 'site' => { 'posts_by_language' => posts_by_language, + 'pages_by_language' => pages_by_language, 'linkposts_by_language' => linkposts_by_language, 'articles_by_language' => articles_by_language, 'categories_by_language' => categories_by_language, diff --git a/lib/octopress-multilingual/jekyll.rb b/lib/octopress-multilingual/jekyll.rb index bda33e4..fdd47d4 100644 --- a/lib/octopress-multilingual/jekyll.rb +++ b/lib/octopress-multilingual/jekyll.rb @@ -21,6 +21,10 @@ def posts_by_language(lang=nil) Octopress::Multilingual.posts_by_language(lang) end + def pages_by_language(lang=nil) + Octopress::Multilingual.pages_by_language(lang) + end + def articles_by_language(lang=nil) Octopress::Multilingual.articles_by_language(lang) end @@ -148,4 +152,3 @@ def previous end end end -