6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/jekyll/structured_content/faq_json_ld_tag.rb', line 6
def render(context)
page = context.registers[:page] || {}
faq_items = page["faq"]
return "" unless faq_items.is_a?(Array) && faq_items.any?
entities = faq_items.filter_map do |item|
question = value_for(item, "question", "title")
answer = value_for(item, "answer", "description")
next unless question && answer
{
"@type" => "Question",
"name" => question,
"acceptedAnswer" => {
"@type" => "Answer",
"text" => normalize_text(answer)
}
}
end
return "" if entities.empty?
{
"@context" => "https://schema.org",
"@type" => "FAQPage",
"mainEntity" => entities
}.to_json
end
|