2016-02-28 14:41:01 +01:00
|
|
|
!!! 5
|
2017-05-08 03:35:25 +02:00
|
|
|
%html{ lang: I18n.locale }
|
2016-02-22 16:00:20 +01:00
|
|
|
%head
|
2017-05-08 03:35:25 +02:00
|
|
|
%meta{ charset: 'utf-8' }/
|
2018-03-09 00:35:07 +01:00
|
|
|
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
2018-10-10 01:31:10 +02:00
|
|
|
|
|
|
|
- if cdn_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: cdn_host }/
|
2020-10-13 01:19:35 +02:00
|
|
|
%meta{ name: 'cdn-host', content: cdn_host }/
|
2018-10-10 01:31:10 +02:00
|
|
|
|
|
|
|
- if storage_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: storage_host }/
|
|
|
|
|
2024-05-06 17:06:52 +02:00
|
|
|
- SiteUpload::FAVICON_SIZES.each do |size|
|
2024-05-15 11:38:16 +02:00
|
|
|
%link{ rel: 'icon', sizes: "#{size}x#{size}", href: favicon_path(size.to_i) || frontend_asset_path("icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
|
2022-06-09 22:25:23 +02:00
|
|
|
|
2024-05-06 17:06:52 +02:00
|
|
|
- SiteUpload::APPLE_ICON_SIZES.each do |size|
|
2024-05-15 11:38:16 +02:00
|
|
|
%link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: app_icon_path(size.to_i) || frontend_asset_path("icons/apple-touch-icon-#{size}x#{size}.png") }/
|
2022-06-09 22:25:23 +02:00
|
|
|
|
2024-06-17 11:00:26 +02:00
|
|
|
- if use_mask_icon?
|
|
|
|
%link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
|
2022-06-09 22:25:23 +02:00
|
|
|
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
|
2024-04-05 11:52:43 +02:00
|
|
|
= theme_color_tags current_theme
|
2017-05-08 03:35:25 +02:00
|
|
|
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
|
2016-11-02 15:18:40 +01:00
|
|
|
|
2023-11-09 14:05:57 +01:00
|
|
|
%title= html_title
|
2016-09-30 00:00:45 +02:00
|
|
|
|
2024-04-28 22:38:11 +02:00
|
|
|
= flavoured_stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous' # upstream uses `common` but that's implicitly defined
|
2024-03-26 10:25:49 +01:00
|
|
|
= theme_style_tags current_theme
|
2024-01-15 19:30:07 +01:00
|
|
|
|
2024-01-12 10:32:45 +01:00
|
|
|
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
|
2024-06-17 18:14:14 +02:00
|
|
|
= flavoured_stylesheet_pack_tag 'inert', media: 'all', crossorigin: 'anonymous', id: 'inert-style'
|
2024-01-12 10:32:45 +01:00
|
|
|
|
2024-04-27 22:34:41 +02:00
|
|
|
= javascript_pack_tag 'common', crossorigin: 'anonymous'
|
2024-04-28 12:08:08 +02:00
|
|
|
= preload_locale_pack
|
2023-04-25 16:51:38 +02:00
|
|
|
= csrf_meta_tags unless skip_csrf_meta_tags?
|
2020-07-07 01:33:38 +02:00
|
|
|
%meta{ name: 'style-nonce', content: request.content_security_policy_nonce }
|
2016-09-30 00:00:45 +02:00
|
|
|
|
2024-04-27 22:34:41 +02:00
|
|
|
= stylesheet_link_tag custom_css_path, skip_pipeline: true, host: root_url, media: 'all'
|
|
|
|
|
2016-02-28 14:41:01 +01:00
|
|
|
= yield :header_tags
|
2016-09-30 00:00:45 +02:00
|
|
|
|
2018-08-25 22:55:25 +02:00
|
|
|
%body{ class: body_classes }
|
2016-03-12 16:09:46 +01:00
|
|
|
= content_for?(:content) ? yield(:content) : yield
|
2019-05-27 03:33:39 +02:00
|
|
|
|
2024-06-06 09:50:15 +02:00
|
|
|
.logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
|
2024-03-19 15:17:18 +01:00
|
|
|
= inline_svg_tag 'logo-symbol-icon.svg'
|
|
|
|
= inline_svg_tag 'logo-symbol-wordmark.svg'
|