diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/generate_card_listing.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/generate_card_listing.py b/scripts/generate_card_listing.py new file mode 100755 index 00000000..ee6c9e68 --- /dev/null +++ b/scripts/generate_card_listing.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +"""Generate markdown card listing from yaml card definitions""" + +import argparse +from pathlib import Path +import sys +import yaml + +import generate_card + + +def main(): + """Generate a markdown card listing""" + + parser = argparse.ArgumentParser( + description='generate makrdown card listing') + parser.add_argument('data', help='directory containing the card data') + parser.add_argument('--language', + choices=['en', 'de'], + default='en', + help='the language of the card text') + + args = parser.parse_args() + + data_path = Path(args.data) + if not data_path.is_dir(): + print('data must be a directory', file=sys.stderr) + sys.exit(1) + + set_dirs = [d for d in data_path.glob('*') if d.is_dir()] + if not set_dirs: + print('data must contain at least one set subdirectory', + file=sys.stderr) + sys.exit(1) + + for set_dir in set_dirs: + set_name = set_dir.name + print( + f'## [{set_name}](../latex-build/{args.language}/{set_name}.pdf)') + + for card_path in set_dir.glob('*.yml'): + with open(card_path, 'r', encoding="utf8") as card_file: + card = yaml.full_load(card_file) + + card['set'] = set_name + generate_card.generate_markdown(card, language=args.language) + print() + + +if __name__ == '__main__': + main() |
