module Jekyll::Algolia::Extractor
def self.run(file)
Public: Extract records from the file
def self.run(file) # Getting all nodes from the HTML input raw_records = extract_raw_records(file.content) # Getting file metadata shared_metadata = FileBrowser.metadata(file) # If no content, we still index the metadata raw_records = [shared_metadata] if raw_records.empty? # Building the list of records records = [] raw_records.map do |record| # We do not need to pass the HTML node element to the final record node = record[:node] record.delete(:node) # Merging each record info with file info record = Utils.compact_empty(record.merge(shared_metadata)) # Apply custom user-defined hooks # Users can return `nil` from the hook to signal we should not index # such a record record = Hooks.apply_each(record, node, Jekyll::Algolia.site) next if record.nil? records << record end records end