Class: Jekyll::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-theme-isotc211-helpers/resource_listing.rb

Instance Method Summary collapse

Instance Method Details

#read_resource_contents(dir, id, listing_id) ⇒ Object



71
72
73
74
# File 'lib/jekyll-theme-isotc211-helpers/resource_listing.rb', line 71

def read_resource_contents(dir, id, listing_id)
  cfg = self.config['resource_listings'][listing_id]
  return directory_hash(dir, "#{cfg['resource_label'].capitalize} #{id}")
end

#read_resourcesObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/jekyll-theme-isotc211-helpers/resource_listing.rb', line 76

def read_resources
  if self.config.key?('resource_listings')

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

      Pathname(cfg['resource_root']).children.each do |resource_dir|
        basename = File.basename(resource_dir)
        if basename[0] == '.'
          # Ignore dot-directories
          next
        end
        id = basename
        resources[id] = {}
        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
end

#write_resource_listing_page(listing_id, resources) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/jekyll-theme-isotc211-helpers/resource_listing.rb', line 44

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) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/jekyll-theme-isotc211-helpers/resource_listing.rb', line 56

def write_resource_page(listing_id, resource_id, contents)
  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)
end