web: RSS-Feed je Newsroom, RSS-Übersichtsseite, „RSS" in der Topleiste (Roadmap 3.1, Nachtrag)

- /{edition}/newsroom/{slug}/feed: Sichtbarkeit wie die Newsroom-Seite
  (aktiv, nicht entfernt, mindestens eine Meldung), Prüfung vor dem Cache,
  301 bei zusammengeführter Firma; Autodiscovery und Link „RSS-Feed" auf
  der Newsroom-Seite; Hub leitet auf das Portal der Firma.
- /{edition}/rss (RssPageController, static.rss DE/EN): Was RSS ist, wie
  ein Reader funktioniert, Hauptfeed, alle Branchen-Feeds mit Adresse,
  Muster des Newsroom-Feeds, Hinweise. Portalseite mit Portal-Kontext,
  Hub → presseecho, in Sitemap und llms.txt.
- Topleiste, Burger-Menü und Footer verlinken RSS neben FAQ/Hilfe/API.
- FeedController in portal/category/newsroom aufgeteilt; Panel
  „Auslieferung" nennt zusätzlich den Newsroom-Feed.
- Tests: FeedTest (+3), RssPageTest (4), StaticPagesTest, VisibilityStatsTest.
- dev/2026-09-01: Nachtrag in Protokoll Teil 11 und Roadmap 3.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-21 08:27:14 +00:00
parent 9d5e5a0b54
commit ff75159b8f
22 changed files with 577 additions and 55 deletions

View file

@ -94,6 +94,7 @@
<a href="{{ route('faq') }}" class="hidden lg:inline cursor-pointer hover:text-ink-on-dark transition-colors">FAQ</a>
<a href="{{ route('hilfe') }}" class="hidden lg:inline cursor-pointer hover:text-ink-on-dark transition-colors">{{ __('web.header.help') }}</a>
<a href="{{ route('api') }}" class="hidden lg:inline cursor-pointer hover:text-ink-on-dark transition-colors">API</a>
<a href="{{ route('rss') }}" class="hidden lg:inline cursor-pointer hover:text-ink-on-dark transition-colors">RSS</a>
</span>
</div>
</div>
@ -441,7 +442,7 @@
{{-- Service-Links: auf Mobile sonst nur im Footer erreichbar (FAQ/Hilfe/API liegen in der Topbar hinter lg:). --}}
<div class="mt-1 pt-1">
@foreach ([['label' => __('web.header.pricing'), 'href' => route('preise')], ['label' => 'FAQ', 'href' => route('faq')], ['label' => __('web.header.help'), 'href' => route('hilfe')], ['label' => 'API', 'href' => route('api')]] as $service)
@foreach ([['label' => __('web.header.pricing'), 'href' => route('preise')], ['label' => 'FAQ', 'href' => route('faq')], ['label' => __('web.header.help'), 'href' => route('hilfe')], ['label' => 'API', 'href' => route('api')], ['label' => 'RSS', 'href' => route('rss')]] as $service)
<a href="{{ $service['href'] }}"
class="flex items-center justify-between px-3 py-3 text-[13.5px] border-b border-bg-rule last:border-b-0 font-medium text-ink-3 hover:text-ink hover:bg-bg cursor-pointer transition-colors">
<span>{{ $service['label'] }}</span>