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