1 # Markdown flashcard utility
5 from curses import wrapper
7 from random import shuffle
10 from . import parse, progress
11 from .display import Display
12 from .deck import Status
16 parser = argparse.ArgumentParser(
17 description="Terminal flashcards from Markdown"
19 parser.add_argument("inp", metavar="input file", type=str, nargs=1)
24 help="alphabetize card order",
27 "-f", "--flip", action="store_true", help="show second column first"
33 help="don't check cached info before starting",
35 # TODO: don't require input file when using -P
40 help="don't check cached info before starting",
43 "-r", "--reverse", action="store_true", help="reverse card order"
46 "-s", "--shuffle", action="store_true", help="shuffle card order"
49 "-v", "--version", action="version", version="lightcards 0.6.0"
51 return parser.parse_args()
54 def show(args, stack, headers):
56 Get objects from cache, manipulate deck according to passed arguments, and
57 send it to the display functions
59 # Purge caches if asked
67 cache = progress.dive(get_orig())
80 x[0], x[1] = x[1], x[0]
81 headers[0], headers[1] = headers[1], headers[0]
84 win = Display(stack, headers, idx)
89 """Parse arguments and input file again"""
91 os.system(f"$EDITOR {args.inp[0]}"),
92 return parse.parse_html(parse.md2html(args.inp[0]))
96 """Return original header and stack"""
97 return (headers, stack)
100 def main(args=sys.argv):
102 global headers, stack
103 (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
104 show(args, stack, headers)
107 if __name__ == "__main__":