Skip to content

Commit

Permalink
Allow to set type for author
Browse files Browse the repository at this point in the history
Referring to https://schema.org/author the values Organization and Person are supported
  • Loading branch information
eliasfroehner authored and Elias Fröhner committed Jan 6, 2021
1 parent 22a160c commit 021e7ba
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
7 changes: 6 additions & 1 deletion lib/jekyll-seo-tag/json_ld_drop.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ class JSONLDDrop < Jekyll::Drops::Drop
private :logo

VALID_ENTITY_TYPES = %w(BlogPosting CreativeWork).freeze
VALID_AUTHOR_TYPES = %w(Organization Person).freeze
private_constant :VALID_ENTITY_TYPES
private_constant :VALID_AUTHOR_TYPES

# page_drop should be an instance of Jekyll::SeoTag::Drop
def initialize(page_drop)
Expand All @@ -36,10 +38,13 @@ def fallback_data
end

def author
author_type = page_drop.author["type"]

return unless page_drop.author["name"]
return nil if author_type && !VALID_AUTHOR_TYPES.include?(author_type)

{
"@type" => "Person",
"@type" => author_type || "Person",
"name" => page_drop.author["name"],
}
end
Expand Down
23 changes: 23 additions & 0 deletions spec/jekyll_seo_tag/json_ld_drop_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,29 @@
end
end
end

context "when type Organization" do
let(:author) { {"name" => "organization", "type" => "Organization"} }

it "returns the author with type" do
expect(subject).to have_key("author")
expect(subject["author"]).to be_a(Hash)
expect(subject["author"]).to have_key("@type")
expect(subject["author"]["@type"]).to eql("Organization")
expect(subject["author"]).to have_key("name")
expect(subject["author"]["name"]).to be_a(String)
expect(subject["author"]["name"]).to eql("organization")
end
end

context "when invalid type" do
let(:author) { {"name" => "organization", "type" => "Invalid"} }

it "returns the author with type" do
expect(subject).to have_key("author")
expect(subject["author"]).to be nil
end
end
end

context "image" do
Expand Down

0 comments on commit 021e7ba

Please # to comment.