diff --git a/.env.example b/.env.example index a0a1b72e6..4dee3b334 100644 --- a/.env.example +++ b/.env.example @@ -37,8 +37,10 @@ MAIL_FROM=bookstack@example.com # SMTP mail options # These settings can be checked using the "Send a Test Email" # feature found in the "Settings > Maintenance" area of the system. +# For more detailed documentation on mail options, refer to: +# https://www.bookstackapp.com/docs/admin/email-webhooks/#email-configuration MAIL_HOST=localhost -MAIL_PORT=1025 +MAIL_PORT=587 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null diff --git a/.env.example.complete b/.env.example.complete index 03e52d6bb..e8520a24c 100644 --- a/.env.example.complete +++ b/.env.example.complete @@ -3,6 +3,10 @@ # Each option is shown with it's default value. # Do not copy this whole file to use as your '.env' file. +# The details here only serve as a quick reference. +# Please refer to the BookStack documentation for full details: +# https://www.bookstackapp.com/docs/ + # Application environment # Can be 'production', 'development', 'testing' or 'demo' APP_ENV=production @@ -65,20 +69,20 @@ DB_PASSWORD=database_user_password # certificate itself (Common Name or Subject Alternative Name). MYSQL_ATTR_SSL_CA="/path/to/ca.pem" -# Mail system to use -# Can be 'smtp' or 'sendmail' +# Mail configuration +# Refer to https://www.bookstackapp.com/docs/admin/email-webhooks/#email-configuration MAIL_DRIVER=smtp - -# Mail sending options -MAIL_FROM=mail@bookstackapp.com +MAIL_FROM=bookstack@example.com MAIL_FROM_NAME=BookStack -# SMTP mail options MAIL_HOST=localhost -MAIL_PORT=1025 +MAIL_PORT=587 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null +MAIL_VERIFY_SSL=true + +MAIL_SENDMAIL_COMMAND="/usr/sbin/sendmail -bs" # Cache & Session driver to use # Can be 'file', 'database', 'memcached' or 'redis' @@ -268,6 +272,8 @@ OIDC_DUMP_USER_DETAILS=false OIDC_USER_TO_GROUPS=false OIDC_GROUPS_CLAIM=groups OIDC_REMOVE_FROM_GROUPS=false +OIDC_EXTERNAL_ID_CLAIM=sub +OIDC_END_SESSION_ENDPOINT=false # Disable default third-party services such as Gravatar and Draw.IO # Service-specific options will override this option @@ -318,6 +324,13 @@ FILE_UPLOAD_SIZE_LIMIT=50 # Can be 'a4' or 'letter'. EXPORT_PAGE_SIZE=a4 +# Set path to wkhtmltopdf binary for PDF generation. +# Can be 'false' or a path path like: '/home/bins/wkhtmltopdf' +# When false, BookStack will attempt to find a wkhtmltopdf in the application +# root folder then fall back to the default dompdf renderer if no binary exists. +# Only used if 'ALLOW_UNTRUSTED_SERVER_FETCHING=true' which disables security protections. +WKHTMLTOPDF=false + # Allow + @if($cspNonce ?? false) + + @endif @yield('scripts') @include('layouts.parts.base-body-end') diff --git a/resources/views/layouts/export.blade.php b/resources/views/layouts/export.blade.php index e041d8dea..4a55e034c 100644 --- a/resources/views/layouts/export.blade.php +++ b/resources/views/layouts/export.blade.php @@ -1,5 +1,5 @@ - + @yield('title') @@ -13,7 +13,7 @@ @include('layouts.parts.export-body-start') -
+
@yield('content')
@include('layouts.parts.export-body-end') diff --git a/resources/views/common/custom-head.blade.php b/resources/views/layouts/parts/custom-head.blade.php similarity index 100% rename from resources/views/common/custom-head.blade.php rename to resources/views/layouts/parts/custom-head.blade.php diff --git a/resources/views/layouts/parts/custom-styles.blade.php b/resources/views/layouts/parts/custom-styles.blade.php new file mode 100644 index 000000000..bfdcc8512 --- /dev/null +++ b/resources/views/layouts/parts/custom-styles.blade.php @@ -0,0 +1,15 @@ +@php + $settingSuffix = setting()->getForCurrentUser('dark-mode-enabled') ? '-dark' : ''; +@endphp + diff --git a/resources/views/common/footer.blade.php b/resources/views/layouts/parts/footer.blade.php similarity index 91% rename from resources/views/common/footer.blade.php rename to resources/views/layouts/parts/footer.blade.php index dd488dce5..4275866bc 100644 --- a/resources/views/common/footer.blade.php +++ b/resources/views/layouts/parts/footer.blade.php @@ -1,5 +1,5 @@ @if(count(setting('app-footer-links', [])) > 0) -
\ No newline at end of file diff --git a/resources/views/common/skip-to-content.blade.php b/resources/views/layouts/parts/skip-to-content.blade.php similarity index 100% rename from resources/views/common/skip-to-content.blade.php rename to resources/views/layouts/parts/skip-to-content.blade.php diff --git a/resources/views/layouts/plain.blade.php b/resources/views/layouts/plain.blade.php index 043d8aa48..37ebbe83d 100644 --- a/resources/views/layouts/plain.blade.php +++ b/resources/views/layouts/plain.blade.php @@ -1,6 +1,6 @@ - {{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }} @@ -9,13 +9,12 @@ - + - - @include('common.custom-styles') - @include('common.custom-head') + @include('layouts.parts.custom-styles') + @include('layouts.parts.custom-head') @yield('content') diff --git a/resources/views/layouts/tri.blade.php b/resources/views/layouts/tri.blade.php index e0f16321f..c3cedf0fb 100644 --- a/resources/views/layouts/tri.blade.php +++ b/resources/views/layouts/tri.blade.php @@ -11,7 +11,7 @@ refs="tri-layout@tab" data-tab="info" aria-label="{{ trans('common.tab_info_label') }}" - class="tri-layout-mobile-tab px-m py-m text-primary"> + class="tri-layout-mobile-tab px-m py-m text-link"> {{ trans('common.tab_info') }} @@ -27,10 +27,20 @@
- - -
@stop diff --git a/resources/views/mfa/parts/setup-method-row.blade.php b/resources/views/mfa/parts/setup-method-row.blade.php index 271ec1bf4..b12028437 100644 --- a/resources/views/mfa/parts/setup-method-row.blade.php +++ b/resources/views/mfa/parts/setup-method-row.blade.php @@ -19,7 +19,7 @@
{{ csrf_field() }} {{ method_field('delete') }} - +
diff --git a/resources/views/pages/copy.blade.php b/resources/views/pages/copy.blade.php index 9f249863a..0d153bdf5 100644 --- a/resources/views/pages/copy.blade.php +++ b/resources/views/pages/copy.blade.php @@ -29,7 +29,7 @@
-
diff --git a/resources/views/pages/edit.blade.php b/resources/views/pages/edit.blade.php index 98adc849c..841b27503 100644 --- a/resources/views/pages/edit.blade.php +++ b/resources/views/pages/edit.blade.php @@ -10,7 +10,6 @@ @if(!$isDraft) {{ method_field('PUT') }} @endif @include('pages.parts.form', ['model' => $page]) - @include('pages.parts.editor-toolbox')
diff --git a/resources/views/pages/parts/code-editor.blade.php b/resources/views/pages/parts/code-editor.blade.php index 18c9ad423..8700a4ccb 100644 --- a/resources/views/pages/parts/code-editor.blade.php +++ b/resources/views/pages/parts/code-editor.blade.php @@ -23,10 +23,10 @@
@php $languages = [ - 'Bash', 'CSS', 'C', 'C++', 'C#', 'Dart', 'Diff', 'Fortran', 'F#', 'Go', 'Haskell', 'HTML', 'INI', - 'Java', 'JavaScript', 'JSON', 'Julia', 'Kotlin', 'LaTeX', 'Lua', 'MarkDown', 'MATLAB', 'Nginx', 'OCaml', - 'Octave', 'Pascal', 'Perl', 'PHP', 'Powershell', 'Python', 'Ruby', 'Rust', 'Shell', 'SQL', 'Swift', - 'TypeScript', 'VBScript', 'VB.NET', 'XML', 'YAML', + 'Bash', 'CSS', 'C', 'C++', 'C#', 'Clojure', 'Dart', 'Diff', 'Fortran', 'F#', 'Go', 'Haskell', 'HTML', 'INI', + 'Java', 'JavaScript', 'JSON', 'Julia', 'Kotlin', 'LaTeX', 'Lua', 'MarkDown', 'MATLAB', 'MSSQL', 'MySQL', 'Nginx', 'OCaml', + 'Octave', 'Pascal', 'Perl', 'PHP', 'PL/SQL', 'PostgreSQL', 'Powershell', 'Python', 'Ruby', 'Rust', 'Scheme', 'Shell', 'Smarty', + 'SQL', 'SQLite', 'Swift', 'Twig', 'TypeScript', 'VBScript', 'VB.NET', 'XML', 'YAML', ]; @endphp diff --git a/resources/views/pages/parts/editor-toolbar.blade.php b/resources/views/pages/parts/editor-toolbar.blade.php index fa5cb7374..d25f6a0a4 100644 --- a/resources/views/pages/parts/editor-toolbar.blade.php +++ b/resources/views/pages/parts/editor-toolbar.blade.php @@ -1,88 +1,116 @@ -
-
+
-
+
+
@icon('back'){{ trans('common.back') }} + class="icon-list-item text-link">@icon('back'){{ trans('common.back') }}
+
-
-