Skip to content

Commit c2df0d0

Browse files
committed
feat: Add meta tags for primary pages
1 parent c19b28b commit c2df0d0

4 files changed

Lines changed: 71 additions & 4 deletions

File tree

dome/templates/base.html

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% load static %}
1+
{% load static dome_tags %}
22
<!DOCTYPE html>
33
<html lang="en">
44
<head>
@@ -9,6 +9,19 @@
99
{% endblock title %}
1010
| Dome
1111
</title>
12+
{% block meta %}
13+
{# AIDEV-NOTE: Default site-wide OG/Twitter fallback tags. Override this block per page for richer previews. #}
14+
<meta property="og:site_name" content="Dome">
15+
<meta property="og:type" content="website">
16+
<meta property="og:title" content="Dome">
17+
<meta property="og:description" content="Track and rate your favourite movies, shows, games, and books.">
18+
<meta property="og:url" content="{{ request.build_absolute_uri }}">
19+
<meta property="og:image" content="{{ base_url }}{% static 'apple-touch-icon.png' %}">
20+
<meta name="twitter:card" content="summary">
21+
<meta name="twitter:title" content="Dome">
22+
<meta name="twitter:description" content="Track and rate your favourite movies, shows, games, and books.">
23+
<meta name="twitter:image" content="{{ base_url }}{% static 'apple-touch-icon.png' %}">
24+
{% endblock meta %}
1225
<link rel="preconnect" href="https://fonts.bunny.net">
1326
<link href="https://fonts.bunny.net/css?family=sora:400,700" rel="stylesheet" />
1427
<link rel="stylesheet" href="{% static 'css/base.css' %}" />

entities/templates/entities/entities_detail.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,26 @@
11
{% extends "base.html" %}
2-
{% load dome_tags entities %}
2+
{% load static dome_tags entities %}
33
{% block title %}
44
{{ object.name }}
55
{% endblock title %}
6+
{% block meta %}
7+
{# AIDEV-NOTE: Rich OG/Twitter tags for entity detail pages. Image is the S3-hosted cover or a placeholder. #}
8+
<meta property="og:site_name" content="Dome">
9+
<meta property="og:type" content="article">
10+
<meta property="og:title" content="{{ object.name }}">
11+
<meta property="og:description" content="{{ object.description|default:"No description available."|truncatechars:200 }}">
12+
<meta property="og:url" content="{{ base_url }}{{ object.get_absolute_url }}">
13+
{% if object.image %}
14+
<meta property="og:image" content="{{ object.image|imageurl }}">
15+
<meta name="twitter:image" content="{{ object.image|imageurl }}">
16+
{% else %}
17+
<meta property="og:image" content="{{ base_url }}{% static 'img/image-placeholder.png' %}">
18+
<meta name="twitter:image" content="{{ base_url }}{% static 'img/image-placeholder.png' %}">
19+
{% endif %}
20+
<meta name="twitter:card" content="summary_large_image">
21+
<meta name="twitter:title" content="{{ object.name }}">
22+
<meta name="twitter:description" content="{{ object.description|default:"No description available."|truncatechars:200 }}">
23+
{% endblock meta %}
624
{% block content %}
725
<!-- Back Button and Entity Type Badge -->
826
<div class="flex items-center justify-between mb-4">

tracking/templates/tracking/dashboard.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,26 @@
11
{% extends "base.html" %}
2-
{% load dome_tags entities %}
2+
{% load static dome_tags entities %}
33
{% block title %}
44
My Dashboard
55
{% endblock title %}
6+
{% block meta %}
7+
{# AIDEV-NOTE: OG tags for user dashboard. Uses avatar as image (with placeholder fallback). #}
8+
<meta property="og:site_name" content="Dome">
9+
<meta property="og:type" content="profile">
10+
<meta property="og:title" content="{{ user.username }} on Dome">
11+
<meta property="og:description" content="Check out {{ user.username }}'s media dashboard on Dome.">
12+
<meta property="og:url" content="{{ base_url }}{% url 'tracking:dashboard' user.username %}">
13+
{% if user.avatar %}
14+
<meta property="og:image" content="{{ user.avatar.url }}">
15+
<meta name="twitter:image" content="{{ user.avatar.url }}">
16+
{% else %}
17+
<meta property="og:image" content="{{ base_url }}{% static 'img/avatar-placeholder.png' %}">
18+
<meta name="twitter:image" content="{{ base_url }}{% static 'img/avatar-placeholder.png' %}">
19+
{% endif %}
20+
<meta name="twitter:card" content="summary">
21+
<meta name="twitter:title" content="{{ user.username }} on Dome">
22+
<meta name="twitter:description" content="Check out {{ user.username }}'s media dashboard on Dome.">
23+
{% endblock meta %}
624
{% block content %}
725
<div class="flex flex-col gap-6">
826
{# User header with neobrutalist design #}

tracking/templates/tracking/tracking_list.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,26 @@
11
{% extends "base.html" %}
2-
{% load dome_tags entities %}
2+
{% load static dome_tags entities %}
33
{% block title %}
44
{{ entity_type|title }}
55
{% endblock title %}
6+
{% block meta %}
7+
{# AIDEV-NOTE: OG tags for user tracking list pages. Uses avatar as image (with placeholder fallback). #}
8+
<meta property="og:site_name" content="Dome">
9+
<meta property="og:type" content="profile">
10+
<meta property="og:title" content="{{ user.username }}'s {{ entity_type|title }} on Dome">
11+
<meta property="og:description" content="Browse {{ user.username }}'s {{ entity_type|title }} collection on Dome.">
12+
<meta property="og:url" content="{{ base_url }}{% url 'tracking:tracking-list' user.username entity_type %}">
13+
{% if user.avatar %}
14+
<meta property="og:image" content="{{ user.avatar.url }}">
15+
<meta name="twitter:image" content="{{ user.avatar.url }}">
16+
{% else %}
17+
<meta property="og:image" content="{{ base_url }}{% static 'img/avatar-placeholder.png' %}">
18+
<meta name="twitter:image" content="{{ base_url }}{% static 'img/avatar-placeholder.png' %}">
19+
{% endif %}
20+
<meta name="twitter:card" content="summary">
21+
<meta name="twitter:title" content="{{ user.username }}'s {{ entity_type|title }} on Dome">
22+
<meta name="twitter:description" content="Browse {{ user.username }}'s {{ entity_type|title }} collection on Dome.">
23+
{% endblock meta %}
624
{% block content %}
725
<div class="flex flex-col gap-6">
826
{# User header - reusing from dashboard #}

0 commit comments

Comments
 (0)