Class: Jekyll::ClientSearch::DocumentBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/client_search/document_builder.rb

Overview

Normalizes Jekyll documents and pages into the flat hash shape that the search index JSON emits.

Instance Method Summary collapse

Instance Method Details

#from_document(document) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/jekyll/client_search/document_builder.rb', line 8

def from_document(document)
  url = document.url.to_s
  return if url.empty?

  data = document.data
  {
    "id" => url,
    "title" => clean(data["title"] || "Untitled"),
    "url" => url,
    "excerpt" => clean(data["excerpt"] || excerpt_for(document)),
    "content" => clean(document.content),
    "categories" => normalize_list(data["categories"]),
    "tags" => normalize_list(data["tags"]),
    "date" => normalized_date(document),
    "date_timestamp" => normalized_timestamp(document)
  }.compact
end