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(description="Terminal flashcards from Markdown")
17 parser.add_argument("inp",
21 parser.add_argument("-f", "--flip",
23 help="show second column first")
24 parser.add_argument("-p", "--purge",
26 help="don't check cached info before starting")
27 parser.add_argument("-P", "--purge-all",
29 help="don't check cached info before starting")
30 parser.add_argument("-r", "--reverse",
32 help="reverse card order")
33 parser.add_argument("-s", "--shuffle",
35 help="shuffle card order")
36 parser.add_argument("-v", "--version",
38 version="lightcards 0.4.0")
39 return parser.parse_args()
42 def show(args, stack, headers):
44 Manipulate deck according to passed arguments, and send it to the display
52 ida = progress.dive("status", stack)
53 if ida and not args.purge:
58 stackb = progress.dive("stack", stack)
59 if stackb and not args.purge:
62 headerb = progress.dive("headers", stack)
63 if headerb and not args.purge:
68 x[0], x[1] = x[1], x[0]
69 headers[0], headers[1] = headers[1], headers[0]
75 win = Display(stack, headers, idx)
80 """Parse arguments and input file again"""
82 os.system(f"$EDITOR {args.inp[0]}"),
83 return parse.parse_html(parse.md2html(args.inp[0]))
86 """Return original header and stack"""
87 return((headers, stack))
89 def main(args=sys.argv):
92 (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
93 show(args, stack, headers)
96 if __name__ == "__main__":