Merge pull request #2599 from asmaloney/opengraph-book-and-list

Improve Open Graph data for books and add it for lists
This commit is contained in:
Hugh Rundle 2023-01-20 07:58:34 +11:00 committed by GitHub
commit d97d6acfa4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 1 deletions

View file

@ -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 %}

View file

@ -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 %}
<header class="columns content is-mobile">
<div class="column">

View file

@ -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}"