FIX: make JSON_LD schema consistent with our microdata in core (#269)
* FIX: make JSON_LD schema consistent with our microdata in core https://meta.discourse.org/t/alignment-of-schema-org-markup-between-qa-solved-dfp-core/279510
This commit is contained in:
parent
bc9b8c41d4
commit
ad1b7c9608
|
@ -303,10 +303,11 @@ SQL
|
||||||
"text" => get_schema_text(first_post),
|
"text" => get_schema_text(first_post),
|
||||||
"upvoteCount" => first_post.like_count,
|
"upvoteCount" => first_post.like_count,
|
||||||
"answerCount" => 0,
|
"answerCount" => 0,
|
||||||
"dateCreated" => topic.created_at,
|
"datePublished" => topic.created_at,
|
||||||
"author" => {
|
"author" => {
|
||||||
"@type" => "Person",
|
"@type" => "Person",
|
||||||
"name" => topic.user&.name,
|
"name" => topic.user&.username,
|
||||||
|
"url" => topic.user&.full_url,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -319,11 +320,12 @@ SQL
|
||||||
"@type" => "Answer",
|
"@type" => "Answer",
|
||||||
"text" => get_schema_text(accepted_answer),
|
"text" => get_schema_text(accepted_answer),
|
||||||
"upvoteCount" => accepted_answer.like_count,
|
"upvoteCount" => accepted_answer.like_count,
|
||||||
"dateCreated" => accepted_answer.created_at,
|
"datePublished" => accepted_answer.created_at,
|
||||||
"url" => accepted_answer.full_url,
|
"url" => accepted_answer.full_url,
|
||||||
"author" => {
|
"author" => {
|
||||||
"@type" => "Person",
|
"@type" => "Person",
|
||||||
"name" => accepted_answer.user&.username,
|
"name" => accepted_answer.user&.username,
|
||||||
|
"url" => accepted_answer.user&.full_url,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -10,20 +10,21 @@ RSpec.describe TopicsController do
|
||||||
def schema_json(answerCount)
|
def schema_json(answerCount)
|
||||||
if answerCount > 0
|
if answerCount > 0
|
||||||
answer_json =
|
answer_json =
|
||||||
',"acceptedAnswer":{"@type":"Answer","text":"%{answer_text}","upvoteCount":%{answer_likes},"dateCreated":"%{answered_at}","url":"%{answer_url}","author":{"@type":"Person","name":"%{username2}"}}' %
|
',"acceptedAnswer":{"@type":"Answer","text":"%{answer_text}","upvoteCount":%{answer_likes},"datePublished":"%{answered_at}","url":"%{answer_url}","author":{"@type":"Person","name":"%{username2}","url":"%{user2_url}"}}' %
|
||||||
{
|
{
|
||||||
answer_text: p2.excerpt,
|
answer_text: p2.excerpt,
|
||||||
answer_likes: p2.like_count,
|
answer_likes: p2.like_count,
|
||||||
answered_at: p2.created_at.as_json,
|
answered_at: p2.created_at.as_json,
|
||||||
answer_url: p2.full_url,
|
answer_url: p2.full_url,
|
||||||
username2: p2.user&.username,
|
username2: p2.user&.username,
|
||||||
|
user2_url: p2.user&.full_url,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
answer_json = ""
|
answer_json = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop:todo Layout/LineLength
|
# rubocop:todo Layout/LineLength
|
||||||
'<script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"%{title}","mainEntity":{"@type":"Question","name":"%{title}","text":"%{question_text}","upvoteCount":%{question_likes},"answerCount":%{answerCount},"dateCreated":"%{created_at}","author":{"@type":"Person","name":"%{username1}"}%{answer_json}}}</script>' %
|
'<script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"%{title}","mainEntity":{"@type":"Question","name":"%{title}","text":"%{question_text}","upvoteCount":%{question_likes},"answerCount":%{answerCount},"datePublished":"%{created_at}","author":{"@type":"Person","name":"%{username1}","url":"%{user1_url}"}%{answer_json}}}</script>' %
|
||||||
# rubocop:enable Layout/LineLength
|
# rubocop:enable Layout/LineLength
|
||||||
{
|
{
|
||||||
title: topic.title,
|
title: topic.title,
|
||||||
|
@ -31,7 +32,8 @@ RSpec.describe TopicsController do
|
||||||
question_likes: p1.like_count,
|
question_likes: p1.like_count,
|
||||||
answerCount: answerCount,
|
answerCount: answerCount,
|
||||||
created_at: topic.created_at.as_json,
|
created_at: topic.created_at.as_json,
|
||||||
username1: topic.user&.name,
|
username1: topic.user&.username,
|
||||||
|
user1_url: topic.user&.full_url,
|
||||||
answer_json: answer_json,
|
answer_json: answer_json,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue