renderMarkdown( 'hinweise.md', __('Hinweise'), __('Allgemeine Hinweise zur Warenwirtschaft'), __('Noch keine Hinweise hinterlegt.') ); } public function guide(): View { return $this->renderMarkdown( 'testleitfaden.md', __('Leitfaden'), __('Testleitfaden durch die neuen Funktionen der Warenwirtschaft'), __('Noch kein Leitfaden hinterlegt.') ); } protected function renderMarkdown(string $file, string $title, string $subtitle, string $fallback): View { $path = resource_path('docs/'.$file); $markdown = File::exists($path) ? File::get($path) : $fallback; return view('admin.inventory.notices.index', [ 'title' => $title, 'subtitle' => $subtitle, // Audit N-15: Roh-HTML im Markdown strippen (Defense-in-Depth). 'content' => Str::markdown($markdown, ['html_input' => 'strip', 'allow_unsafe_links' => false]), ]); } }