diff --git a/bookwyrm/templates/book/book.html b/bookwyrm/templates/book/book.html index 6ea051ab9..69cbb9eb8 100644 --- a/bookwyrm/templates/book/book.html +++ b/bookwyrm/templates/book/book.html @@ -8,7 +8,7 @@ {% block title %}{{ book|book_title }}{% endblock %} {% block opengraph %} - {% include 'snippets/opengraph.html' with image=book.preview_image %} + {% include 'snippets/opengraph.html' with title=book.title description=book|book_description image=book.preview_image %} {% endblock %} {% block content %} diff --git a/bookwyrm/templates/lists/layout.html b/bookwyrm/templates/lists/layout.html index e61d72b56..7e7b9d074 100644 --- a/bookwyrm/templates/lists/layout.html +++ b/bookwyrm/templates/lists/layout.html @@ -1,8 +1,13 @@ {% extends 'layout.html' %} {% load i18n %} +{% load list_page_tags %} {% block title %}{{ list.name }}{% endblock %} +{% block opengraph %} + {% include 'snippets/opengraph.html' with title=list|opengraph_title description=list|opengraph_description %} +{% endblock %} + {% block content %}
diff --git a/bookwyrm/templatetags/list_page_tags.py b/bookwyrm/templatetags/list_page_tags.py new file mode 100644 index 000000000..c5445050f --- /dev/null +++ b/bookwyrm/templatetags/list_page_tags.py @@ -0,0 +1,25 @@ +""" template filters for list page """ +from django import template +from django.utils.translation import gettext_lazy as _, ngettext + +from bookwyrm import models + + +register = template.Library() + + +@register.filter(name="opengraph_title") +def get_opengraph_title(book_list: models.List) -> str: + """Construct title for Open Graph""" + return _("Book List: %(name)s") % {"name": book_list.name} + + +@register.filter(name="opengraph_description") +def get_opengraph_description(book_list: models.List) -> str: + """Construct description for Open Graph""" + num_books = book_list.books.all().count() + num_books_str = ngettext( + "%(num)d book - by %(user)s", "%(num)d books - by %(user)s", num_books + ) % {"num": num_books, "user": book_list.user} + + return f"{book_list.description} {num_books_str}"