goon/app/templates/seo/_cards.html
jtrzupek 9c49a69a66 feat(seo): public HTML SEO router + templates; add CLAUDE.md; ignore .nimbalyst
- app/api/seo.py (+ app/templates/seo/*): publiczny HTML SEO router (programmatic
  entity long-tail: performer/studio/scene/landing/2257), bez api-key. Importowany
  przez main.py — wymagany do uruchomienia, dotąd untracked. Opsec-clean (brak
  VPS IP/sekretów).
- CLAUDE.md: instrukcje projektu (dotąd untracked).
- .gitignore: .nimbalyst/ (lokalne tracker-tooling, nie dla OSS repo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 16:29:59 +02:00

16 lines
699 B
HTML

{# Siatka kart scen. Wymaga: scenes, cards; opcjonalnie studios (mapa studio_id→Studio). #}
<div class="grid">
{% for s in scenes %}
<a class="card" href="{{ base_url }}/scene/{{ s.id }}">
{% if cards[s.id].thumb %}
<img src="{{ cards[s.id].thumb }}" alt="{{ s.title }}" loading="lazy">
{% endif %}
<div class="t">{{ s.title }}
<div class="s">
{% if studios is defined and s.studio_id and studios.get(s.studio_id) %}{{ studios[s.studio_id].name }} · {% endif %}
{% if s.release_date %}{{ s.release_date.year }} · {% endif %}{{ cards[s.id].sources }} source{{ 's' if cards[s.id].sources != 1 else '' }}
</div>
</div>
</a>
{% endfor %}
</div>