module Jekyll::Lunr::IndexableDocument

Public Class Methods

included(base) click to toggle source
   # File lib/jekyll/lunr.rb
23 def self.included(base)
24   base.class_eval do
25     def to_data
26       data
27         .slice(*site.indexer.fields)
28         .transform_values { |value| extract_data_recursively(value) }
29         .merge('content' => Loofah.fragment(content).to_text,
30                'url' => url,
31                'id' => url,
32                'year' => date&.year)
33     end
34 
35     def extract_data_recursively(value)
36       case value
37       when Array then value.map { |v| extract_data(v) }
38       when Hash then value.transform_values { |v| extract_data(v) }
39       when Jekyll::Document then extract_data(value)
40       when Jekyll::Page then extract_data(value)
41       else value
42       end
43     end
44 
45     def extract_data(value)
46       value.respond_to?(:to_data) ? value.to_data : value
47     end
48   end
49 end

Public Instance Methods

extract_data(value) click to toggle source
   # File lib/jekyll/lunr.rb
45 def extract_data(value)
46   value.respond_to?(:to_data) ? value.to_data : value
47 end
extract_data_recursively(value) click to toggle source
   # File lib/jekyll/lunr.rb
35 def extract_data_recursively(value)
36   case value
37   when Array then value.map { |v| extract_data(v) }
38   when Hash then value.transform_values { |v| extract_data(v) }
39   when Jekyll::Document then extract_data(value)
40   when Jekyll::Page then extract_data(value)
41   else value
42   end
43 end
to_data() click to toggle source
   # File lib/jekyll/lunr.rb
25 def to_data
26   data
27     .slice(*site.indexer.fields)
28     .transform_values { |value| extract_data_recursively(value) }
29     .merge('content' => Loofah.fragment(content).to_text,
30            'url' => url,
31            'id' => url,
32            'year' => date&.year)
33 end