3 namespace BookStack\App;
5 use BookStack\Http\Controller;
7 class PwaManifestBuilder extends Controller
9 private function GenerateManifest()
12 "name" => setting('app-name'),
13 "short_name" => setting('app-name'),
16 "display" => "standalone",
17 "background_color" => (setting()->getForCurrentUser('dark-mode-enabled') ? setting('app-color-dark') : setting('app-color')),
18 "description" => setting('app-name'),
19 "theme_color" => (setting()->getForCurrentUser('dark-mode-enabled') ? setting('app-color-dark') : setting('app-color')),
21 "client_mode" => "focus-existing"
23 "orientation" => "portrait",
26 "src" => setting('app-icon-64') ?: url('/icon-64.png'),
31 "src" => setting('app-icon-32') ?: url('/icon-32.png'),
36 "src" => setting('app-icon-128') ?: url('/icon-128.png'),
41 "src" => setting('app-icon-180') ?: url('/icon-180.png'),
46 "src" => setting('app-icon') ?: url('/icon.png'),
51 "src" => public_path('icon.ico'),
53 "type" => "image/vnd.microsoft.icon"
56 "src" => public_path('favicon.ico'),
58 "type" => "image/vnd.microsoft.icon"
65 * Serve the application manifest.
66 * Ensures a 'manifest.json'
68 public function manifest()
70 return response()->json($this->GenerateManifest());