the browser-facing portion of osu!
at master 124 lines 4.7 kB view raw
1{{-- 2 Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 3 See the LICENCE file in the repository root for full licence text. 4--}} 5@php 6 $appUrl = $GLOBALS['cfg']['app']['url']; 7 $currentLocale = App::getLocale(); 8 $fallbackLocale = $GLOBALS['cfg']['app']['fallback_locale']; 9 $opengraph = Request::instance()->attributes->get('opengraph'); 10 11 $opengraph['description'] ??= $pageDescription ?? null; 12@endphp 13<link rel="apple-touch-icon" sizes="180x180" href="{{ $appUrl }}/images/favicon/apple-touch-icon.png"> 14<link rel="icon" sizes="32x32" href="{{ $appUrl }}/images/favicon/favicon-32x32.png"> 15<link rel="icon" sizes="16x16" href="{{ $appUrl }}/images/favicon/favicon-16x16.png"> 16<link rel="manifest" href="{{ $appUrl }}/site.webmanifest"> 17<link rel="mask-icon" href="{{ $appUrl }}/images/favicon/safari-pinned-tab.svg" color="#e2609a"> 18<meta name="msapplication-TileColor" content="#603cba"> 19<meta name="theme-color" content="{{ hsl_to_hex($currentHue, 0.1, 0.4) }}"> {{-- @osu-colour-b1 --}} 20 21<meta charset="utf-8"> 22<meta name="description" content="{{ $opengraph['description'] ?? osu_trans('layout.defaults.page_description') }}"> 23<meta name="keywords" content="osu, peppy, ouendan, elite, beat, agents, ds, windows, game, taiko, tatsujin, simulator, sim, xna, ddr, beatmania, osu!, osume"> 24<meta name="viewport" content="width=device-width, initial-scale=1.0"> 25 26<meta name="turbo-cache-control" content="no-preview"> 27<meta name="turbo-prefetch" content="false"> 28 29<link rel="search" type="application/opensearchdescription+xml" title="osu! search" href="{{ $appUrl }}/opensearch.xml"> 30 31<meta property="og:site_name" content="osu!"> 32<meta property="og:type" content="website"> 33 34@if (isset($canonicalUrl)) 35 <meta property="og:url" content="{{ $canonicalUrl }}"> 36@endif 37 38@foreach ($opengraph as $key => $value) 39 @if (present($value)) 40 @if ($key === 'title') 41 <meta property="og:{{ $key }}" content="{{ $value }} · {{ page_title() }}"> 42 @else 43 <meta property="og:{{ $key }}" content="{{ $value }}"> 44 @endif 45 @endif 46@endforeach 47 48@if ($noindex ?? false) 49 <meta name="robots" content="noindex"> 50@endif 51 52<meta name="csrf-param" content="_token"> 53<meta name="csrf-token" content="{{ $currentUser === null ? '' : csrf_token() }}"> 54 55@switch($currentLocale) 56 @case('vi') 57 <link href="https://fonts.googleapis.com/css?family=Quicksand:300,400,500,600,700&display=swap&subset=vietnamese" rel="stylesheet"> 58 <style> 59 :root { 60 --font-default-override: var(--font-default-vi); 61 } 62 </style> 63 @break 64 @case('zh') 65 <style> 66 :root { 67 --font-default-override: var(--font-default-zh); 68 } 69 </style> 70 @break 71 @case('zh-tw') 72 <style> 73 :root { 74 --font-default-override: var(--font-default-zh-tw); 75 } 76 </style> 77 @break 78 @case('th') 79 <link href="https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600&display=swap&subset=thai" rel="stylesheet"> 80 <style> 81 :root { 82 --font-default-override: var(--font-default-th); 83 } 84 </style> 85 @break 86@endswitch 87 88<link rel="stylesheet" media="all" href="{{ unmix('css/app.css') }}" data-turbo-track="reload"> 89 90<script> 91 var currentLocale = {!! json_encode($currentLocale) !!}; 92 var fallbackLocale = {!! json_encode($fallbackLocale) !!}; 93 var experimentalHost = {!! json_encode(osu_url('experimental_host')) !!} 94</script> 95 96<script src="{{ unmix('js/runtime.js') }}" data-turbo-eval="false"></script> 97<script src="{{ unmix('js/vendor.js') }}" data-turbo-eval="false"></script> 98 99<script src="{{ unmix("js/locales/{$currentLocale}.js") }}" data-turbo-track="reload"></script> 100@if ($fallbackLocale !== $currentLocale) 101 <script src="{{ unmix("js/locales/{$fallbackLocale}.js") }}" data-turbo-track="reload"></script> 102@endif 103 104<script src="{{ unmix('js/commons.js') }}" data-turbo-eval="false"></script> 105<script src="{{ unmix('js/app.js') }}" data-turbo-eval="false"></script> 106 107<script 108 src="{{ unmix("js/moment-locales/{$currentLocaleMeta->moment()}.js") }}" 109 data-turbo-eval="false" 110></script> 111 112@if (isset($atom)) 113 <link rel="alternate" type="application/atom+xml" title="{{ $atom['title'] }}" href="{{ $atom['url'] }}"> 114@endif 115 116@if (isset($canonicalUrl)) 117 <link rel="canonical" href="{{ $canonicalUrl }}"> 118@endif 119 120@if (isset($translatedPages)) 121 @foreach ($translatedPages as $l => $url) 122 <link rel="alternate" hreflang="{{ $l }}" href="{{ $url }}" /> 123 @endforeach 124@endif