Fix titles being escaped twice (#32889)

pull/2898/head
Claire 2024-11-14 14:28:00 +01:00 committed by GitHub
parent ec663eaba1
commit e8b6607ece
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 9 additions and 17 deletions

View File

@ -79,7 +79,7 @@ module ApplicationHelper
def html_title def html_title
safe_join( safe_join(
[content_for(:page_title).to_s.chomp, title] [content_for(:page_title), title]
.compact_blank, .compact_blank,
' - ' ' - '
) )

View File

@ -1,5 +1,4 @@
- content_for :page_title do - content_for :page_title, t('about.title')
= t('about.title')
- content_for :header_tags do - content_for :header_tags do
= render partial: 'shared/og' = render partial: 'shared/og'

View File

@ -1,5 +1,4 @@
- content_for :page_title do - content_for :page_title, "#{display_name(@account)} (#{acct(@account)})"
#{display_name(@account)} (#{acct(@account)})
- content_for :header_tags do - content_for :header_tags do
- if @account.user_prefers_noindex? - if @account.user_prefers_noindex?

View File

@ -1,5 +1,4 @@
- content_for :page_title do - content_for :page_title, t('privacy_policy.title')
= t('privacy_policy.title')
- content_for :header_tags do - content_for :header_tags do
= render partial: 'shared/og' = render partial: 'shared/og'

View File

@ -1,5 +1,4 @@
- content_for :page_title do - content_for :page_title, t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))
= t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))
- content_for :header_tags do - content_for :header_tags do
- if @account.user_prefers_noindex? - if @account.user_prefers_noindex?

View File

@ -257,11 +257,11 @@ RSpec.describe ApplicationHelper do
expect(helper.html_title).to be_html_safe expect(helper.html_title).to be_html_safe
end end
it 'removes extra new lines' do it 'does not escape twice' do
Setting.site_title = 'Site Title' Setting.site_title = 'Site Title'
helper.content_for(:page_title, "Test Value\n") helper.content_for(:page_title, '"Test Value"'.html_safe)
expect(helper.html_title).to eq 'Test Value - Site Title' expect(helper.html_title).to eq '"Test Value" - Site Title'
expect(helper.html_title).to be_html_safe expect(helper.html_title).to be_html_safe
end end
end end

View File

@ -18,7 +18,7 @@ RSpec.describe 'statuses/show.html.haml' do
assign(:descendant_threads, []) assign(:descendant_threads, [])
end end
it 'has valid opengraph tags' do it 'has valid opengraph tags and twitter player tags' do
render render
expect(header_tags) expect(header_tags)
@ -26,10 +26,6 @@ RSpec.describe 'statuses/show.html.haml' do
.and match(/<meta content="article" property="og:type">/) .and match(/<meta content="article" property="og:type">/)
.and match(/<meta content=".+" property="og:image">/) .and match(/<meta content=".+" property="og:image">/)
.and match(%r{<meta content="http://.+" property="og:url">}) .and match(%r{<meta content="http://.+" property="og:url">})
end
it 'has twitter player tag' do
render
expect(header_tags) expect(header_tags)
.to match(%r{<meta content="http://.+/media/.+/player" property="twitter:player">}) .to match(%r{<meta content="http://.+/media/.+/player" property="twitter:player">})