mirror of
https://github.com/kremalicious/blog.git
synced 2024-11-25 03:14:01 +01:00
downgrade jekyll for now to solve build error with category pagination
This commit is contained in:
parent
fbf8603d79
commit
945b1640c2
2
Gemfile
2
Gemfile
@ -2,6 +2,6 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
# gem "rails"
|
||||
gem 'jekyll', '>=2.0.0'
|
||||
gem 'jekyll', '1.5.1'
|
||||
gem 'mini_magick', '>=3.6.0'
|
||||
gem 'fileutils', '>=0.7'
|
55
Gemfile.lock
55
Gemfile.lock
@ -2,67 +2,50 @@ GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
blankslate (2.1.2.4)
|
||||
celluloid (0.15.2)
|
||||
timers (~> 1.1.0)
|
||||
classifier (1.3.4)
|
||||
fast-stemmer (>= 1.0.0)
|
||||
coffee-script (2.2.0)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.7.0)
|
||||
colorator (0.1)
|
||||
execjs (2.2.1)
|
||||
commander (4.1.6)
|
||||
highline (~> 1.6.11)
|
||||
fast-stemmer (1.0.2)
|
||||
ffi (1.9.3)
|
||||
fileutils (0.7)
|
||||
rmagick (>= 2.13.1)
|
||||
jekyll (2.1.0)
|
||||
highline (1.6.21)
|
||||
jekyll (1.5.1)
|
||||
classifier (~> 1.3)
|
||||
colorator (~> 0.1)
|
||||
jekyll-coffeescript (~> 1.0)
|
||||
jekyll-gist (~> 1.0)
|
||||
jekyll-paginate (~> 1.0)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 1.0)
|
||||
kramdown (~> 1.3)
|
||||
liquid (~> 2.6.1)
|
||||
mercenary (~> 0.3.3)
|
||||
pygments.rb (~> 0.6.0)
|
||||
redcarpet (~> 3.1)
|
||||
commander (~> 4.1.3)
|
||||
liquid (~> 2.5.5)
|
||||
listen (~> 1.3)
|
||||
maruku (= 0.7.0)
|
||||
pygments.rb (~> 0.5.0)
|
||||
redcarpet (~> 2.3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
toml (~> 0.1.0)
|
||||
jekyll-coffeescript (1.0.0)
|
||||
coffee-script (~> 2.2)
|
||||
jekyll-gist (1.1.0)
|
||||
jekyll-paginate (1.0.0)
|
||||
jekyll-sass-converter (1.0.0)
|
||||
sass (~> 3.2)
|
||||
jekyll-watch (1.0.0)
|
||||
listen (~> 2.7)
|
||||
kramdown (1.4.0)
|
||||
liquid (2.6.1)
|
||||
listen (2.7.9)
|
||||
celluloid (>= 0.15.2)
|
||||
liquid (2.5.5)
|
||||
listen (1.3.1)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
mercenary (0.3.3)
|
||||
rb-kqueue (>= 0.2)
|
||||
maruku (0.7.0)
|
||||
mini_magick (3.7.0)
|
||||
subexec (~> 0.2.1)
|
||||
parslet (1.5.0)
|
||||
blankslate (~> 2.0)
|
||||
posix-spawn (0.3.8)
|
||||
pygments.rb (0.6.0)
|
||||
pygments.rb (0.5.4)
|
||||
posix-spawn (~> 0.3.6)
|
||||
yajl-ruby (~> 1.1.0)
|
||||
rb-fsevent (0.9.4)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
redcarpet (3.1.2)
|
||||
rb-kqueue (0.2.3)
|
||||
ffi (>= 0.5.0)
|
||||
redcarpet (2.3.0)
|
||||
rmagick (2.13.2)
|
||||
safe_yaml (1.0.3)
|
||||
sass (3.3.9)
|
||||
subexec (0.2.3)
|
||||
timers (1.1.0)
|
||||
toml (0.1.1)
|
||||
parslet (~> 1.5.0)
|
||||
yajl-ruby (1.1.0)
|
||||
@ -72,5 +55,5 @@ PLATFORMS
|
||||
|
||||
DEPENDENCIES
|
||||
fileutils (>= 0.7)
|
||||
jekyll (>= 2.0.0)
|
||||
jekyll (= 1.5.1)
|
||||
mini_magick (>= 3.6.0)
|
||||
|
@ -33,6 +33,7 @@ category_title_prefix: ""
|
||||
|
||||
future: false
|
||||
markdown: redcarpet
|
||||
pygments: true
|
||||
|
||||
redcarpet:
|
||||
extensions: ['autolink', 'smart']
|
||||
|
@ -5,74 +5,76 @@
|
||||
#
|
||||
|
||||
module Jekyll
|
||||
module Paginate
|
||||
|
||||
class Pagination < Generator
|
||||
def generate(site)
|
||||
end
|
||||
end
|
||||
|
||||
class CategoryPages < Generator
|
||||
|
||||
safe true
|
||||
|
||||
def generate(site)
|
||||
|
||||
site.pages.dup.each do |page|
|
||||
paginate(site, page) if CategoryPager.pagination_enabled?(site.config, page)
|
||||
class Pagination < Generator
|
||||
def generate(site)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def paginate(site, page)
|
||||
|
||||
# sort categories by descending date of publish
|
||||
category_posts = site.categories[page.data['category']].sort_by { |p| -p.date.to_f }
|
||||
class CategoryPages < Generator
|
||||
|
||||
# calculate total number of pages
|
||||
pages = CategoryPager.calculate_pages(category_posts, site.config['paginate'].to_i)
|
||||
safe true
|
||||
|
||||
# iterate over the total number of pages and create a physical page for each
|
||||
(1..pages).each do |num_page|
|
||||
|
||||
# the CategoryPager handles the paging and category data
|
||||
pager = CategoryPager.new(site, num_page, category_posts, page.data['category'], pages)
|
||||
def generate(site)
|
||||
|
||||
if num_page > 1
|
||||
newpage = Page.new(site, site.source, page.dir, page.name)
|
||||
newpage.pager = pager
|
||||
newpage.dir = File.join(page.dir, "/page/#{num_page}")
|
||||
site.pages << newpage
|
||||
else
|
||||
page.pager = pager
|
||||
site.pages.dup.each do |page|
|
||||
paginate(site, page) if CategoryPager.pagination_enabled?(site.config, page)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def paginate(site, page)
|
||||
|
||||
# sort categories by descending date of publish
|
||||
category_posts = site.categories[page.data['category']].sort_by { |p| -p.date.to_f }
|
||||
|
||||
# calculate total number of pages
|
||||
pages = CategoryPager.calculate_pages(category_posts, site.config['paginate'].to_i)
|
||||
|
||||
# iterate over the total number of pages and create a physical page for each
|
||||
(1..pages).each do |num_page|
|
||||
|
||||
# the CategoryPager handles the paging and category data
|
||||
pager = CategoryPager.new(site, num_page, category_posts, page.data['category'], pages)
|
||||
|
||||
if num_page > 1
|
||||
newpage = Page.new(site, site.source, page.dir, page.name)
|
||||
newpage.pager = pager
|
||||
newpage.dir = File.join(page.dir, "/page/#{num_page}")
|
||||
site.pages << newpage
|
||||
else
|
||||
page.pager = pager
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class CategoryPager < Pager
|
||||
|
||||
attr_reader :category
|
||||
|
||||
def self.pagination_enabled?(config, page)
|
||||
page.name == 'index.html' && page.data.key?('category') && !config['paginate'].nil?
|
||||
end
|
||||
|
||||
# same as the base class, but includes the category value
|
||||
def initialize(site, page, all_posts, category, num_pages = nil)
|
||||
@category = category
|
||||
super site, page, all_posts, num_pages
|
||||
end
|
||||
|
||||
# use the original to_liquid method, but add in category info
|
||||
alias_method :original_to_liquid, :to_liquid
|
||||
def to_liquid
|
||||
x = original_to_liquid
|
||||
x['category'] = @category
|
||||
x
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class CategoryPager < Pager
|
||||
|
||||
attr_reader :category
|
||||
|
||||
def self.pagination_enabled?(config, page)
|
||||
page.name == 'index.html' && page.data.key?('category') && !config['paginate'].nil?
|
||||
end
|
||||
|
||||
# same as the base class, but includes the category value
|
||||
def initialize(site, page, all_posts, category, num_pages = nil)
|
||||
@category = category
|
||||
super site, page, all_posts, num_pages
|
||||
end
|
||||
|
||||
# use the original to_liquid method, but add in category info
|
||||
alias_method :original_to_liquid, :to_liquid
|
||||
def to_liquid
|
||||
x = original_to_liquid
|
||||
x['category'] = @category
|
||||
x
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user