2016-02-28 13:41:01 +00:00
|
|
|
!!! 5
|
2017-05-08 01:35:25 +00:00
|
|
|
%html{ lang: I18n.locale }
|
2016-02-22 15:00:20 +00:00
|
|
|
%head
|
2017-05-08 01:35:25 +00:00
|
|
|
%meta{ charset: 'utf-8' }/
|
2018-03-08 23:35:07 +00:00
|
|
|
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
2018-10-09 23:31:10 +00:00
|
|
|
|
|
|
|
- if cdn_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: cdn_host }/
|
2020-10-12 23:19:35 +00:00
|
|
|
%meta{ name: 'cdn-host', content: cdn_host }/
|
2018-10-09 23:31:10 +00:00
|
|
|
|
|
|
|
- if storage_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: storage_host }/
|
|
|
|
|
2022-06-09 20:25:23 +00:00
|
|
|
%link{ rel: 'icon', href: '/favicon.ico', type: 'image/x-icon' }/
|
|
|
|
|
|
|
|
- %w(16 32 48).each do |size|
|
|
|
|
%link{ rel: 'icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
|
|
|
|
|
|
|
|
- %w(57 60 72 76 114 120 144 152 167 180 1024).each do |size|
|
|
|
|
%link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/apple-touch-icon-#{size}x#{size}.png") }/
|
|
|
|
|
|
|
|
%link{ rel: 'mask-icon', href: asset_pack_path('media/images/logo-symbol-icon.svg'), color: '#6364FF' }/
|
|
|
|
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
|
2022-10-23 13:58:24 +00:00
|
|
|
%meta{ name: 'theme-color', content: '#191b22' }/
|
2017-05-08 01:35:25 +00:00
|
|
|
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
|
2022-08-25 21:27:10 +00:00
|
|
|
%meta{ name: 'apple-itunes-app', content: 'app-id=1571998974' }/
|
2016-11-02 14:18:40 +00:00
|
|
|
|
2018-03-10 10:43:20 +00:00
|
|
|
%title= content_for?(:page_title) ? safe_join([yield(:page_title).chomp.html_safe, title], ' - ') : title
|
2016-09-29 22:00:45 +00:00
|
|
|
|
2020-11-07 17:19:34 +00:00
|
|
|
= javascript_pack_tag "locales", crossorigin: 'anonymous'
|
2017-12-08 03:41:57 +00:00
|
|
|
- if @theme
|
|
|
|
- if @theme[:supported_locales].include? I18n.locale.to_s
|
2020-11-07 17:19:34 +00:00
|
|
|
= javascript_pack_tag "locales/#{@theme[:flavour]}/#{I18n.locale}", crossorigin: 'anonymous'
|
2017-12-08 03:41:57 +00:00
|
|
|
- elsif @theme[:supported_locales].include? 'en'
|
2020-11-07 17:19:34 +00:00
|
|
|
= javascript_pack_tag "locales/#{@theme[:flavour]}/en", crossorigin: 'anonymous'
|
2016-02-22 15:00:20 +00:00
|
|
|
= csrf_meta_tags
|
2020-07-06 23:33:38 +00:00
|
|
|
%meta{ name: 'style-nonce', content: request.content_security_policy_nonce }
|
2016-09-29 22:00:45 +00:00
|
|
|
|
2020-05-08 19:22:57 +00:00
|
|
|
= stylesheet_link_tag '/inert.css', skip_pipeline: true, media: 'all', id: 'inert-style'
|
|
|
|
|
2016-02-28 13:41:01 +00:00
|
|
|
= yield :header_tags
|
2016-09-29 22:00:45 +00:00
|
|
|
|
2017-11-21 06:13:37 +00:00
|
|
|
-# These must come after :header_tags to ensure our initial state has been defined.
|
|
|
|
= render partial: 'layouts/theme', object: @core
|
|
|
|
= render partial: 'layouts/theme', object: @theme
|
|
|
|
|
2022-07-05 07:33:44 +00:00
|
|
|
= stylesheet_link_tag custom_css_path, host: request.host, media: 'all'
|
2019-04-04 17:38:48 +00:00
|
|
|
|
2018-08-25 20:55:25 +00:00
|
|
|
%body{ class: body_classes }
|
2016-03-12 15:09:46 +00:00
|
|
|
= content_for?(:content) ? yield(:content) : yield
|
2019-05-27 01:33:39 +00:00
|
|
|
|
2022-06-10 15:34:59 +00:00
|
|
|
.logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
|
2022-06-09 20:25:23 +00:00
|
|
|
= render_symbol :icon
|
|
|
|
= render_symbol :wordmark
|