Class: Jekyll::SeoTag::JSONLDDrop
- Inherits:
-
Drops::Drop
- Object
- Drops::Drop
- Jekyll::SeoTag::JSONLDDrop
- Extended by:
- Forwardable
- Defined in:
- lib/jekyll-seo-tag/json_ld_drop.rb
Instance Method Summary collapse
- #author ⇒ Object
- #fallback_data ⇒ Object
- #image ⇒ Object
-
#initialize(page_drop) ⇒ JSONLDDrop
constructor
page_drop should be an instance of Jekyll::SeoTag::Drop.
- #publisher ⇒ Object
-
#to_json(state = nil) ⇒ Object
Returns a JSON-encoded object containing the JSON-LD data.
Constructor Details
#initialize(page_drop) ⇒ JSONLDDrop
page_drop should be an instance of Jekyll::SeoTag::Drop
27 28 29 30 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 27 def initialize(page_drop) @mutations = {} @page_drop = page_drop end |
Instance Method Details
#author ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 38 def return unless page_drop.["name"] = page_drop.["type"] return if && !VALID_AUTHOR_TYPES.include?() hash = { "@type" => || "Person", "name" => page_drop.["name"], } = page_drop.["url"] hash["url"] = if hash end |
#fallback_data ⇒ Object
32 33 34 35 36 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 32 def fallback_data @fallback_data ||= { "@context" => "https://schema.org", } end |
#image ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 55 def image return unless page_drop.image return page_drop.image.path if page_drop.image.keys.length == 1 hash = page_drop.image.to_h hash["url"] = hash.delete("path") hash["@type"] = "imageObject" hash end |
#publisher ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 65 def publisher return unless logo output = { "@type" => "Organization", "logo" => { "@type" => "ImageObject", "url" => logo, }, } output["name"] = page_drop..name if page_drop..name output end |
#to_json(state = nil) ⇒ Object
Returns a JSON-encoded object containing the JSON-LD data. Keys are sorted.
92 93 94 95 96 97 |
# File 'lib/jekyll-seo-tag/json_ld_drop.rb', line 92 def to_json(state = nil) keys.sort.each_with_object({}) do |(key, _), result| v = self[key] result[key] = v unless v.nil? end.to_json(state) end |