]> BookStack Code Mirror - bookstack/blob - resources/views/layouts/base.blade.php
Add XML for OpenSearch
[bookstack] / resources / views / layouts / base.blade.php
1 <!DOCTYPE html>
2 <html lang="{{ isset($locale) ? $locale->htmlLang() : config('app.default_locale') }}"
3       dir="{{ isset($locale) ? $locale->htmlDirection() : 'auto' }}"
4       class="{{ setting()->getForCurrentUser('dark-mode-enabled') ? 'dark-mode ' : '' }}">
5 <head>
6     <title>{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }}</title>
7
8     <!-- Meta -->
9     <meta charset="utf-8">
10     <meta name="viewport" content="width=device-width">
11     <meta name="token" content="{{ csrf_token() }}">
12     <meta name="base-url" content="{{ url('/') }}">
13     <meta name="theme-color" content="{{(setting()->getForCurrentUser('dark-mode-enabled') ? setting('app-color-dark') : setting('app-color'))}}"/>
14
15     <!-- Social Cards Meta -->
16     <meta property="og:title" content="{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }}">
17     <meta property="og:url" content="{{ url()->current() }}">
18     @stack('social-meta')
19
20     <!-- Styles -->
21     <link rel="stylesheet" href="{{ versioned_asset('dist/styles.css') }}">
22
23     <!-- Icons -->
24     <link rel="icon" type="image/png" sizes="256x256" href="{{ setting('app-icon') ?: url('/icon.png') }}">
25     <link rel="icon" type="image/png" sizes="180x180" href="{{ setting('app-icon-180') ?: url('/icon-180.png') }}">
26     <link rel="apple-touch-icon" sizes="180x180" href="{{ setting('app-icon-180') ?: url('/icon-180.png') }}">
27     <link rel="icon" type="image/png" sizes="128x128" href="{{ setting('app-icon-128') ?: url('/icon-128.png') }}">
28     <link rel="icon" type="image/png" sizes="64x64" href="{{ setting('app-icon-64') ?: url('/icon-64.png') }}">
29     <link rel="icon" type="image/png" sizes="32x32" href="{{ setting('app-icon-32') ?: url('/icon-32.png') }}">
30
31     <!-- PWA -->
32     <link rel="manifest" href="{{ url('/manifest.json') }}">
33     <meta name="mobile-web-app-capable" content="yes">
34
35     <!-- OpenSearch -->
36     <link rel="search" type="application/opensearchdescription+xml" title="{{ setting('app-name') }}" href="{{ url('/opensearch.xml') }}">
37
38     @yield('head')
39
40     <!-- Custom Styles & Head Content -->
41     @include('layouts.parts.custom-styles')
42     @include('layouts.parts.custom-head')
43
44     @stack('head')
45
46     <!-- Translations for JS -->
47     @stack('translations')
48 </head>
49 <body
50     @if(setting()->getForCurrentUser('ui-shortcuts-enabled', false))
51         component="shortcuts"
52         option:shortcuts:key-map="{{ \BookStack\Settings\UserShortcutMap::fromUserPreferences()->toJson() }}"
53     @endif
54       class="@stack('body-class')">
55
56     @include('layouts.parts.base-body-start')
57     @include('layouts.parts.skip-to-content')
58     @include('layouts.parts.notifications')
59     @include('layouts.parts.header')
60
61     <div id="content" components="@yield('content-components')" class="block">
62         @yield('content')
63     </div>
64
65     @include('layouts.parts.footer')
66
67     <div component="back-to-top" class="back-to-top print-hidden">
68         <div class="inner">
69             @icon('chevron-up') <span>{{ trans('common.back_to_top') }}</span>
70         </div>
71     </div>
72
73     @yield('bottom')
74     @stack('post-app-html')
75
76     @if($cspNonce ?? false)
77         <script src="{{ versioned_asset('dist/app.js') }}" nonce="{{ $cspNonce }}"></script>
78     @endif
79     @yield('scripts')
80     @stack('post-app-scripts')
81
82     @include('layouts.parts.base-body-end')
83 </body>
84 </html>