diff options
| -rwxr-xr-x | build-concerts.py | 16 | ||||
| -rw-r--r-- | concerts.in | 1 | ||||
| -rw-r--r-- | en/concerts.in | 1 | ||||
| -rw-r--r-- | helpers.py | 12 |
4 files changed, 26 insertions, 4 deletions
diff --git a/build-concerts.py b/build-concerts.py index ed37864..e1acfde 100755 --- a/build-concerts.py +++ b/build-concerts.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +from collections import OrderedDict from datetime import datetime from pathlib import Path from sys import argv @@ -45,7 +46,7 @@ THUMBNAILS_TEMPLATE = '''\ THUMBNAIL_TEMPLATE = '''\ <div class="{eventclasses}"> <a class="thumbnail" href="#{eventid}"> - <img src="{pic_file}" alt="{pic_alt}"> + <img {pic_attributes}> <p class="summary"> {summary} </p> @@ -88,11 +89,20 @@ def format_thumbnail(concert, imgdir, lang): alt_prefix = LOCALIZED_TEXT[lang]['alt'] + pic_attributes = OrderedDict(( + ('src', Path(imgdir, 'concerts', concert.illustration.file)), + ('alt', f'{alt_prefix} {concert.illustration.alt_text}'), + ('style', concert.illustration.style), + )) + return THUMBNAIL_TEMPLATE.format_map({ 'eventclasses': ' '.join(eventclasses), 'eventid': f'concert-{concert.time.strftime("%F")}', - 'pic_file': Path(imgdir, 'concerts', concert.illustration.file), - 'pic_alt': f'{alt_prefix} {concert.illustration.alt_text}', + 'pic_attributes': ' '.join( + f'{key}="{value}"' + for key, value in pic_attributes.items() + if value is not None + ), 'summary': summary, 'credits': format_credits(concert.illustration) }) diff --git a/concerts.in b/concerts.in index 14d4c32..bf34a6a 100644 --- a/concerts.in +++ b/concerts.in @@ -257,3 +257,4 @@ légende : Plage et falaise des Petites Dalles source : Superjuju10 lien : https://commons.wikimedia.org/wiki/File:Les_Petites_Dalles_03.jpg licence : CC BY-SA 3.0 +position : 50% 35% diff --git a/en/concerts.in b/en/concerts.in index d066472..3e6c318 100644 --- a/en/concerts.in +++ b/en/concerts.in @@ -257,3 +257,4 @@ légende : Beach and cliff of the Petites Dalles source : Superjuju10 lien : https://commons.wikimedia.org/wiki/File:Les_Petites_Dalles_03.jpg licence : CC BY-SA 3.0 +position : 50% 35% @@ -68,6 +68,7 @@ class Illustration: source_name: str source_link: Optional[str] license_info: Optional[LicenseInfo] + position: Optional[str] @classmethod def deserialize(cls, d): @@ -75,7 +76,15 @@ class Illustration: d['pic_alt'], d['pic_src'], d['pic_link'], - LicenseInfo.deserialize(d['pic_license'])) + LicenseInfo.deserialize(d['pic_license']), + d['pic_position']) + + @property + def style(self): + if self.position is None: + return None + + return f'object-position: {self.position}' @dataclass @@ -120,6 +129,7 @@ _CONCERT_LINES = ( r'source : (?P<pic_src>[^\n]+)\n', _optional(r'lien : (?P<pic_link>[^\n]+)\n'), _optional(r'licence : (?P<pic_license>[^\n]+)\n'), + _optional(r'position : (?P<pic_position>[^\n]+)\n'), _optional(r'AVERTISSEMENT : (?P<warning>[^\n]+)\n'), ) |
