@extends('kb.layout')
@section('title', $article->displayTitle() . ' — ' . $site_title)
@section('description', \Illuminate\Support\Str::limit(strip_tags($article->answer), 158))
@section('crumb', $article->displayTitle())
@section('subtitle', __('Knowledge base article.'))
@section('content')
← {{ __('All articles') }}
{{ $article->displayTitle() }}
{{--
The answer body is operator-curated markdown rendered to HTML
for the public visitor. Use the SafeMarkdown helper — NOT
Illuminate\Support\Str::markdown — because the latter ships
with html_input='allow' + allow_unsafe_links=true, meaning a
stored payload like `
` or `[x](javascript:...)`
becomes live XSS on every visitor browser. SafeMarkdown swaps
in html_input='strip' + allow_unsafe_links=false.
--}}
{!! \App\Support\SafeMarkdown::render((string) $article->answer) !!}
@endsection