Class: Jekyll::PostReader

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-language-plugin/readers/post_reader.rb

Instance Method Summary collapse

Instance Method Details

#create_document_from_path(path) ⇒ Object



34
35
36
37
38
39
# File 'lib/jekyll-language-plugin/readers/post_reader.rb', line 34

def create_document_from_path(path)
  LanguageDocument.new(path, {
    site: @site,
    collection: @site.posts
  })
end

#multilinguify(path) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jekyll-language-plugin/readers/post_reader.rb', line 14

def multilinguify(path)
  document = create_document_from_path(path)
  document.read
  if not document.language and not document.languages
    # create a new document that can be freshly read
    return [create_document_from_path(path)]
  end

  languages = document.languages || []
  if document.language and not languages.include?(document.language)
    languages.push(document.language)
  end

  languages.map do |language|
    document2 = create_document_from_path(path)
    document2.data['language'] = language
    document2
  end
end

#read_content(dir, magic_dir, matcher) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/jekyll-language-plugin/readers/post_reader.rb', line 3

def read_content(dir, magic_dir, matcher)
  entries = @site.reader.get_entries(dir, magic_dir)
  documents = []
  for entry in entries
    next unless entry =~ matcher
    path = @site.in_source_dir(File.join(dir, magic_dir, entry))
    documents.concat(multilinguify(path))
  end
  documents
end