FEATURE: Make Docs compatible with inline oneboxes (#33)

Linking directly to a Docs item like so `http://localhost:3000/docs?topic=16` would result in a generic inline onebox link. This adds logic to the Rails view so a proper title is rendered when the `InlineOneboxer` in core queries the route.
This commit is contained in:
Justin DiRose 2021-02-16 15:09:45 -06:00 committed by GitHub
parent 399fbec04f
commit 2835500c62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View File

@ -35,6 +35,7 @@ module Docs
respond_to do |format| respond_to do |format|
format.html do format.html do
@title = set_title
render :get_topic render :get_topic
end end
@ -53,6 +54,15 @@ module Docs
TopicViewSerializer.new(topic_view, scope: guardian, root: false) TopicViewSerializer.new(topic_view, scope: guardian, root: false)
end end
def set_title
title = "#{I18n.t('js.docs.title')} - #{SiteSetting.title}"
if @topic
topic_title = @topic['unicode_title'] || @topic['title']
title = "#{topic_title} - #{title}"
end
title
end
def topic_in_docs(category, tags) def topic_in_docs(category, tags)
category_match = Docs::Query.categories.include?(category.to_s) category_match = Docs::Query.categories.include?(category.to_s)
tags = tags.pluck(:name) tags = tags.pluck(:name)

View File

@ -1,3 +1,5 @@
<% content_for :head do %> <% content_for :head do %>
<%= raw crawlable_meta_data(title: @topic["title"], description: @excerpt, ignore_canonical: true) if @topic %> <%= raw crawlable_meta_data(title: @topic["title"], description: @excerpt, ignore_canonical: true) if @topic %>
<% end %> <% end %>
<% content_for(:title) { @title } %>