module Jekyll::RenderOrder

Constants

DEFAULT_ORDER
VERSION

Public Class Methods

sort(site) click to toggle source
# File lib/jekyll-render-order/sort.rb, line 12
def self.sort(site)
        render_order = site.config['render_order'] || DEFAULT_ORDER

        site.pages.sort! { |a, b|
                a_idx = render_order.index { |x| File.fnmatch?(x, a.path, File::FNM_EXTGLOB) }
                b_idx = render_order.index { |x| File.fnmatch?(x, b.path, File::FNM_EXTGLOB) }

                if not a_idx.nil? then
                        if b_idx.nil? then
                                -1
                        elsif a_idx != b_idx then
                                a_idx - b_idx
                        else
                                a.path.casecmp(b.path)
                        end
                elsif not b_idx.nil? then
                        +1
                else
                        a.path.casecmp(b.path)
                end
        }
end