module Jekyll::PaginateV2::AutoPages

def self.autopage_create(autopage_config, pagination_config, posts_to_use, configkey_name, indexkey_name, createpage_lambda )


page types to the calling code (this way all features can reuse the logic).
STATIC: this function actually performs the steps to generate the autopages. It uses a lambda function to delegate the creation of the individual
def self.autopage_create(autopage_config, pagination_config, posts_to_use, configkey_name, indexkey_name, createpage_lambda )
  if !autopage_config[configkey_name].nil?
    ap_sub_config = autopage_config[configkey_name]
    if ap_sub_config ['enabled']
      Jekyll.logger.info "AutoPages:","Generating #{configkey_name} pages"
      # Roll through all documents in the posts collection and extract the tags

      index_keys = Utils.ap_index_posts_by(posts_to_use, indexkey_name) # Cannot use just the posts here, must use all things.. posts, collections...

      index_keys.each do |index_key, value|
        # Iterate over each layout specified in the config

        ap_sub_config ['layouts'].each do | layout_name |
          # Use site.dest here as these pages are never created in the actual source but only inside the _site folder

          createpage_lambda.call(ap_sub_config, pagination_config, layout_name, index_key, value[-1]) # the last item in the value array will be the display name

        end
      end
    else
      Jekyll.logger.info "AutoPages:","#{configkey_name} pages are disabled/not configured in site.config."
    end
  end
end