Class: Jekyll::Load::Loader
- Inherits:
-
Generator
- Object
- Generator
- Jekyll::Load::Loader
- Defined in:
- lib/jekyll/load/loader.rb
Instance Method Summary collapse
- #add_to_index(data_file, data) ⇒ Object
- #find_corresponding_index(data_file) ⇒ Object
- #find_page(data_file) ⇒ Object
- #generate(site) ⇒ Object
- #is_index(data_file) ⇒ Object
- #load_pages ⇒ Object
- #merge_data(data_file, data) ⇒ Object
Instance Method Details
#add_to_index(data_file, data) ⇒ Object
35 36 37 38 39 |
# File 'lib/jekyll/load/loader.rb', line 35 def add_to_index(data_file, data) page = find_corresponding_index data_file page.data['items'] = [] if page.data['items'].nil? page.data['items'].push data end |
#find_corresponding_index(data_file) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/jekyll/load/loader.rb', line 41 def find_corresponding_index(data_file) path = 'index.md' nesting = data_file.match(/_data\/(?<resource>.+)\//) path = File.join nesting[1], path unless nesting.nil? page = @site.pages.detect { |page| page.path == path } end |
#find_page(data_file) ⇒ Object
30 31 32 33 |
# File 'lib/jekyll/load/loader.rb', line 30 def find_page(data_file) path = data_file.gsub("_data#{File::SEPARATOR}", '').gsub('.yml', '.md') @site.pages.detect { |page| page.path == path } end |
#generate(site) ⇒ Object
9 10 11 12 |
# File 'lib/jekyll/load/loader.rb', line 9 def generate(site) @site = site Dir.chdir(@site.source) { load_pages } end |
#is_index(data_file) ⇒ Object
48 49 50 |
# File 'lib/jekyll/load/loader.rb', line 48 def is_index(data_file) data_file.end_with? 'index.yml' end |
#load_pages ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/jekyll/load/loader.rb', line 14 def load_pages data_files = Dir[File.join('_data', '**', '*.yml')] data_files.each do |data_file| data = YAML.load_file(data_file) data = merge_data data_file, data add_to_index data_file, data unless is_index data_file end end |
#merge_data(data_file, data) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/jekyll/load/loader.rb', line 23 def merge_data(data_file, data) page = find_page(data_file) page.data.merge! data page.data['url'] = page.url page.data end |