class Jekyll::Site

Public Instance Methods

generate_resource_pages() click to toggle source
# File lib/jekyll-theme-isotc211-helpers/resource_listing.rb, line 84
def generate_resource_pages
  return unless self.config.key?('resource_listings')

  self.config['resource_listings'].each do |listing_id, cfg|
    resources = {}

    Pathname(cfg['resource_root']).children.sort.each do |resource_dir|

      # Ignore non-directories
      next unless File.directory?(resource_dir)
      basename = File.basename(resource_dir)

      # Ignore dot-directories
      next if basename[0] == '.'

      id = basename
      resources[id] = {}  # Empty hash can in future be resource metadata
      contents = self.read_resource_contents(resource_dir.to_s, id, listing_id)
      self.write_resource_page(listing_id, id, contents)
    end

    self.write_resource_listing_page(listing_id, resources)
  end

end
read_resource_contents(dir, id, listing_id) click to toggle source

Returns a data structure representing a tree of resource subdirectories & files

# File lib/jekyll-theme-isotc211-helpers/resource_listing.rb, line 79
def read_resource_contents(dir, id, listing_id)
  cfg = self.config['resource_listings'][listing_id]
  directory_hash(dir, "#{cfg['resource_label'].capitalize} #{id}")
end
write_resource_listing_page(listing_id, resources) click to toggle source
# File lib/jekyll-theme-isotc211-helpers/resource_listing.rb, line 52
def write_resource_listing_page(listing_id, resources)
  cfg = self.config['resource_listings'][listing_id]

  self.pages << ResourceListingPage.new(
    self,
    self.source,
    cfg['index_url'],
    cfg['index_layout'],
    cfg['index_title'],
    resources)
end
write_resource_page(listing_id, resource_id, contents_tree) click to toggle source
# File lib/jekyll-theme-isotc211-helpers/resource_listing.rb, line 64
def write_resource_page(listing_id, resource_id, contents_tree)
  cfg = self.config['resource_listings'][listing_id]

  self.pages << ResourcePage.new(
    self,
    self.source,
    cfg['index_url'],
    cfg['index_title'],
    cfg['resource_layout'],
    resource_id,
    cfg['resource_label'],
    contents_tree)
end