Ensure custom favicon is converted to PNG and ICO (#30208)
This commit is contained in:
parent
c9ccba7045
commit
d8c4284723
3 changed files with 19 additions and 4 deletions
|
@ -26,8 +26,23 @@ class SiteUpload < ApplicationRecord
|
|||
APP_ICON_SIZES = (APPLE_ICON_SIZES + ANDROID_ICON_SIZES).uniq.freeze
|
||||
|
||||
STYLES = {
|
||||
app_icon: APP_ICON_SIZES.each_with_object({}) { |size, hash| hash[size.to_s.to_sym] = "#{size}x#{size}#" }.freeze,
|
||||
favicon: FAVICON_SIZES.each_with_object({}) { |size, hash| hash[size.to_s.to_sym] = "#{size}x#{size}#" }.freeze,
|
||||
app_icon:
|
||||
APP_ICON_SIZES.to_h do |size|
|
||||
[:"#{size}", { format: 'png', geometry: "#{size}x#{size}#", file_geometry_parser: FastGeometryParser }]
|
||||
end.freeze,
|
||||
|
||||
favicon: {
|
||||
ico: {
|
||||
format: 'ico',
|
||||
geometry: '48x48#',
|
||||
file_geometry_parser: FastGeometryParser,
|
||||
}.freeze,
|
||||
}.merge(
|
||||
FAVICON_SIZES.to_h do |size|
|
||||
[:"#{size}", { format: 'png', geometry: "#{size}x#{size}#", file_geometry_parser: FastGeometryParser }]
|
||||
end
|
||||
).freeze,
|
||||
|
||||
thumbnail: {
|
||||
'@1x': {
|
||||
format: 'png',
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
- if storage_host?
|
||||
%link{ rel: 'dns-prefetch', href: storage_host }/
|
||||
|
||||
%link{ rel: 'icon', href: site_icon_path('favicon') || '/favicon.ico', type: 'image/x-icon' }/
|
||||
%link{ rel: 'icon', href: site_icon_path('favicon', 'ico') || '/favicon.ico', type: 'image/x-icon' }/
|
||||
|
||||
- SiteUpload::FAVICON_SIZES.each do |size|
|
||||
%link{ rel: 'icon', sizes: "#{size}x#{size}", href: site_icon_path('favicon', size.to_i) || frontend_asset_path("icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
|
||||
|
|
|
@ -23,5 +23,5 @@
|
|||
<!-- Disallow any coder by default, and only enable ones required by Mastodon -->
|
||||
<policy domain="coder" rights="none" pattern="*" />
|
||||
<policy domain="coder" rights="read | write" pattern="{JPEG,PNG,GIF,WEBP,HEIC,AVIF}" />
|
||||
<policy domain="coder" rights="write" pattern="{HISTOGRAM,RGB,INFO}" />
|
||||
<policy domain="coder" rights="write" pattern="{HISTOGRAM,RGB,INFO,ICO}" />
|
||||
</policymap>
|
||||
|
|
Loading…
Reference in a new issue