aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2022-01-02 15:26:32 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2022-01-02 15:26:32 +0100
commitf441b052e9403e949480ff48c11c71c5f08b3c83 (patch)
treed218b3fbf1126b300e13aeb734e3e41f7f853b14
parentaf8103552bb2de043169a7e8a3f5b4a1ff0cca4e (diff)
downloadmuhqs-game-hoverable_pngs_in_cardlisting.tar.gz
muhqs-game-hoverable_pngs_in_cardlisting.zip
-rwxr-xr-xscripts/generate_card.py10
-rwxr-xr-xscripts/generate_card_hover_links.py35
2 files changed, 38 insertions, 7 deletions
diff --git a/scripts/generate_card.py b/scripts/generate_card.py
index 73c1b0dc..973377a1 100755
--- a/scripts/generate_card.py
+++ b/scripts/generate_card.py
@@ -5,6 +5,8 @@ from pathlib import Path
from typing import MutableMapping, Tuple
import yaml
+import generate_card_hover_links
+
BABEL_LANGS = {'en': 'english', 'de': 'ngerman'}
CARD_TEMPLATE = \
@@ -143,8 +145,14 @@ def generate_markdown(card: MutableMapping, language='en', indentation=3):
yml_card_path = f'../cards-data/{card["set"]}/{file_name}.yml'
built_card_path = f'../latex-build/{language}/{card["set"]}/{file_name}'
+
+ gen_png_link_text = lambda _: 'png'
+ gen_png_link_target = lambda c, l: f'{built_card_path}.png'
+ png_hover_link = generate_card_hover_links.gen_hoverable_link(
+ str(file_name), gen_png_link_text, gen_png_link_target, language)
+
print(
- f'\n[pdf]({built_card_path}.pdf) [png]({built_card_path}.png) [yml]({yml_card_path})\n'
+ f'\n[pdf]({built_card_path}.pdf) {png_hover_link} [yml]({yml_card_path})\n'
)
for key in KEYS:
diff --git a/scripts/generate_card_hover_links.py b/scripts/generate_card_hover_links.py
index d3b11f3f..a835e172 100755
--- a/scripts/generate_card_hover_links.py
+++ b/scripts/generate_card_hover_links.py
@@ -2,6 +2,7 @@
import argparse
from pathlib import Path
import re
+from typing import Callable
from data import CARDS_TO_SETS
@@ -41,27 +42,49 @@ f'''<a href="{{link_target}}"
PLACEHOLDER_ID = 0
+GenLinkCallback = Callable[[str, str], str]
-def replace_with_link(match, language) -> str:
- card = match.group('card')
- link_text = f'<em>{card}</em>'
+
+def gen_hoverable_link(card: str, gen_link_text: Callable[[str], str],
+ gen_link_target: GenLinkCallback, 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 language: the language
+ :returns: the code of the hoverable link
+ """
+ link_text = gen_link_text(card)
+
+ link_target = gen_link_target(card, language)
cannonical_name = card.lower().replace(' ', '_')
- card_listing_target = cannonical_name.replace('_', '-').replace('!', '')
- link_target = f'{language}/cards_listing.html#{card_listing_target}'
card_img = f'latex-build/{language}/{CARDS_TO_SETS[cannonical_name]}/{cannonical_name}.png'
+
global PLACEHOLDER_ID
placeholder_id = PLACEHOLDER_ID
PLACEHOLDER_ID += 1
+
return HOVERABLE_LINK.format(link_target=link_target,
pid=placeholder_id,
img_target=card_img,
link_text=link_text)
+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('!', '')
+ return f'{language}/cards_listing.html#{card_listing_target}'
+
+
def replace_all_links(string: str, language='en') -> str:
"""Replace a document containing all included cards"""
- sub_func = lambda match: replace_with_link(match, language=language)
+ 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)
return re.sub(PATTERN, sub_func, string)