diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2022-01-04 14:37:27 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2022-01-04 14:37:27 +0100 |
| commit | 791a83da34ff35f7dc159e7f8d5f060f02c6bc5a (patch) | |
| tree | 769af1751e3bdf72c35d36790ddda9cf46a35cae /scripts/generate_card_hover_links.py | |
| parent | a62fde90aa946b0ea5516b1ae4591fc9f67ea22e (diff) | |
| download | muhqs-game-791a83da34ff35f7dc159e7f8d5f060f02c6bc5a.tar.gz muhqs-game-791a83da34ff35f7dc159e7f8d5f060f02c6bc5a.zip | |
improve scripts
* move more generic code handling data to data.py
* fix markdown generation in generate_deck.py
* make gen_hoverable_link more flexible by introducing callbacks
to generate the relevant link components.
* fix the link targets for hoverable links in the generated card markdown
Diffstat (limited to 'scripts/generate_card_hover_links.py')
| -rwxr-xr-x | scripts/generate_card_hover_links.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/scripts/generate_card_hover_links.py b/scripts/generate_card_hover_links.py index a835e172..9623037b 100755 --- a/scripts/generate_card_hover_links.py +++ b/scripts/generate_card_hover_links.py @@ -1,10 +1,12 @@ #!/usr/bin/env python3 +"""Generate html/js code for hoverable links showing a rendered image""" + import argparse from pathlib import Path import re from typing import Callable -from data import CARDS_TO_SETS +from data import name2set, name2file, name2cardlisting PATTERN = re.compile(r'\{\{(?P<card>.*?)\}\}') @@ -42,16 +44,19 @@ f'''<a href="{{link_target}}" PLACEHOLDER_ID = 0 -GenLinkCallback = Callable[[str, str], str] +GenLinkTextCallback = Callable[[str], str] +GenLinkTargetCallback = Callable[[str, str], str] -def gen_hoverable_link(card: str, gen_link_text: Callable[[str], str], - gen_link_target: GenLinkCallback, language: str) -> str: +def gen_hoverable_link(card: str, gen_link_text: GenLinkTextCallback, + gen_link_target: GenLinkTargetCallback, + images_path: str, language: str) -> str: """Return the hoverable link generated for the match :param card: the card name :param gen_link_text: a Callable returning the link text as string :param gen_link_target: a Callable returning the link target as string + :param images_path: path to where the rendered images are stored :param language: the language :returns: the code of the hoverable link """ @@ -59,10 +64,10 @@ def gen_hoverable_link(card: str, gen_link_text: Callable[[str], str], link_target = gen_link_target(card, language) - cannonical_name = card.lower().replace(' ', '_') - card_img = f'latex-build/{language}/{CARDS_TO_SETS[cannonical_name]}/{cannonical_name}.png' + cannonical_name = name2file(card) + card_img = f'{images_path}/{language}/{name2set(cannonical_name)}/{cannonical_name}.png' - global PLACEHOLDER_ID + global PLACEHOLDER_ID # pylint: disable=W0603 placeholder_id = PLACEHOLDER_ID PLACEHOLDER_ID += 1 @@ -75,8 +80,7 @@ def gen_hoverable_link(card: str, gen_link_text: Callable[[str], str], def gen_link_to_cardlisting(card: str, language: str) -> str: """Return the link to a card in the card listing""" - cannonical_name = card.lower().replace(' ', '_') - card_listing_target = cannonical_name.replace('_', '-').replace('!', '') + card_listing_target = name2cardlisting(card) return f'{language}/cards_listing.html#{card_listing_target}' @@ -84,7 +88,8 @@ def replace_all_links(string: str, language='en') -> str: """Replace a document containing all included cards""" gen_link_text = lambda card: f'<em>{card}</em>' sub_func = lambda match: gen_hoverable_link(match.group( - 'card'), gen_link_text, gen_link_to_cardlisting, language) + 'card'), gen_link_text, gen_link_to_cardlisting, 'latex-build', + language) return re.sub(PATTERN, sub_func, string) |
