2015-07-13 03:01:42 +08:00
|
|
|
<!DOCTYPE html>
|
2023-09-18 00:35:00 +08:00
|
|
|
<html lang="{{ isset($locale) ? $locale->htmlLang() : config('app.default_locale') }}"
|
|
|
|
dir="{{ isset($locale) ? $locale->htmlDirection() : 'auto' }}"
|
2022-07-24 01:29:04 +08:00
|
|
|
class="{{ setting()->getForCurrentUser('dark-mode-enabled') ? 'dark-mode ' : '' }}">
|
2015-07-13 03:01:42 +08:00
|
|
|
<head>
|
2016-08-14 19:29:35 +08:00
|
|
|
<title>{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }}</title>
|
2015-08-29 23:00:19 +08:00
|
|
|
|
2015-12-01 06:23:48 +08:00
|
|
|
<!-- Meta -->
|
2023-01-26 00:11:34 +08:00
|
|
|
<meta charset="utf-8">
|
2015-07-13 03:01:42 +08:00
|
|
|
<meta name="viewport" content="width=device-width">
|
2015-08-13 06:42:42 +08:00
|
|
|
<meta name="token" content="{{ csrf_token() }}">
|
2019-08-04 21:26:39 +08:00
|
|
|
<meta name="base-url" content="{{ url('/') }}">
|
2023-09-22 17:31:24 +08:00
|
|
|
<meta name="theme-color" content="{{(setting()->getForCurrentUser('dark-mode-enabled') ? setting('app-color-dark') : setting('app-color'))}}"/>
|
2015-08-29 23:00:19 +08:00
|
|
|
|
2020-12-22 13:20:13 +08:00
|
|
|
<!-- Social Cards Meta -->
|
|
|
|
<meta property="og:title" content="{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }}">
|
|
|
|
<meta property="og:url" content="{{ url()->current() }}">
|
|
|
|
@stack('social-meta')
|
|
|
|
|
2023-10-03 22:12:23 +08:00
|
|
|
<!-- Styles -->
|
2018-03-17 21:03:13 +08:00
|
|
|
<link rel="stylesheet" href="{{ versioned_asset('dist/styles.css') }}">
|
2015-08-29 23:00:19 +08:00
|
|
|
|
2023-01-25 19:03:19 +08:00
|
|
|
<!-- Icons -->
|
2023-01-26 00:11:34 +08:00
|
|
|
<link rel="icon" type="image/png" sizes="256x256" href="{{ setting('app-icon') ?: url('/icon.png') }}">
|
|
|
|
<link rel="icon" type="image/png" sizes="180x180" href="{{ setting('app-icon-180') ?: url('/icon-180.png') }}">
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ setting('app-icon-180') ?: url('/icon-180.png') }}">
|
|
|
|
<link rel="icon" type="image/png" sizes="128x128" href="{{ setting('app-icon-128') ?: url('/icon-128.png') }}">
|
|
|
|
<link rel="icon" type="image/png" sizes="64x64" href="{{ setting('app-icon-64') ?: url('/icon-64.png') }}">
|
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ setting('app-icon-32') ?: url('/icon-32.png') }}">
|
2023-01-25 19:03:19 +08:00
|
|
|
|
2023-08-10 21:44:27 +08:00
|
|
|
<!-- PWA -->
|
2023-11-07 22:33:37 +08:00
|
|
|
<link rel="manifest" href="{{ url('/manifest.json') }}">
|
2023-10-02 22:54:39 +08:00
|
|
|
<meta name="mobile-web-app-capable" content="yes">
|
2023-08-10 21:44:27 +08:00
|
|
|
|
2024-09-10 04:54:33 +08:00
|
|
|
<!-- OpenSearch -->
|
|
|
|
<link rel="search" type="application/opensearchdescription+xml" title="{{ setting('app-name') }}" href="{{ url('/opensearch.xml') }}">
|
|
|
|
|
2019-07-06 21:52:25 +08:00
|
|
|
<!-- Custom Styles & Head Content -->
|
2023-09-24 17:29:51 +08:00
|
|
|
@include('layouts.parts.custom-styles')
|
|
|
|
@include('layouts.parts.custom-head')
|
2015-08-29 23:00:19 +08:00
|
|
|
|
2019-04-14 20:01:51 +08:00
|
|
|
@stack('head')
|
2019-07-06 21:52:25 +08:00
|
|
|
|
|
|
|
<!-- Translations for JS -->
|
|
|
|
@stack('translations')
|
2018-10-17 01:49:16 +08:00
|
|
|
</head>
|
2022-11-09 05:17:45 +08:00
|
|
|
<body
|
|
|
|
@if(setting()->getForCurrentUser('ui-shortcuts-enabled', false))
|
|
|
|
component="shortcuts"
|
|
|
|
option:shortcuts:key-map="{{ \BookStack\Settings\UserShortcutMap::fromUserPreferences()->toJson() }}"
|
|
|
|
@endif
|
|
|
|
class="@stack('body-class')">
|
2015-08-31 18:43:28 +08:00
|
|
|
|
2022-06-22 19:47:31 +08:00
|
|
|
@include('layouts.parts.base-body-start')
|
2023-09-24 17:29:51 +08:00
|
|
|
@include('layouts.parts.skip-to-content')
|
|
|
|
@include('layouts.parts.notifications')
|
|
|
|
@include('layouts.parts.header')
|
2015-07-22 05:11:30 +08:00
|
|
|
|
2021-04-20 04:41:13 +08:00
|
|
|
<div id="content" components="@yield('content-components')" class="block">
|
2015-07-13 03:01:42 +08:00
|
|
|
@yield('content')
|
2019-08-25 22:44:51 +08:00
|
|
|
</div>
|
2015-07-13 03:01:42 +08:00
|
|
|
|
2023-09-24 17:29:51 +08:00
|
|
|
@include('layouts.parts.footer')
|
2020-03-19 11:28:06 +08:00
|
|
|
|
2022-11-15 07:19:02 +08:00
|
|
|
<div component="back-to-top" class="back-to-top print-hidden">
|
2016-02-09 04:42:41 +08:00
|
|
|
<div class="inner">
|
2018-02-18 03:49:00 +08:00
|
|
|
@icon('chevron-up') <span>{{ trans('common.back_to_top') }}</span>
|
2016-02-09 04:42:41 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2018-10-17 01:49:16 +08:00
|
|
|
|
2023-09-12 19:34:02 +08:00
|
|
|
@if($cspNonce ?? false)
|
2024-10-01 17:37:31 +08:00
|
|
|
<script src="{{ versioned_asset('dist/app.js') }}" type="module" nonce="{{ $cspNonce }}"></script>
|
2023-09-12 19:34:02 +08:00
|
|
|
@endif
|
2024-10-01 17:37:31 +08:00
|
|
|
@stack('body-end')
|
2018-10-17 01:49:16 +08:00
|
|
|
|
2022-06-22 19:47:31 +08:00
|
|
|
@include('layouts.parts.base-body-end')
|
2015-07-13 03:01:42 +08:00
|
|
|
</body>
|
|
|
|
</html>
|