DEV: Add plugin API to add to robots.txt ()

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:
Bianca Nenciu 2022-07-12 20:52:55 +03:00 committed by GitHub
parent 2e7e48d982
commit 09f1ef6b05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

@ -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