From f8b514cdfc48d56aa308790199546f67b2b582d2 Mon Sep 17 00:00:00 2001 From: MoshiKoi <54333972+MoshiKoi@users.noreply.github.com> Date: Tue, 3 Jan 2023 00:00:55 -0800 Subject: [PATCH 1/3] Add structured data for question pages --- app/views/layouts/_head.html.erb | 4 ++++ app/views/posts/_schema.html.erb | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 app/views/posts/_schema.html.erb diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb index c9bf20abd..0c95870ef 100644 --- a/app/views/layouts/_head.html.erb +++ b/app/views/layouts/_head.html.erb @@ -67,3 +67,7 @@ " /> <% end %> + +<% if @post %> + <%= render 'posts/schema', post: @post %> +<% end %> \ No newline at end of file diff --git a/app/views/posts/_schema.html.erb b/app/views/posts/_schema.html.erb new file mode 100644 index 000000000..13774c93a --- /dev/null +++ b/app/views/posts/_schema.html.erb @@ -0,0 +1,27 @@ +<% if post && post.post_type.name == 'Question' %> + <% suggested_answers = @children.filter { |answer| answer.score > 0.5 } %> + +<% end %> \ No newline at end of file From ee9f99d7beae82e3f3fb7aed99caaaa974045fd2 Mon Sep 17 00:00:00 2001 From: Matthew Miner Date: Thu, 29 Jun 2023 16:49:43 -0500 Subject: [PATCH 2/3] Only show schema data when showing post --- app/views/layouts/_head.html.erb | 4 ++-- app/views/posts/show.html.erb | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb index 0c95870ef..bda586af5 100644 --- a/app/views/layouts/_head.html.erb +++ b/app/views/layouts/_head.html.erb @@ -68,6 +68,6 @@ " /> <% end %> -<% if @post %> - <%= render 'posts/schema', post: @post %> +<% if content_for? :schema %> + <%= yield :schema %> <% end %> \ No newline at end of file diff --git a/app/views/posts/show.html.erb b/app/views/posts/show.html.erb index c25a17c03..b968e7b71 100644 --- a/app/views/posts/show.html.erb +++ b/app/views/posts/show.html.erb @@ -17,6 +17,10 @@ " /> <% end %> +<% content_for :schema do %> + <%= render 'posts/schema', post: @post %> +<% end %> + <%= render 'posts/expanded', post: @post, float_notice: false %> <% if @post.post_type.has_answers %> From dfbd4caa7000698916839cb58edef95d344b2052 Mon Sep 17 00:00:00 2001 From: Matthew Miner Date: Thu, 29 Jun 2023 16:50:15 -0500 Subject: [PATCH 3/3] Strip text tags --- app/views/posts/_schema.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/posts/_schema.html.erb b/app/views/posts/_schema.html.erb index 13774c93a..4db9af843 100644 --- a/app/views/posts/_schema.html.erb +++ b/app/views/posts/_schema.html.erb @@ -7,7 +7,7 @@ "mainEntity": { "@type": "Question", "name": "<%= @post.title %>", - "text": "<%= @post.body.gsub(/\r?\n/, '') %>", + "text": "<%= strip_tags(@post.body).gsub(/\r?\n/, '\n') %>", "answerCount": <%= @children&.length || 0 %>, "upvoteCount": <%= @post.upvote_count %>, "suggestedAnswer": [ @@ -15,7 +15,7 @@ <% if i > 0 then %>,<% end %> { "@type": "Answer", - "text": "<%= answer.body.gsub(/\r?\n/, '') %>", + "text": "<%= strip_tags(answer.body).gsub(/\r?\n/, '\n') %>", "upvoteCount": <%= answer.upvote_count %>, "url": "<%= post_url(answer) %>" }