DEV: Add plugin API to add to robots.txt (#17378)
This plugin API can be used to add to robots.txt. The event handler receives the complete robots information before it is converted into robots.txt.
This commit is contained in:
parent
2e7e48d982
commit
09f1ef6b05
|
@ -84,6 +84,8 @@ class RobotsTxtController < ApplicationController
|
||||||
result[:agents] << { name: 'Googlebot', disallow: deny_paths_googlebot }
|
result[:agents] << { name: 'Googlebot', disallow: deny_paths_googlebot }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
DiscourseEvent.trigger(:robots_info, result)
|
||||||
|
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -161,5 +161,25 @@ RSpec.describe RobotsTxtController do
|
||||||
expect(response.body).not_to include(sitemap_line)
|
expect(response.body).not_to include(sitemap_line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'plugins' do
|
||||||
|
let(:event_handler) do
|
||||||
|
Proc.new { |robots_info| robots_info[:agents] << { name: 'Test', disallow: ['/test/'] } }
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
DiscourseEvent.on(:robots_info, &event_handler)
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
DiscourseEvent.off(:robots_info, &event_handler)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'can add to robots.txt' do
|
||||||
|
get '/robots.txt'
|
||||||
|
|
||||||
|
expect(response.parsed_body).to include("User-agent: Test\nDisallow: /test/")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue