Skip to content

Commit

Permalink
Add XML for OpenSearch
Browse files Browse the repository at this point in the history
  • Loading branch information
maximilian-walter committed Sep 9, 2024
1 parent 3a058a6 commit 476c2be
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 0 deletions.
10 changes: 10 additions & 0 deletions app/App/MetaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,14 @@ public function licenses()
'jsLibData' => file_get_contents(base_path('dev/licensing/js-library-licenses.txt')),
]);
}

/**
* Show the view for /opensearch.xml.
*/
public function opensearch()
{
return response()
->view('misc.opensearch')
->header('Content-Type', 'application/opensearchdescription+xml');
}
}
3 changes: 3 additions & 0 deletions resources/views/layouts/base.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class="{{ setting()->getForCurrentUser('dark-mode-enabled') ? 'dark-mode ' : ''
<link rel="manifest" href="{{ url('/manifest.json') }}">
<meta name="mobile-web-app-capable" content="yes">

<!-- OpenSearch -->
<link rel="search" type="application/opensearchdescription+xml" title="{{ setting('app-name') }}" href="{{ url('/opensearch.xml') }}">

@yield('head')

<!-- Custom Styles & Head Content -->
Expand Down
11 changes: 11 additions & 0 deletions resources/views/misc/opensearch.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>{{ setting('app-name') }}</ShortName>
<Description>Search {{ setting('app-name') }}</Description>
<Image width="256" height="256" type="image/png">{{ setting('app-icon') ?: url('/icon.png') }}</Image>
<Image width="180" height="180" type="image/png">{{ setting('app-icon-180') ?: url('/icon-180.png') }}</Image>
<Image width="128" height="128" type="image/png">{{ setting('app-icon-128') ?: url('/icon-128.png') }}</Image>
<Image width="64" height="64" type="image/png">{{ setting('app-icon-64') ?: url('/icon-64.png') }}</Image>
<Image width="32" height="32" type="image/png">{{ setting('app-icon-32') ?: url('/icon-32.png') }}</Image>
<Url type="text/html" rel="results" method="get" template="{{ url('/search') }}?term={searchTerms}"/>
<Url type="application/opensearchdescription+xml" rel="self" template="{{ url('/opensearch.xml') }}"/>
</OpenSearchDescription>
1 change: 1 addition & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
Route::get('/favicon.ico', [MetaController::class, 'favicon']);
Route::get('/manifest.json', [MetaController::class, 'pwaManifest']);
Route::get('/licenses', [MetaController::class, 'licenses']);
Route::get('/opensearch.xml', [MetaController::class, 'opensearch']);

// Authenticated routes...
Route::middleware('auth')->group(function () {
Expand Down

0 comments on commit 476c2be

Please sign in to comment.