diff --git a/ki/__init__.py b/ki/__init__.py index 3f29c1a..17c820c 100644 --- a/ki/__init__.py +++ b/ki/__init__.py @@ -405,7 +405,7 @@ def parse_note(parser: Lark, transformer: NoteTransformer, delta: Delta) -> Deck deck=deck, model=flatnote.model, tags=flatnote.tags, - fields=flatnote.fields, + fields={k: v.rstrip() for k, v in flatnote.fields.items()}, ) @@ -466,7 +466,7 @@ def update_note( nid = note.id note.tags = decknote.tags - note.flush() + note.col.update_note(note) # Set the deck of the given note, as well as all its cards, and create a # deck with this name if it doesn't already exist. See the @@ -496,7 +496,7 @@ def update_note( warnings = map(lambda k: NoteFieldValidationWarning(nid, k, new_notetype), missing) fields = [(key, field) for key, field in decknote.fields.items() if key in note] stardo(update_field(decknote, note), fields) - note.flush() + note.col.update_note(note) # Remove if unhealthy. fwarns: List[Warning] = check_fields_health(note) @@ -1510,14 +1510,15 @@ def _pull2(kirepo: KiRepo, col: Collection) -> Collection: @ki.command() +@click.option('-f', '--force', is_flag=True) @beartype -def push() -> None: +def push(force: bool) -> None: """Push commits from the currrent ki repository into an Anki collection.""" - _push() + _push(force) @beartype -def _push() -> PushResult: +def _push(force: bool = False) -> PushResult: """Execute a push op.""" # pylint: disable=too-many-locals # Check that we are inside a ki repository, and load collection. @@ -1527,7 +1528,10 @@ def _push() -> PushResult: hashes: List[str] = kirepo.hashes_file.read_text(encoding=UTF8).split("\n") hashes = list(filter(lambda l: l != "", hashes)) if md5sum not in hashes[-1]: - raise UpdatesRejectedError(kirepo.col_file) + if force: + echo('overwriting...') + else: + raise UpdatesRejectedError(kirepo.col_file) head_kirepo: KiRepo = cp_ki(M.head_ki(kirepo), f"{HEAD_SUFFIX}-{md5sum}") remote_root: EmptyDir = F.mksubdir(F.mkdtemp(), REMOTE_SUFFIX / md5sum) diff --git a/ki/maybes.py b/ki/maybes.py index 38c5573..45458f5 100644 --- a/ki/maybes.py +++ b/ki/maybes.py @@ -470,8 +470,6 @@ def empty_kirepo(root: EmptyDir) -> Tuple[EmptyDir, EmptyDir]: """Initialize subdirs for a ki repo.""" kidir = F.mksubdir(root, Path(KI)) mediadir = F.mksubdir(EmptyDir(root), Path(MEDIA)) - workflowsdir = F.mksubdir(EmptyDir(root), Path(".github/workflows")) - _ = F.copyfile(F.chk(Path(__file__).parent / "jekyll-gh-pages.yml"), F.chk(workflowsdir / "jekyll-gh-pages.yml.example")) return kidir, mediadir