c3e12a4dfa
Load the `common` style pack, and then charge the style pack for the current skin, independent from any selected JS pack.
57 lines
2.5 KiB
Plaintext
Executable File
57 lines
2.5 KiB
Plaintext
Executable File
!!! 5
|
|
%html{ lang: I18n.locale }
|
|
%head
|
|
%meta{ charset: 'utf-8' }/
|
|
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
|
|
|
|
- if cdn_host?
|
|
%link{ rel: 'dns-prefetch', href: cdn_host }/
|
|
%meta{ name: 'cdn-host', content: cdn_host }/
|
|
|
|
- if storage_host?
|
|
%link{ rel: 'dns-prefetch', href: storage_host }/
|
|
|
|
%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: frontend_asset_path("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: frontend_asset_path("icons/apple-touch-icon-#{size}x#{size}.png") }/
|
|
|
|
%link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
|
|
%link{ rel: 'manifest', href: manifest_path(format: :json) }/
|
|
%meta{ name: 'theme-color', content: '#191b22' }/
|
|
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
|
|
|
|
%title= html_title
|
|
|
|
= stylesheet_pack_tag 'flavours/vanilla/common', media: 'all', crossorigin: 'anonymous' # upstream uses `common` but that's implicitly defined
|
|
= stylesheet_pack_tag current_theme, media: 'all', crossorigin: 'anonymous'
|
|
|
|
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
|
|
= stylesheet_pack_tag 'flavours/vanilla/inert', media: 'all', id: 'inert-style'
|
|
|
|
= javascript_pack_tag 'common', crossorigin: 'anonymous'
|
|
- if @theme
|
|
- if @theme[:supported_locales].include? I18n.locale.to_s
|
|
= preload_pack_asset "locales/#{@theme[:flavour]}/#{I18n.locale}-json.js"
|
|
- elsif @theme[:supported_locales].include? 'en'
|
|
= preload_pack_asset "locales/#{@theme[:flavour]}/en-json.js"
|
|
= csrf_meta_tags unless skip_csrf_meta_tags?
|
|
%meta{ name: 'style-nonce', content: request.content_security_policy_nonce }
|
|
|
|
= stylesheet_link_tag custom_css_path, skip_pipeline: true, host: root_url, media: 'all'
|
|
|
|
= yield :header_tags
|
|
|
|
-# These must come after :header_tags to ensure our initial state has been defined.
|
|
= render partial: 'layouts/theme', object: @theme
|
|
|
|
%body{ class: body_classes }
|
|
= content_for?(:content) ? yield(:content) : yield
|
|
|
|
.logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
|
|
= inline_svg_tag 'logo-symbol-icon.svg'
|
|
= inline_svg_tag 'logo-symbol-wordmark.svg'
|