Allow to set type for author (#427)

Merge pull request 427
This commit is contained in:
Elias Fröhner 2021-01-11 17:13:50 +01:00 committed by GitHub
parent 22a160cb32
commit 9cb1ad0bd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 2 deletions

View File

@ -21,7 +21,8 @@ module Jekyll
private :logo
VALID_ENTITY_TYPES = %w(BlogPosting CreativeWork).freeze
private_constant :VALID_ENTITY_TYPES
VALID_AUTHOR_TYPES = %w(Organization Person).freeze
private_constant :VALID_ENTITY_TYPES, :VALID_AUTHOR_TYPES
# page_drop should be an instance of Jekyll::SeoTag::Drop
def initialize(page_drop)
@ -38,8 +39,11 @@ module Jekyll
def author
return unless page_drop.author["name"]
author_type = page_drop.author["type"]
return if author_type && !VALID_AUTHOR_TYPES.include?(author_type)
{
"@type" => "Person",
"@type" => author_type || "Person",
"name" => page_drop.author["name"],
}
end

View File

@ -72,6 +72,29 @@ RSpec.describe Jekyll::SeoTag::JSONLDDrop do
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