-#!/usr/bin/env python
# Markdown flashcard utility
# Armaan Bhojwani 2021
import argparse
from curses import wrapper
+import os
from random import shuffle
import sys
-from . import display, parse
+from . import parse
+from .display import Display
from .deck import Status
def parse_args():
- parser = argparse.ArgumentParser(description="Simple terminal flashcards")
+ parser = argparse.ArgumentParser(description="Terminal flashcards from Markdown")
parser.add_argument("inp",
metavar="input file",
type=str,
nargs=1)
- parser.add_argument("-v", "--version",
- action='version',
- version="lightcards 0.0.0")
+ parser.add_argument("-f", "--flip",
+ action='store_true',
+ help="show second column first")
+ parser.add_argument("-r", "--reverse",
+ action='store_true',
+ help="reverse card order")
parser.add_argument("-s", "--shuffle",
action='store_true',
- help="shuffle cards before starting")
+ help="shuffle card order")
+ parser.add_argument("-v", "--version",
+ action='version',
+ version="lightcards 0.4.0")
return parser.parse_args()
def show(args, stack, headers):
+ """
+ Manipulate deck according to passed arguments, and send it to the display
+ functions
+ """
idx = Status()
- if args:
+ if args.flip:
+ for x in stack:
+ x[0], x[1] = x[1], x[0]
+ headers[0], headers[1] = headers[1], headers[0]
+ if args.shuffle:
shuffle(stack)
- wrapper(display.get_key, stack, headers, idx)
+ elif args.reverse:
+ stack.reverse()
+
+ win = Display(stack, headers, idx)
+ wrapper(win.run)
+
+
+def reparse():
+ """Parse arguments and input file again"""
+ args = parse_args()
+ os.system(f"$EDITOR {args.inp[0]}"),
+ return parse.parse_html(parse.md2html(args.inp[0]))
+def get_orig():
+ """Return original header and stack"""
+ return((headers, stack))
def main(args=sys.argv):
args = parse_args()
- headers = parse.parse_html(parse.md2html(args.inp[0]))[0]
- stack = parse.parse_html(parse.md2html(args.inp[0]))[1]
+ global headers, stack
+ (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
show(args, stack, headers)