aboutsummaryrefslogtreecommitdiff
path: root/scripts/generate_card_hover_links.py
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2022-01-04 14:37:27 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2022-01-04 14:37:27 +0100
commit791a83da34ff35f7dc159e7f8d5f060f02c6bc5a (patch)
tree769af1751e3bdf72c35d36790ddda9cf46a35cae /scripts/generate_card_hover_links.py
parenta62fde90aa946b0ea5516b1ae4591fc9f67ea22e (diff)
downloadmuhqs-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-xscripts/generate_card_hover_links.py25
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)