2016-02-28 05:41:01 -08:00
|
|
|
!!! 5
|
2017-05-07 18:35:25 -07:00
|
|
|
%html{ lang: I18n.locale }
|
2016-02-22 07:00:20 -08:00
|
|
|
%head
|
2017-05-07 18:35:25 -07:00
|
|
|
%meta{ charset: 'utf-8' }/
|
2018-03-08 15:35:07 -08:00
|
|
|
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
2018-10-09 16:31:10 -07:00
|
|
|
|
|
|
|
- if cdn_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: cdn_host }/
|
|
|
|
|
|
|
|
- if storage_host?
|
|
|
|
%link{ rel: 'dns-prefetch', href: storage_host }/
|
|
|
|
|
2017-05-07 18:35:25 -07:00
|
|
|
%link{ rel: 'icon', href: favicon_path, type: 'image/x-icon' }/
|
|
|
|
%link{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }/
|
|
|
|
%link{ rel: 'mask-icon', href: '/mask-icon.svg', color: '#2B90D9' }/
|
|
|
|
%link{ rel: 'manifest', href: '/manifest.json' }/
|
|
|
|
%meta{ name: 'msapplication-config', content: '/browserconfig.xml' }/
|
|
|
|
%meta{ name: 'theme-color', content: '#282c37' }/
|
|
|
|
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
|
2016-11-02 07:18:40 -07:00
|
|
|
|
2018-03-10 02:43:20 -08:00
|
|
|
%title= content_for?(:page_title) ? safe_join([yield(:page_title).chomp.html_safe, title], ' - ') : title
|
2016-09-29 15:00:45 -07:00
|
|
|
|
2017-11-20 22:13:37 -08:00
|
|
|
= javascript_pack_tag "locales", integrity: true, crossorigin: 'anonymous'
|
2017-12-07 19:41:57 -08:00
|
|
|
- if @theme
|
|
|
|
- if @theme[:supported_locales].include? I18n.locale.to_s
|
|
|
|
= javascript_pack_tag "locales/#{@theme[:flavour]}/#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
|
|
|
- elsif @theme[:supported_locales].include? 'en'
|
|
|
|
= javascript_pack_tag "locales/#{@theme[:flavour]}/en", integrity: true, crossorigin: 'anonymous'
|
2016-02-22 07:00:20 -08:00
|
|
|
= csrf_meta_tags
|
2020-07-06 16:33:38 -07:00
|
|
|
%meta{ name: 'style-nonce', content: request.content_security_policy_nonce }
|
2016-09-29 15:00:45 -07:00
|
|
|
|
2020-05-08 12:22:57 -07:00
|
|
|
= stylesheet_link_tag '/inert.css', skip_pipeline: true, media: 'all', id: 'inert-style'
|
|
|
|
|
2016-02-28 05:41:01 -08:00
|
|
|
= yield :header_tags
|
2016-09-29 15:00:45 -07:00
|
|
|
|
2017-11-20 22:13:37 -08: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
|
|
|
|
|
2019-04-04 10:38:48 -07:00
|
|
|
- if Setting.custom_css.present?
|
|
|
|
= stylesheet_link_tag custom_css_path, media: 'all'
|
|
|
|
|
2018-08-25 13:55:25 -07:00
|
|
|
%body{ class: body_classes }
|
2016-03-12 07:09:46 -08:00
|
|
|
= content_for?(:content) ? yield(:content) : yield
|
2019-05-26 18:33:39 -07:00
|
|
|
|
2020-04-28 01:16:55 -07:00
|
|
|
.logo-resources
|
2019-05-26 18:33:39 -07:00
|
|
|
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg')
|
2019-06-08 06:30:06 -07:00
|
|
|
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_full.svg')
|