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")
18 parser.add_argument("inp",
22 parser.add_argument("-a", "--alphabetize",
24 help="alphabetize card order")
25 parser.add_argument("-f", "--flip",
27 help="show second column first")
28 parser.add_argument("-p", "--purge",
30 help="don't check cached info before starting")
31 # TODO: don't require input file when using -P
32 parser.add_argument("-P", "--purge-all",
34 help="don't check cached info before starting")
35 parser.add_argument("-r", "--reverse",
37 help="reverse card order")
38 parser.add_argument("-s", "--shuffle",
40 help="shuffle card order")
41 parser.add_argument("-v", "--version",
43 version="lightcards 0.6.0")
44 return parser.parse_args()
47 def show(args, stack, headers):
49 Get objects from cache, manipulate deck according to passed arguments, and
50 send it to the display functions
52 # Purge caches if asked
60 cache = progress.dive(get_orig())
73 x[0], x[1] = x[1], x[0]
74 headers[0], headers[1] = headers[1], headers[0]
77 win = Display(stack, headers, idx)
82 """Parse arguments and input file again"""
84 os.system(f"$EDITOR {args.inp[0]}"),
85 return parse.parse_html(parse.md2html(args.inp[0]))
89 """Return original header and stack"""
90 return((headers, stack))
93 def main(args=sys.argv):
96 (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
97 show(args, stack, headers)
100 if __name__ == "__main__":